Kind
Pre-requisite
We will need 1 VM to create a single node kubernetes cluster using kind
.
We are using following setting for this purpose:
- 1 Linux machine, centos-7-x86_64, cpu-su.2 flavor with 2vCPU, 8GB RAM, 40GB storage - also assign Floating IP to this VM.
- setup Unique hostname to the machine using the following command:
echo "<node_internal_IP> <host_name>" >> /etc/hosts
hostnamectl set-hostname <host_name>
For example,
echo "192.168.0.167 kind" >> /etc/hosts
hostnamectl set-hostname kind
Install docker on CentOS7
Run the below command on the CentOS7 VM:
- SSH into kind machine
- Switch to root user:
sudo su
- Execute the below command to initialize the cluster:
yum -y install epel-release; yum -y install docker; systemctl enable --now docker;
systemctl status docker
docker version
Install kubectl on CentOS7
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/bin/kubectl
chmod +x /usr/bin/kubectl
- Test to ensure the version you installed is up-to-date:
kubectl version --client
Install kind
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.11.1/kind-linux-amd64
chmod +x ./kind
mv ./kind /usr/bin
which kind
/usr/bin/kind
kind version
kind v0.11.1 go1.16.4 linux/amd64
- To communicate with cluster, just give the cluster name as a context in kubectl:
kind create cluster --name k8s-kind-cluster1
Creating cluster "k8s-kind-cluster1" ...
â Ensuring node image (kindest/node:v1.21.1) đŧ
â Preparing nodes đĻ
â Writing configuration đ
â Starting control-plane đšī¸
â Installing CNI đ
â Installing StorageClass đž
Set kubectl context to "kind-k8s-kind-cluster1"
You can now use your cluster with:
kubectl cluster-info --context kind-k8s-kind-cluster1
Thanks for using kind! đ
- Get the cluster details:
kubectl cluster-info --context kind-k8s-kind-cluster1
Kubernetes control plane is running at https://127.0.0.1:38646
CoreDNS is running at https://127.0.0.1:38646/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
kubectl get all
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 5m25s
kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-kind-cluster1-control-plane Ready control-plane,master 5m26s v1.26.1
Deleting a Cluster
If you created a cluster with kind create cluster then deleting is equally simple:
kind delete cluster