Creating multi-node and multi-cloud Kubernetes cluster

Kubernetes, also known as K8s, is an open-source system for automating deployment, scaling, and management of containerized applications.

We can define AWS (Amazon Web Services) as a secured cloud services platform that offers compute power, database storage, content delivery, and various other functionalities. To be more specific, it is a large bundle of cloud-based services.

Azure is a public cloud computing platform — with solutions including Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS) that can be used for services such as analytics, virtual computing, storage, networking, and much more. It can be used to replace or supplement your on-premise servers.

— — — — — — — — — — — — — — — — — — — — — — — — — — — — —

In this article, we are going to configure the Kubernetes multi-node cluster. Where we have configured the master in AWS, One slave in AWS, One slave in Microsoft azure, Two slaves in Local virtual instance.

First, launch two basic EC-2 instances in AWS one for master and one for slave.

Open the Linux terminal, Now we are going the configure the Kubernetes master.

Kubernetes uses container technology, Therefore we are installing docker.

Now, start and enable the docker service.

Changing the docker driver from cgroupfs to systems:

To apply this driver we need to restart the docker service

To install Kubernetes into the system first we need to configure the k8s repository.

Installing the required packages to run the master node

kubeadm - Kubeadm is a tool built to provide kubeadm init and kubeadm join as best-practice “fast paths” for creating Kubernetes clusters.

kubectl — You can use kubectl to deploy applications, inspect and manage cluster resources, and view logs

kubelet — The kubelet is the primary “node agent” that runs on each node. It can register the node with the apiserver using one of the hostnames.

Starting and enabling the kubelet service.

To set up the Kubernetes cluster. We need to pull docker images using kubeadm. It pulls images of the config files.

Installing “iproute-tc” which will help us to manage the traffic on the cluster

Now, lets change IP tables /etc/sysctl.d/k8s.conf

The important step: Initializing Master

Now the master is initialized.

Run the above commands.

To connect the nodes of the master and slave we use a flannel. Flannels act as a DHCP server as well as a router in the cluster. It will create a nating between the pods running in the cluster. The flannel works on the underlying network.

The above command will download and apply the flannel.

The token is created at the time of initializing the master

This will print the token which we have to run on the slaves.

Now, The master is ready.

We are going the launch one slave in AWS, Second in Azure, third and fourth in local systems

The above command I explained in detail while creating the master, they have the same meaning as in the master.

First, let's connect the local systems.

Disable swap in the local systems

Now, go to the master and print the token using the join command.

Copy the above-printed token and run it on all the slaves

Check the nodes using

One slave is connected through AWS, and mlops-node are from the local systems.

In the azure instance the inbound and outbound rule are as follow:

Successfully created multi-node and multi-cloud Kubernetes cluster.

⭐Keep Learning !! Keep Sharing !!⭐

Thank you for visiting my article.

If any query don’t forget to reach me out at:



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store