In this post I’m just going to list the steps for installing Kubernetes (k8s) on Ubuntu server using the single node, lightweight MicroK8s.
-
If you don’t have it installed, install snap
sudo apt install snapd
Now let’s go through the steps to get microk8s installed
-
Install microk8s
sudo snap install microk8s --classic
-
You may wish to change permissions to save using sudo everytime, if so run the following and change {username} to your user name.
sudo usermod -a -G microk8s {username} sudo chown -f -R {username} ~/.kube
- Verify the installation
sudo microk8s.status
- To save us typing microk8s to run k8s command let’s alias it
sudo snap alias microk8s.kubectl kubectl
Accessing the Dashboard
Whilst you can now run kubectl command, the Web based dashboard is really useful – so lets deploy it using
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.1.0/aio/deploy/recommended.yaml
By default the Dashboard can only be accessed from the local machine and from a security standpoint you may even prefer not to be running a dashboard, but if you decide you want it (for example for dev work) then…
As per Accessing Dashboard
kubectl -n kubernetes-dashboard edit service kubernetes-dashboard
Change type: ClusterIP to type: NodePort and save this file.
You’ll need to run the proxy
kubectl proxy&
Now to get the port for the dashboard, run the following
kubectl -n kubernetes-dashboard get service kubernetes-dashboard
Example output (take from Accessing Dashboard)
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes-dashboard NodePort 10.100.124.90 <nodes> 443:31707/TCP 21h
You can now access the dashboard remotely now on the port 31707 (see the PORT(S) listed above), for example https://{master-ip}:31707 where {master-ip} is the server’s ip address.
To get the token for the dashboard we need to set up and few things
kubectl describe secret -n kube-system | grep deployment -A 12
Then copy the whole token to the Dashboard Token edit box and login.
To enable skipping of the requirement for a token etc. on the dashboard (should only be used on a development installation) run
kubectl edit deployment kubernetes-dashboard -n kubernetes-dashboard
then add the following line
- args: - --auto-generate-certificates - --namespace=kubernetes-dashboard - --enable-skip-login # this argument allows us to skip login