Creating Kubernetes Cluster using Azure VMs

RMAG news

Creating Kubernetes cluster in Azure

Hello,
In this article, we will see how to set up a Kubernetes cluster in Azure. For setting cluster we will set up Azure VMs which will act as nodes for the cluster. So let’s start with setup.

Start with creating two VMs one acting as master and the other as worker.

Select a D series VM with a minimum of 2 Vcpus and 8Gib of RAM and Linux OS.

SSH to both VMs and run the below commands (Both Worker and Master Node)

Update the registry

sudo aptget update

upgrade the registry

sudo apt upgrade

Disable the firewall

sudo ufw disable

Remove swap entry

swapoff a
sudo sed i /swap/d /etc/fstab

Set kernel parameters

cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridgenfcalliptables = 1
net.bridge.bridgenfcallip6tables = 1
net.ipv4.ip_forward = 1
EOF
sudo systemctl system

Install certificates

sudo apt install y apttransporthttps cacertificates curl gnupgagent softwarepropertiescommon

Install Docker

sudo su
curl fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add –
addaptrepository deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable
apt update
apt install docker.io

Add Kubernetes Repository

sudo mkdir p m 755 /etc/apt/keyrings
curl fsSL https://pkgs.k8s.io/core:/stable:/v1.29/deb/Release.key | sudo gpg –dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
sudo chmod 644 /etc/apt/keyrings/kubernetesaptkeyring.gpg

Add Repository and install
echo deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.29/deb/ / | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo chmod 644 /etc/apt/sources.list.d/kubernetes.list

Update apt and install kubectl, kubeadm and kubelet

sudo aptget update
sudo aptget install y kubeadm kubelet kubectl

Only For Master Node :

Get the IP address of the master node using the below command. Copy IP address for eth0 interface.

ip addr

Start kubeadm on IP address.

kubeadm init apiserveradvertiseaddress=<IP_ADDRESS_OF_MASTER_NODE> –pod-network-cidr=192.168.0.0/16 –ignore-preflight-errors=all

Note: Copy the kubeadm join command from the previous command output.

Export config to KUBECONFIG variable

export KUBECONFIG=/etc/kubernetes/admin.conf

Create Kubernetes configuration files.

mkdir p $HOME/.kube
sudo cp i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id u):$(id g) $HOME/.kube/config

Run below command on each worker node.

Run the kubeadm join command copied so that the worker joins the cluster.

kubeadm join 10.0.0.4:6443 token 65p8a3.ojrjbnjbwczzdxu9 discoverytokencacerthash sha256:beee58d9efa43ee970d744b2cc2e9ae3513dc90984028047a52a25798a33710f

—— Example Command ——

Enable Container Network Interface using below command.(Only For Master Node)

kubectl apply f https://github.com/weaveworks/weave/releases/download/v2.8.1/weave-daemonset-k8s-1.11.yaml

Use the cluster using kubectl

kubectl get nodes
kubectl get all A

Kube join command

kubeadm token create printjoincommand

Leave a Reply

Your email address will not be published. Required fields are marked *