Kubernetes

Een Kubernetes-cluster instellen op DigitalOcean

Een Kubernetes-cluster instellen op DigitalOcean

Kubernetes is een van de weinige technologieën waarmee mensen worstelen, niet omdat het ingewikkeld en moeilijk te begrijpen is, maar omdat het is ontworpen om te draaien op hardware van serverkwaliteit en niet gemakkelijk kan worden gesimuleerd op een typische thuiscomputer die gemakkelijk. Gelukkig zijn er verschillende door de cloud gehoste platforms die een betaalbare infrastructuur bieden om te experimenteren met en technologieën zoals Kubernetes te begrijpen.Als voorwaarde moedig ik je aan om onze berichten over de architectuur van Kubernetes en over nodes en pods, de bouwstenen van een Kubernetes-cluster, door te nemen.Hoewel er veel gehoste oplossingen voor Kubernetes zijn, zullen we alles vanaf het begin implementeren op DigitalOcean, een cloudhostingoplossing die met name gericht is op ontwikkelaars.

Een VPS-instantie op dit platform staat bekend als een droplet. Voor het uitvoeren van Kubernetes heb je minimaal 2 GB RAM nodig en we zullen de optiedruppels van $ 20/maand gebruiken voor deze demo. Ze rekenen ook per uur, dus als je een paar uur experimenteert en dan alle druppels vernietigt, betaal je uiteindelijk niet meer dan een paar dollar.

Nu hebben we twee machines, een met het label master en een andere wordt het werkknooppunt. Dus laten we eerst de master configureren.


Het hoofdknooppunt configureren

Om het hoofdknooppunt te configureren, SSH erin met behulp van het openbare IP-adres of gebruik de console die door DigitalOcean wordt geleverd om als rootgebruiker toegang te krijgen tot de terminal.

De eerste commando's zijn de basiscommando's:

$ apt update && apt upgrade -y

Vervolgens halen we de vereiste gpg-sleutels op en voegen ze toe aan onze lijst met vertrouwde externe repositories.

$ curl -s https://pakketten.wolk.google.com/apt/doc/apt-key.gpg | apt-key add -
$ kat < /etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF
$ apt-update

Door apt-update voor de tweede keer uit te voeren, wordt het systeem op snelheid gebracht met de officiële Kubernetes-repo. Nu installeren we de vereiste pakketten.

$ apt install docker.io
#Docker is vereist voor containerisatie van apps.
$ apt install kubelet kubeadm kubectl kubernetes-cni

De laatste opdracht installeert een paar pakketten die elk om verschillende redenen belangrijk zijn:

  1. Kubeadm: Bootstraps en initialiseert Kubernetes op een knooppunt. Het kan worden gebruikt om een ​​druppel de rol van hoofdknooppunt of werkknooppunt toe te wijzen.
  2. Kubelet: Het is een achtergrondproces dat met het hoofdknooppunt praat en acties uitvoert die er door worden gevraagd.
  3. Kubectl: Het is de opdrachtregeltool waarmee ontwikkelaars en operationeel personeel kunnen communiceren met en het Kubernetes-cluster kunnen besturen.
  4. Kubernetes-cni: Het is de Container Networking Interface die nodig is voor interne communicatie tussen pods en ook voor externe communicatie.

Nu we alle vereiste pakketten hebben geïnstalleerd, is het tijd voor ons om het hoofdknooppunt te initialiseren. Voer het volgende uit:

$ kubeadm init --pod-network-cidr=10.244.0.0/16 --
apiserver-adverteer-adres $DROPLET_IP_ADDRESS

Zorg ervoor dat u de laatste variabele $DROPLET_IP_ADDRESS vervangt door het openbare IP-adres van uw hoofdknooppunt. Als alles goed zou werken, zou dit je output zijn:

Zorg ervoor dat u de laatste regel "kubeadm join -token..." kopieert, aangezien deze de nodige beveiligingsreferenties bevat die een werkknooppunt nodig heeft om lid te worden van het cluster.

Op elk hoofdknooppunt draait een API-server, die het bovenstaande commando zal blootstellen aan het pod-netwerk en ook aan de opdrachtregelinterface, kubectl, evenals naar een optionele web-UI.

Opmerking: U kunt het openbare IP-adres van uw droplet gebruiken voor de: kubeadm init commando, maar als u uw hoofdknooppunt van de rest van de wereld wilt isoleren, wilt u misschien de privé-IP-functie van DigitalOcean gebruiken die door verschillende pods op verschillende knooppunten zal worden gebruikt om met elkaar te praten. U kunt later alleen de front-end-services blootleggen, wanneer uw project tot wasdom komt.

Oké, nog een laatste stap voordat we het gezondheidsrapport op ons hoofdknooppunt te zien krijgen. Misschien wilt u uitvoeren:

$ mkdir -p $HOME/.kube
$ cp /etc/kubernetes/admin.conf $HOME/.kube
$ chown $(id -u):$(id -g) $HOME/admin.conf
$ kubectl create -f
https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml --namespace=kube-systeem

Flanel is geïnstalleerd in de laatste opdracht die laag 3-netwerkfunctionaliteit biedt die nodig is voor containers.
Nu kunnen we rennen,

$ kubectl krijgt knooppunten
$ kubectl get pods -all-namespaces

Dat zou ons de status laten zien van alle knooppunten en alle pods in dit cluster, dat momenteel slechts één is. Het is dus tijd voor ons om de tweede druppel te configureren en om te zetten in een Kubernetes-werkknooppunt.


De minions of worker-knooppunten configureren

Veel minion-configuratie zal een herhaling zijn van wat we hierboven hebben gedaan, het is van kubeadm commando dat de weg zal beginnen te divergeren.

Dus om uw werkknooppunt te configureren door alle opdrachten te herhalen tot en met de installatie van pakketten,

$ apt install kubelet kubeadm kubectl kubernetes-cni

Om de druppel vervolgens te initialiseren als een kubernetes-knooppunt, voert u de opdracht uit die is gegenereerd op het hoofdknooppunt, na voltooiing vankubeadm init.

$ kubeadm join --token 3c37b5.08ed6cdf2e4a14c9
159.89.25.245:6443 --discovery-token-ca-cert-hash
sha256:52f99432eb33bb23ff86f62255ecbb

Houd er rekening mee dat de inhoud die volgt op uw tokenvlag, het IP-adres en de sha256-controlesom in uw geval allemaal heel anders zal zijn. Dat is het! U heeft een nieuw knooppunt als lid van het Kubernetes-cluster. U kunt dit bevestigen door de knooppunten en de pods op te sommen die op dit cluster worden uitgevoerd.


Conclusie

Nu is het tijd voor u om uw gedockt toepassing in dit cluster en voel je vrij om meer druppels te laten draaien en de and kubeadm join om nieuwe leden aan uw Kubernetes-cluster toe te voegen.

Top 10 spellen om te spelen op Ubuntu
Het Windows-platform is een van de dominante platforms voor gaming geweest vanwege het enorme percentage games dat tegenwoordig wordt ontwikkeld om Wi...
5 beste arcade-spellen voor Linux
Tegenwoordig zijn computers serieuze machines die worden gebruikt om te gamen. Als je de nieuwe hoge score niet kunt halen, weet je wat ik bedoel. In ...
Strijd om Wesnoth 1.13.6 Ontwikkeling vrijgegeven
Strijd om Wesnoth 1.13.6 die vorige maand werd uitgebracht, is de zesde ontwikkelingsrelease in de 1.13.x-serie en het levert een aantal verbeteringen...