This article walks you through the process of installing the minimal Kubernetes environment on Ubuntu 20.04. Kubernetes comes in two forms; a single node cluster and a multi-node cluster. In this walk through, we’ll be using the single node cluster called MicroK8s.
I suggest starting with a Ubuntu 20.04 server (or workstation) with the following installed:
apt update apt install openssh-server curl
Ensure the firewall is open to you can access it later using SSH and a web browser:
ufw allow 22 ufw allow 10443 ufw enable
Now install the MicroK8s suite:
sudo snap install microk8s --classic sudo microk8s enable dashboard dns registry istio
Now start MicroK8s:
sudo microk8s kubectl get all --all-namespaces
It’s running. But you need to start the proxy to get to it. Here’s how:
sudo microk8s dashboard-proxy &
Tip: The above shows that we’re starting the proxy in the background but it’s bound to this shell session.
The output from the above command will produce a token for you. Copy that. You’ll get the token to log into the MicroK8s dashboard.
Visit the dashboard and login at:
https://example.com:10443
Tip: Where “example.com” is the hostname or IP address of your new MicroK8s environment. It will ask you to log in using a Token (or another option), enter the token here – the one you copied in the last step.
Some things are simpler on the command line. We’ll create a basic Nginx pod called “agix-nginx”:
sudo microk8s.kubectl run agix-nginx --image=nginx:alpine --port=80
List your pods:
sudo microk8s.kubectl get pod
Now we can expose that pod to the wider network (not just within the Kubernetes environment). Note that the port “80” specified below is the port that the pod is using as described in the command above. See below for the command:
sudo microk8s kubectl expose pod agix-nginx --type=NodePort --port=80 --name=agix-nginx sudo microk8s kubectl get services
My output from the above “get services” command shows:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.152.183.1443/TCP 121m agix-nginx NodePort 10.152.183.79 80:30045/TCP 19s
Now you can browse to the Kubernetes host from a remote machine and see the Nginx welcome page.
https://exmaple.com:30045
Make sure your exposing the port at the firewall level:
sudo ufw allow 30045