Octant and antrea-octant-plugin installation

Overview

There are two ways to deploy Octant and antrea-octant-plugin.

  • Deploy Octant and antrea-octant-plugin as a Pod.

  • Deploy Octant and antrea-octant-plugin as a process.

Prerequisites

antrea-octant-plugin depends on the Antrea monitoring CRDs, AntreaControllerInfo and AntreaAgentInfo.

To run Octant together with antrea-octant-plugin, please make sure you have these two CRDs defined in you K8s cluster.

If Antrea is deployed before antrea-octant-plugin starts by using the standard deployment yaml, Antrea monitoring CRDs should already be added. If not, please refer to antrea.yaml to create these two CRDs first.

Deploy Octant and antrea-octant-plugin as a Pod

You can follow the sample below to run Octant and antrea-octant-plugin in Pod. In this example, we expose UI as a NodePort service for accessing externally. You can update antrea-octant.yaml according to your environment and preference.

  1. Create a secret that contains your kubeconfig.

    1. # Change --from-file according to kubeconfig location in your set up.
    2. kubectl create secret generic octant-kubeconfig --from-file=/etc/kubernetes/admin.conf -n kube-system
  2. You may need to update build/yamls/antrea-octant.yml according to your kubeconfig file name.

  3. You can change the sample yaml according to your requirements and environment, then apply the yaml to create both deployment and NodePort service.

    1. kubectl apply -f build/yamls/antrea-octant.yml
  4. You can get the NodePort of antrea-octant service via kubectl.

    1. # See field NodePort
    2. kubectl describe service antrea-octant -n kube-system

Now, you are supposed to see Octant is running together with antrea-octant-plugin via URL http://(IP or $HOSTNAME):NodePort.

Note: 1. Docker image antrea/octant-antrea-ubuntu should be automatically downloaded when you apply antrea-octant.yml in step 3. If the image is not successfully downloaded which may be due to network issues, you can run command make octant-antrea-ubuntu to build the image locally. If it is the case, you need to make sure that the image exists on all the K8s Nodes since the antrea-octant Pod may run on any of them. 2. If the Pod is running without any explicit issue but you can not access the URL, please take a further look at the network configurations in your environment. It may be due to the network policies or other security rules configured on your hosts. 3. To deploy a released version of the plugin, you can download https://github.com/vmware-tanzu/antrea/releases/download/<TAG>/antrea-octant.yml, where <TAG> (e.g. v0.8.2) is the desired version (should match the version of Antrea you are using). After making the necessary edits, you can apply the yaml with kubectl.

Deploy Octant and antrea-octant-plugin as a process

Refer to Octant README for detailed installation instructions.

You can follow the steps listed below to install octant and antrea-octant-plugin on linux.

  1. Get and install Octant v0.13.1.

    Depending on your linux operating system, to install Octant v0.13.1, you can use either bash wget https://github.com/vmware-tanzu/octant/releases/download/v0.13.1/octant_0.13.1_Linux-64bit.deb dpkg -i octant_0.13.1_Linux-64bit.deb

    or bash wget https://github.com/vmware-tanzu/octant/releases/download/v0.13.1/octant_0.13.1_Linux-64bit.rpm rpm -i octant_0.13.1_Linux-64bit.rpm

  2. Export your kubeconfig path (file location depends on your setup) to environment variable $KUBECONFIG.

    1. export KUBECONFIG=/etc/kubernetes/admin.conf
  3. Get corresponding antrea-octant-plugin binary from Release Assets based on your environment and move the binary to OCTANT_PLUGIN_PATH.

    For example, you can get antrea-octant-plugin-linux-x86_64 if it matches your operating system and architecture.

    1. wget -O antrea-octant-plugin https://github.com/vmware-tanzu/antrea/releases/download/v0.8.1/antrea-octant-plugin-linux-x86_64
    2. # Make sure antrea-octant-plugin is executable, otherwise Octant cannot find it.
    3. chmod a+x antrea-octant-plugin
    4. # If you did not change OCTANT_PLUGIN_PATH, the default folder should be $HOME/.config/octant/plugins.
    5. mv antrea-octant-plugin $HOME/.config/octant/plugins/
  4. Start Octant as a background process with UI related environment variables.

    1. # Change port 80 according to your environment and set OCTANT_ACCEPTED_HOSTS based on your requirements
    2. OCTANT_LISTENER_ADDR=0.0.0.0:80 OCTANT_ACCEPTED_HOSTS=0.0.0.0 OCTANT_DISABLE_OPEN_BROWSER=true nohup octant &

Now, you are supposed to see Octant is running together with antrea-octant-plugin via URL http://(IP or $HOSTNAME):80.

Note: 1. In Antrea v0.8.1, the Traceflow UI is a separate Octant plugin called antrea-traceflow-plugin. Starting with v0.9.0, the Traceflow UI will be merged into antrea-octant-plugin. When deploying Octant as a Pod using image antrea/octant-antrea-ubuntu:v0.8.1, you already have access to the alpha version of the Traceflow UI. 2. If you deploy Octant and the Antrea UI as a process, you cannot access the Traceflow UI for now when following the steps listed above (at least until the v0.9.0 release). However, you can still build the binary yourself with the command below, with the remaining steps being almost the same as the ones above.

  1. ```bash
  2. # You will find the compliled binary under folder antrea/plugins/octant/bin.
  3. cd plugins/octant
  4. make antrea-traceflow-plugin
  5. ```