Table of Contents
Introduction
In this tutorial, How to setup Kubernetes Cluster with K3s. It is a lightweight Kubernetes distribution developed by Rancher. K3s consume fewer resources than traditional distributions. It’s easy to set up and manage Kubernetes Cluster.
To set up a Kubernetes cluster using K3s, you can follow these steps:
Setup Kubernetes Cluster with K3s
First, You need to get a Linux machine.
Start by provisioning the servers that will be part of your Kubernetes cluster.
You can use virtual machines or bare-metal servers. Ensure that the servers have a compatible operating system (such as Ubuntu, CentOS, or RHEL).
Download the Rancher binary
Link download here. or you use the wget command or curl command to get download it.
wget https://github.com/k3s-io/k3s/releases/download/v1.23.5%2Bk3s1/k3s
make the binary executable.
chmod +x k3s
The output terminal is as below:
vagrant@controller:~$ wget https://github.com/k3s-io/k3s/releases/download/v1.23.5%2Bk3s1/k3s
--2022-06-05 08:49:28-- https://github.com/k3s-io/k3s/releases/download/v1.23.5%2Bk3s1/k3s
Resolving github.com (github.com)... 20.205.243.166
Connecting to github.com (github.com)|20.205.243.166|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://objects.githubusercontent.com/github-production-release-asset-2e65be/135516270/88b18d50-2447-4216-b672-fdf17488cb41?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20220605%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220605T084929Z&X-Amz-Expires=300&X-Amz-Signature=54b2aa58e831f8f8d179189c940eb5c38b4df7d4e3e33c18c9376b446f029742&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=135516270&response-content-disposition=attachment%3B%20filename%3Dk3s&response-content-type=application%2Foctet-stream [following]
--2022-06-05 08:49:28-- https://objects.githubusercontent.com/github-production-release-asset-2e65be/135516270/88b18d50-2447-4216-b672-fdf17488cb41?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20220605%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220605T084929Z&X-Amz-Expires=300&X-Amz-Signature=54b2aa58e831f8f8d179189c940eb5c38b4df7d4e3e33c18c9376b446f029742&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=135516270&response-content-disposition=attachment%3B%20filename%3Dk3s&response-content-type=application%2Foctet-stream
Resolving objects.githubusercontent.com (objects.githubusercontent.com)... 185.199.108.133, 185.199.109.133, 185.199.110.133, ...
Connecting to objects.githubusercontent.com (objects.githubusercontent.com)|185.199.108.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 62468096 (60M) [application/octet-stream]
Saving to: ‘k3s’
k3s 100%[==============================================================>] 59.57M 4.95MB/s in 24s
2022-06-05 08:49:53 (2.46 MB/s) - ‘k3s’ saved [62468096/62468096]
vagrant@controller:~$ ls -l
total 61004
-rw-rw-r-- 1 vagrant vagrant 62468096 Mar 31 01:05 k3s
vagrant@controller:~$ chmod +x k3s
Start the K3s Server.
sudo ./k3s server
Check your Kubernetes cluster
sudo ./k3s kubectl get nodes
The output terminal is as below:
How to manage your cluster
You can run kubectl commands through the k3s binary. K3s provides a built-in kubectl utility.
For example, To drain the node you created.
sudo ./k3s kubectl drain your-hostname
Or use kubectl cordon a node with the command below:
sudo ./k3s kubectl cordon your-hostname
Add nodes to a K3s cluster
We created a cluster with just one node with the step above. If you want add 1 node to your cluster.
On Master:
first, you determine the node token value of your server. get the token value with the command below:
sudo cat /var/lib/rancher/k3s/server/node-token
For example, the Token values the output as below:
K10c94d11d4970c4ac58973c98ee32c9c1c4cb4fc30d81adfaf3ddf405ba1c48b49::server:7b1dcfc180415f105af019717027e77c
On Worker
Install k3s agent
export K3S_NODE_NAME=node1
export K3S_URL="https://192.168.56.11:6443"
export K3S_TOKEN=K10c94d11d4970c4ac58973c98ee32c9c1c4cb4fc30d81adfaf3ddf405ba1c48b49::server:7b1dcfc180415f105af019717027e77c
curl -sfL https://get.k3s.io | sh -s -
Then, the Additional node run command below:
sudo k3s agent --server https://myserver:6443 --token K3S_TOKEN
Repeat this process to add as many nodes as you want to your cluster.
The result, of the Master
Conclusion
You have setup Kubernetes cluster using K3s. You can now use kubectl
it to deploy and manage your applications on the cluster.
Further, you can do with k8s k3s such as customize networking or logging, change the container runtime, and set up certificates. I hope will this your helpful. Thank you for reading the DevopsRoles page!