Save to My DOJO
If you follow the trends of the IT industry, you will know that Kubernetes had been creeping in the background for several years since Google released it as an open-source project but it’s been really booming in the last couple of years with everyone talking about it. One of the specifics of Kubernetes is that it is a bit complicated and the learning curve is steep, however, by leveraging Octant Kubernetes becomes a little more user friendly by providing a clear Kubernetes UI. In this article, you’ll get an overview of Octant, its benefits, and how to get started with the tool. Let jump right in!
An Overview of Using Octant with Kubernetes
Octant is an open-source project that was originally developed by a company named Heptio which was acquired by VMware in late 2018. Following this acquisition, VMware keeps paying employees to work on the projects developed by Heptio and slowly integrates these into the Tanzu portfolio. Although the term is still simply “Octant”, I suppose one can refer to it as VMware Octant since they are maintaining it.
The traditional way of managing Kubernetes clusters is through the kubectl command line tool. Kubeclt is comparable to PowerCLI in the sense that, your human-readable commands are translated into API calls that the Kubernetes api-server understands. VMware Octant does the same thing by interacting with the API-server, except it presents the output in a graphical interface.
Octant is a Dashboard Kubernetes UI software that you typically run on the workstation on which you would normally use kubectl to manage your Kubernetes and Tanzu clusters. That way you can visualize the various resources in place and execute a few actions.
Benefits of Octant:
- The Octant Kubernetes UI runs locally on the user workstation: Meaning it won’t use up expensive Kubernetes node resources.
- Octant is based on kubeconfig file: Meaning you don’t need to worry about authentication or permissions. As long as your Kubernetes users have kubeconfig files with the correct role. You can even give read-only access to those that want to have a look at Kubernetes or a first exposure at the solution.
Getting started with Octant Kubernetes
Getting the Octant Kubernetes UI up and running is a 2 minutes thing (unless you have a really slow internet connection), and this is what’s great about it!
- Go to the Octant website and click Download Octant.
“Download Octant from the official website”
- The version you see will probably be different since these things change all the time. In my case, we are currently on v0.24.0. At the bottom of the page, you will find a list of assets to choose from.
On Windows, for instance, you can download the installer (Octant.Setup.0.24.0.exe) which will display the dashboard in a local (lightweight) app, or you can download the portable version (octant_0.24.0_Windows-64bit.zip) in which case you access the Octant Kubernetes UI locally in your browser (http://127.0.0.1:7777).
In my case I selected the installer so it’s easier to launch on a daily basis when I want to have a look at my cluster.
The rest of it isn’t worth talking about really… Just launch the .exe file and off you go.
If you are greeted with the “Add a new kubeconfig” page it means Octant cannot find your configuration file. By default, it will look in “%USERPROFILE%\.kube\config”. In which case you can either paste one in there or fix it in your operating system but this is off-topic.
“Octant is based on Kubernetes kubeconfig files”
Navigating the Interface with Octant Kubernetes
The Octant Kubernetes UI is intuitive and links elements together like vCenter and vSphere for instance when looking at datastores connected to a host, then VMs on this datastore, portgroups on the VM and so on.
“The Octant Kubernetes UI is clear and intuitive”
- List of applications in the cluster (pods and deployments). Note that you can click on each of them to display their relationships with other objects.
Note that those depend on the namespace you selected in the top right corner (7).
“Applications appear in the Applications view of the UI”
- Namespaced resources. Meaning all the resources that enter the scope of a namespace such as deployments, pods, pvc…
Note that you can get a list of all namespaced objects in command line with:
kubectl api-resources –namespaced=true
Below is an example with the list of the persistent volume claims in my dev-01 namespace.
“Namespace overview objects will change according to the selected namespace”
- Not namespaced resources such as pv, node…
Note that you can get a list of all non-namespaced objects in command line with:
kubectl api-resources –namespaced=false
Below is a list of all my persistent volumes in the cluster. Those will appear in the list regardless of the namespace.
“Cluster overview objects will not change regardless of the selected namespace”
- Plugins to expand the capabilities of Octant kubernetes ui, more on this in the documentation.
“Plugins let you expand the capabilities of Octant”
- List of resource types associated with the far-left panel.
Here is where you will select which resources you want to display in the main center panel. For instance, I can show all the namespaces in the cluster. Note how the labels are display in the list view.
“Most resources support labels that help you filter and select them”
- Switch between the contexts defined in the kubeconfig file.
You can easily switch between contexts in the top right corner. You can for instance connect to a Kubernetes cluster in Azure or a Tanzu cluster.
“You can easily switch between contexts in the kubeconfig file”
- Switch between namespaces.
You mostly have multiple namespaces in your Kubernetes cluster. You can quickly switch between them in the Octant Kubernetes UI as well.
“Namespaces can be selected to display the associated resources”
- Apply a YAML manifest like you would with “kubectl apply -f my_manifest.yaml”.
You can also even apply YAML manifests directly from the Octan Kubernetes UI if that is something you need at a particular moment for some reason. You have the possibility to either paste your YAML content in there or browse to a manifest file.
“Push changes to the environment by applying a YAML manifest”
- Various settings related to the Octant tool such as light/dark theme, page size and a few other things like that.
Not the most interesting pane but you may like the option to switch to dark mode or to remind you of the Kube config path if you forgot it.
“A dark theme is available for you night owls”
- Note also that when you close Octant in Windows it won’t actually close the app as it will stay in the Windows System Tray (bottom right of the taskbar).
You get access to the context switching utility, the Octant tool logs…
“Closing Octant will reduce it to the Windows system tray”
Octant: Local and Real-Time Dashboard for Kubernetes Workloads
A really cool thing about the Octant Kubernetes UI is that it is real-time so you can see the changes taking place and they are colour-coded, making them easy to identify.
For instance, in the screenshot below, I nuked a pod from kubectl. And because it is part of a deployment, Kubernetes automatically creates a new one and you can see the operation in the dashboard.
Another example is if you want to scale a deployment by changing the number of replicas. Head over to the deployment and click EDIT. Notice the single pod running in there.
Then type in the number of replicas you want this deployment to run and hit SUBMIT.
You will see in real-time a bunch of pods being created to comply with the updated replicaSet.
You can obviously go the opposite direction a scale the deployment down. In the screenshot below I went from 5 replicas back down to 1.
Troubleshooting with Octant Kubernetes
When using Octant, Kubernetes is presented in a clear graphical interface in which you can quickly identify issues thanks to colour coding.
For instance, you can see in the screenshot below that one of my deployments has issues.
Let’s drill into the problem to try and figure out what’s going on. I am going to click on the deployments.
I now get a view of the pod(s) among other things. In which I see that one of them is yellow, let’s click on it. I can already see in the status field “ImagePullBackOff” so you may already know where I am going with this.
Oops, it looks like I misspelt nginx for mginx in my deployment manifest so it can’t find it in the repositories. The octant kubernetes UI lets me set it back to something that actually exist and see if it fixes the issue.
I am going back to the deployment and in the YAML tab. I will then fix the mistake and click Update to apply the manifest.
The deployment will be fixed before you know it. It will do a rolling update since we changed only the image.
You can get your rollout history with the kubectl command line. You can’t visualize it in the octant kubernetes UI yet as far as I know.
Note that editing the YAML manifest in the Octant tool is fine for troubleshooting and testing but make sure that it doesn’t get in the way of your configuration tracking tool (Gitlab…).
My Thoughts on Octant Kubernetes
While the Octant Kubernetes UI will not fit the bill for everyone but it is a very nice addition to have in your toolbelt if you are exposed to Kubernetes. It is also great to offer visibility into the environment to users that aren’t knowledgeable about Kubernetes. And because it is linked to the kubeconfig file, all you need to do to give someone access is to create a profile for them and apply the correct permissions with role-based access control (RBAC).
Not a DOJO Member yet?
Join thousands of other IT pros and receive a weekly roundup email with the latest content & updates!