If you’re a Kubernetes developer, you know how frustrating it can be to have to spin up a full-blown K8s cluster just to work. Your job of developing for Kubernetes is already challenging enough, so having to also take the time to roll out a multi-node cluster can throw a wrench into the works of your day. To add a web-based GUI into the mix is even more of a challenge.
SEE: Hiring kit: Back-end Developer (TechRepublic Premium)
However, thanks to Canonical’s Microk8s, a functioning Kubernetes cluster doesn’t have to be a challenge to create and with the help of the Portainer web-based GUI, which is my go-to container management tool, everything is considerably easier.
Let me show you just how easy it is.
What you’ll need to deploy Portainer
I’ll be demonstrating with Ubuntu Server 22.04, so you’ll need at least three instances of that server and a user with sudo privileges. That’s it.
How to install Microk8s
The first thing we’ll do is install Microk8s on all nodes. To do this, log in to each node and issue the command:
sudo snap install microk8s --classic
Make sure to run the above command on all nodes.
Next, you must add your user to the microk8s group on all nodes with the command:
sudo usermod -aG microk8s $USER
Create a .kube directory with the command:
Give that directory the proper permissions with the command:
sudo chown -f -R $USER ~/.kube
How to configure the nodes
Before we go any further, we need to configure our nodes. First, we’ll set the hostnames on each. First, the controller. Well name this machine k8scontroller with the command:
sudo hostnamectl set-hostname k8scontroller
Log out and log back in.
Do the same on each node, only naming them k8snode1, k8snode2, k8snode3 and so on.
Next, we must map the IP addresses in the hosts file. Open that file for editing with the command:
sudo nano /etc/hosts
At the bottom of the file, add something like this (editing to match your IP address scheme):
Save and close the file.
How to add nodes to the cluster
Next, we’ll add our nodes to the cluster for high availability. To do that, issue the following command on the controller:
The above command will output the join command, which will look something like this:
microk8s join 192.168.1.42:25000/4379f43596bc11a0b79171f30053ae01/c8453f5b270d
How to deploy Portainer
Before we deploy Portainer, we must first enable a few extra pieces, which can be done with the command (run on the controller only):
microk8s enable dns ha-cluster ingress metrics-server rbac storage
Once the above command completes, you can then add Portainer into the mix with the command:
microk8s enable portainer
You’ll need to give the container a bit of time to deploy. Once it does, you can access Portainer at http://SERVER:30777, where SERVER is the IP address of the K8s controller. You should be greeted by the Portainer login screen where you can create an initial admin user and you’re all set and can connect Portainer to your local Kubernetes environment.
Congratulations, you just deployed Portainer to a K8s cluster in a couple of minutes. Enjoy that added GUI convenience.
Subscribe to TechRepublic’s How To Make Tech Work on YouTube for all the latest tech advice for business pros from Jack Wallen.
These resources from TechRepublic Academy will help you learn more about developing Kubernetes:
- The Docker and Kubernetes Certification Training Bundle
- The Ultimate Kubernetes & Cloud Certification Training Bundle
- The 2022 DevOps Cloud Engineering Prep Bundle
Subscribe to the Developer Insider Newsletter
From the hottest programming languages to commentary on the Linux OS, get the developer and open source news and tips you need to know. Delivered Tuesdays and Thursdays