Update Kubernetes Dashboard in Azure Container Service
- 12 Jun 2018: Post was created (diff)
Motivation
The Kubernetes dashboard version of the managed cluster created with Azure Container Service (ACS) is v1.6.3. As of writing the latest upstream dashboard version is 1.8.3 and Azure-compatible images are being automatically built. Read the changelog to see what issues has been fixed in between the dashboard relases.
The dashboard is a deployment resource that is automatically installed and deployed with an addon-manager.
We can see the dashboard deployment resource with kubectl
$ kubectl describe deployments -n kube-system kubernetes-dashboard
Check compatible versions
Find out what your Kubernetes server version is. As of writing, the cluster created by ACS is v1.7, as can be verified with the CLI
$ kubectl version
Server Version: version.Info{Major:"1", Minor:"7", GitVersion:"v1.7.7", GitCommit:"8e1552342355496b62754e61ad5f802a0f3f1fa7", GitTreeState:"clean", BuildDate:"2017-09-28T23:56:03Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}
Checking the compatability matrix in the upstream dashboard repository, the latest supported version for my cluster is v1.7.1.
Upgrade
Check the current version of the dashboard
$ kubectl describe pods -n kube-system kubernetes-dashboard | grep 'Image:'
Image: gcrio.azureedge.net/google_containers/kubernetes-dashboard-amd64:v1.6.3
Find the FQDN of the cluster master
$ az acs list | grep fqdn
When the cluster was created, an admin username and a SSH public key was specified. Use that information to SSH into the master in order to update the dashboard image tag.
$ ssh adminuser@clustername.westeurope.cloudapp.azure.com
adminuser@k8s-master-FF00FF-0:~$ sudo vim /etc/kubernetes/addons/kubernetes-dashboard-deployment.yaml
When the file has been opened for edit as described above, update the image version tag for
the deployment resource (terraform-like path to property: deployment.kube-system.kubernetes-dashboard.spec.template.spec.containers.1.image
)
to gcrio.azureedge.net/google_containers/kubernetes-dashboard-amd64:v1.7.1
.
Once the file has been saved, changes should propagate immediately. Check the pod status to verify
$ kubectl describe pods -n kube-system kubernetes-dashboard | grep 'Image:'
Image: gcrio.azureedge.net/google_containers/kubernetes-dashboard-amd64:v1.7.1
References
- https://stackoverflow.com/questions/46621566/updating-kubernetes-dashboard-image-in-a-azure-acs-k8s-cluster-is-not-getting-re
If you have any comments or feedback, please send me an e-mail. (stig at stigok dotcom).
Did you find any typos, incorrect information, or have something to add? Then please propose a change to this post.