Zet een Kubernetes Cluster op AWS EC2 Instance op met Ubuntu met kubeadm

In dit artikel zullen we zien hoe je een Kubernetes cluster met 2 Worker Nodes en 1 Master Node kunt opzetten op Ubuntu 18.04 LTS Servers. We zullen het“kubeadm” gereedschap gebruiken om het cluster op te zetten. Kubeadm is een gereedschap dat gebouwd is om“kubeadm init” en“kubeadm join” te bieden voor het maken van Kubernetes clusters. Laten we, voor we verder gaan met het maken van het cluster, een paar termen in het kort begrijpen.

    1. Docker:
      Docker is een open platform voor het ontwikkelen, verzenden en draaien van toepassingen. Docker stelt je in staat je toepassingen te scheiden van je infrastructuur, zodat je snel software kunt afleveren. Met Docker kun je je infrastructuur beheren op dezelfde manieren als je je toepassingen beheert.
    2. Image:
      Een image is een alleen-lezen sjabloon met instructies om een Docker container te maken. Vaak is een image gebaseerd op een ander image, met wat extra aanpassingen
    3. Container:
      Een container is een runnable instantie van een image. Je kunt een container maken, starten, stoppen, verplaatsen, of verwijderen met de Docker API of CLI. Je kunt een container verbinden met een of meer netwerken, er opslag aan koppelen, of zelfs een nieuwe image maken op basis van zijn huidige toestand.
    4. Kubernetes:
      Kubernetes is een open-source container-orchestratie systeem voor het automatiseren van het inzetten, schalen en beheren van toepassingen.
    5. Nodes:
      Een node staat voor een enkele machine in het cluster.
    6. Pods:
      Een is een groep containers die samen op dezelfde host worden ingezet. Het is de basisuitvoeringseenheid van een Kubernetes toepassing.
    7. Inzetplaatsen:
      Een Deployment draait meerdere replica’s van je toepassing en vervangt automatisch instances die falen of niet meer reageren. Het zorgt voor declaratieve updates voor Pods en ReplicaSets.
    8. Replica Set:
      Het zorgt ervoor hoeveel replicas van een pod er moeten draaien. Het kan beschouwd worden als een vervanging voor de replicatie controller.
  • Replicatie Controller:
    Het is een supervisor voor langlopende pods. Het lanceert een opgegeven aantal pods, replicas genoemd, en zorgt ervoor dat ze steeds blijven draaien.
  1. Dienst:
    Het is een abstractie die een logische verzameling Pods definieert en een beleid waarmee ze benaderd kunnen worden.

API Server, etcd, Controller Manager & Scheduler, zijn de componenten van de Master en Docker, Kubelet Service & Kubernetes Proxy Service zijn de componenten van Worker Node. We zullen deze componenten in dit document niet bespreken. Wil je meer weten over deze componenten dan kun je de officiƫle pagina van de Kubernetes hier bezoeken.

Pre-requisites

  1. 3 Ubuntu 18.04 Servers met minimaal 2 GBs RAM en 2 CPUs.
  2. Een systeemgebruiker met “sudo” toegang op elke server.

Wat we zullen doen

  1. Zet een Kubernetes Cluster op met kubeadm

Stel een Kubernetes Cluster op met kubeadm

Hier,

We hebben 3 Ubuntu 18.04 LTS Servers.

Server 1= node1
Server 2= node2
Server 3= master

Laten we, voordat we verder gaan met de eigenlijke installatie, de hostnaam van de servers veranderen.

Je kunt de volgende commando’s gebruiken om op elke server een hostnaam in te stellen. Nadat je de volgende commando’s op elke server hebt uitgevoerd, log je opnieuw in op de servers zodat de servers een nieuwe hostname krijgen.

sudo hostnamectl set-hostname "master"
sudo hostnamectl set-hostname "node1"
sudo hostnamectl set-hostname "node2"

Volg de hieronder genoemde stappen om het werkende Kubernets cluster op te brengen.

Haal de Docker gpg sleutel op (Voer het volgende commando uit op alle knooppunten):

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Voeg de Docker repository toe(Voer het volgende commando uit op Alle knooppunten):

sudo add-apt-repository    "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
  stable"

Haal de Kubernetes gpg sleutel op(Voer het volgende commando uit op Alleknooppunten):

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

Voeg de Kubernetes repository toe(Voerhet volgende commando uit op Alle knooppunten):

cat << EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF

Werk je pakketten bij(Voerhet volgende commando uit op Alle knooppunten):

sudo apt-get update

Installeer Docker, kubelet, kubeadm, en kubectl(Voerhet volgende commando uit op Alle knooppunten):

sudo apt-get install -y docker-ce=18.06.1~ce~3-0~ubuntu kubelet=1.15.7-00 kubeadm=1.15.7-00 kubectl=1.15.7-00

Houd ze op de huidige versie(Voer het volgende commando uit op Alle knooppunten):

sudo apt-mark hold docker-ce kubelet kubeadm kubectl

Voeg de iptables regel toe aan sysctl.conf(Voer het volgende commando uit op Alle knooppunten):

echo "net.bridge.bridge-nf-call-iptables=1" | sudo tee -a /etc/sysctl.conf

Schakel iptables onmiddellijk in(Voer het volgende commando uit op Alle knooppunten):

sudo sysctl -p

Op Master:

Initialiseer het cluster (Voer het volgende commando alleen op de Master node uit):

sudo kubeadm init --pod-network-cidr=10.244.0.0/16

Stel lokaal kubeconfig in(Voer het volgende commando alleen op de Master node uit):

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

Pas Flannel CNI netwerk overlay toe(Voer het volgende commando alleen op de Master node uit):

sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

Op Node1 en Node 2:

Voeg de werkknooppunten bij het cluster(Voer het volgende commando alleen uit op Node1 en Node2):

sudo kubeadm join 172.31.4.161:6443 --token 0y52t6.ffsj8jkjfcl1sq8h \
   --discovery-token-ca-cert-hash sha256:7aa1825042d19d3e567f7e4b447634e942fe9ed7f18f78464a9c05f451551ed5

Controleer of de worker nodes zich met succes bij het cluster hebben aangeslotenVoer het volgende commando uit op de Master Node):

kubectl get nodes

Conclusie:

In dit artikel hebben we geleerd om een Kubernetes Cluster op te zetten met het kubeadm gereedschap. We zagen hoe gemakkelijk een cluster gemaakt kan worden als de stappen niet overgeslagen worden en de juiste installatie gedaan wordt.