Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

User Pod Example - Kernel Access

SUMMARY 

In this topic, we show you how to add a user Pod with a kernel access interface to an instance of cloud-native router.

Overview

At a high level, the process of adding a user Pod to the cloud-native router requires that you ensure that a network attachment definition (NAD) exists and that you apply a Pod YAML file to your cloud-native router cluster. Throughout this example we use the kubectl command with various options. You must run this command on the CLI of the host server.

High-Level Steps

In this example we assume that this is the first user Pod that you are adding to your newly installed cloud-native router. Therefore, we create a new NAD on the cluster and then add the new user Pod.

Below we provide a list of the individual steps we take in this example. Each step in the list is a link to the detailed description of the step.

  1. View the vRouter interface list

  2. Examine the example NAD YAML file

  3. Apply the NAD to the cluster

  4. Verify the NAD

  5. Examine the example Pod YAML file

  6. Apply the Pod to the cluster

  7. Verify the Pod

  8. View the updated vRouter interface list

Before You Begin

Access the vRouter-Agent CLI

The first and last steps of this example procedure are performed on the CLI of the vRouter-agent. We recommend that you open two SSH (terminal) sessions to the host server. You can use one session to run the CLI commands on the vRouter-agent and the other session to run the kubectl commands that deploy the NAD and the Pod on the cluster.

Note:

To make it easy to copy and paste commands from here to your system, we do not include paths or shell prompts from the host server in the command listings.

To start, we access the CLI of the contrail-vrouter-agent container in the contrail-vrouter-masters Pod.

In one terminal enter the command:

The output should be a single line that looks like:

This command gave us the name and specific instance hash of the vRouter Pod, contrail-vrouter-masters-97v8z. We use this name in the next command to access the vRouter CLI. The name of your vRouter Pod will have a different hash at the end. Use the Pod name from your system in place of <contrail-vrouter-masters-hash> in the command below.

Enter the command:

The output should be two lines that looks like:

Note that the shell prompt should also have changed from whatever it was when you entered the command. On the system used to create this example, the prompt changed from [root@jcnr1 ~]# to root@jcnr1:/#. This change in prompt indicates that you have successfully connected to the CLI of the vRouter-agent.

You can now move to the detailed steps section to complete the example.

Detailed Steps

  1. View the vRouter-agent interface list

    In the terminal session connected to the vRouter-agent CLI enter the command

    The output looks like:

    As you can see, the vRouter-agent knows about three interfaces.

    Back to high-level steps

  2. Examine the NAD YAML file

    In this step, we look at a commented NAD file in YAML format. The comments start with a hash mark (#) and are highlighted in bold. Most of the values do not need to be changed since this file is an example of a NAD. The NAD defines the parameters of a virtual device that allows the Pod to connect to the network. You can use this example file on your cloud-native router only if you remove the comments from the file.

    cat nad-kernel_access_bd3001.yaml

    When you apply the NAD YAML file to the cluster, the virtual device becomes visible in the K8s cluster.

    Back to high-level steps

  3. Apply the NAD to the Cluster

    If you used the same file name for your version of the NAD file, you can run the following command on the host server CLI:

    The output from the command looks like:

    networkattachmentdefinition.k8s.cni.cncf.io/nad-vswitch-bd3001 created

    Back to high-level steps

  4. Verify the NAD

    On the host server CLI, issue the command:

    The output from the command looks like:

    Back to high-level steps

  5. Examine the example Pod YAML file

    Like the NAD YAML file, the Pod YAML file, or Pod definition, specifies the configuration of the user Pod that you want to create. In this example, we create a Pod that works with the pod1-vswitch-bd3001 NAD that we just applied. Again, a commented example file is shown below. You can use this file on your cloud-native router deployment only if you remove the comments from the file.

    cat pod-kernel-access-vlan-3001.yaml

    Back to high-level steps

  6. Apply the Pod to the Cluster

    If you used the same filename as shown above for the Pod YAML file, then you can run the following command on the host server CLI to apply the Pod to the cluster:

    The output from the command looks like:

    pod/odu-kernel-pod-bd3001 created created

    Back to high-level steps

  7. Verify the Pod

    On the host server CLI issue the following command to verify the Pod creation:

    The output from the command looks like:

    Back to high-level steps

  8. View the updated vRouter interface list

    On the vRouter-agent CLI, issue the command:

    The output from the command looks like:

    The vRouter-agent now knows about five interfaces. This is because the Pod created the sub-interface and the parent interface. You can see above that the virtual VLAN interface, vif0/4, shows the parent interface as vif0/3. The interface, vif0/3, is a virtual interface with a name that included "net1" as defined in the NAD and Pod YAML files.

    Back to high-level steps