Kubernetes är ett gratis hanteringssystem med öppen källkod som ger en plattform för automatisering av distribution, skalning och drift av applikationsbehållare över grupper av värddatorer.
Med Kubernetes kan de fritt utnyttja lokal, offentlig och hybrid molninfrastruktur för att köra organisationens distributionsuppgifter.
Kubernetes installation på Ubuntu och derivat
För en praktisk installation, vi ska använda ett kluster med två noder som vi kommer att bilda i den här artikeln kommer att bestå av en huvudnod och en slavnod.
Båda noder måste ha Kubernetes installerade på dem. Det första vi ska göra är att installera docker på båda, för det här behöver vi bara utföra följande kommando på dem:
sudo apt install docker.io
För att verifiera att dockaren är installerad, du kan köra följande kommando på båda noder:
docker --version
Nu låt oss fortsätta för att aktivera docker på båda noder:
sudo systemctl enable docker
Nu är nästa steg att lägga till Kubernetes-nyckeln till båda noder, vi gör detta med följande kommando:
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add
Nästa steg är att lägga till följande databas till båda systemen:
sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
Det sista steget i installationsprocessen är att installera Kubeadm på båda noder via följande kommando:
sudo apt install kubeadm
De kan kontrollera Kubeadm-versionsnumret och också verifiera installationen via följande kommando:
kubeadm version
Kubernetes-distribution
För att implementera Kubernetes-distributionen i systemet måste vi inaktivera swap-minne (om det körs) i båda noder
De bör inaktivera bytminne på båda nodereftersom Kubernetes inte fungerar ordentligt på ett system som använder swap-minne.
För att göra detta, kör bara:
sudo swapoff -a
Nu är nästa steg kör följande kommando på masternoden för att ge den ett unikt värdnamn:
sudo hostnamectl set-hostname master-node
Medan för slavnoden måste vi skriva:
sudo hostnamectl set-hostname slave-node
Gjort detta nu vLåt oss fortsätta med att initialisera masternoden med följande kommando:
sudo kubeadm init --pod-network-cidr = 10.244.0.0/16
Processen kan ta en minut eller mer beroende på din internetanslutning. Utgången från detta kommando är mycket viktig så du bör skriva ner informationen i utdata, eftersom den innehåller ip, token och andra.
För att börja använda ditt kluster måste de köra följande som en vanlig användare:
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
Nu de kan gå med i valfritt antal maskiner genom att köra följande på varje nod som root-användare:
kubeadm join tuip --token tutoken --discovery-token-ca-cert-hash sha256:tuhash
Där de kommer att ersätta informationen om tutoken, tuip och din hash med den information som sagts för några ögonblick sedan som de kommer att skriva ner.
Få en lista över noder
Du kommer att se att status för masternoden inte är klar ännu. Detta beror på att ingen pod ännu har distribuerats på masternoden och därför är Container Network Interface tomt.
För att se listan behöver vi bara utföra:
kubectl get nodes
Distribuera ett podnätverk genom masternoden
Ett podnätverk är ett kommunikationsmedel mellan nätverkets noder. I denna handledning implementerar vi ett Flannel pod-nätverk i vårt kluster via följande kommando:
sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
För att känna till nätverkets status, skriv bara:
kubectl get pods --all-namespaces sudo kubectl get nodes
När detta är klart är det nu dags att lägga till slavnoden i nätverket för att bilda ett kluster, på samma sätt som de måste komplettera informationen som i masternoden.
sudo kubeadm join tuip --token tutoken --discovery-token-ca-cert-hash sha256:tuhash
Nu när du kör följande kommando på huvudnoden kommer det att bekräfta att två noder, huvudnoden och servernoderna körs på ditt system.
sudo kubectl get nodes
Detta visar att klustret med två noder nu är igång genom Kubernetes containerhanteringssystem.