Kubernetes

Ställ in ett Kubernetes-kluster på DigitalOcean

Ställ in ett Kubernetes-kluster på DigitalOcean

Kubernetes är en av få teknologier som människor kämpar med inte för att det är komplicerat och svårt att förstå, utan för att det är utformat för att köras på serverkvalitet och inte lätt kan simuleras på en vanlig hemdator så enkelt. Tack och lov finns det en mängd olika molnhostade plattformar som ger prisvärd infrastruktur för att experimentera med och förstå tekniker som Kubernetes.Som en förutsättning uppmuntrar jag dig att gå igenom våra inlägg om arkitekturen i Kubernetes och om noder och skida, byggstenarna i ett Kubernetes-kluster.Det finns många värdlösningar för Kubernetes, men vi kommer att distribuera allt från grunden på DigitalOcean, vilket är en moln-hosting-lösning riktad mot utvecklare i synnerhet.

En VPS-instans på denna plattform kallas droplet. För att köra Kubernetes behöver du minst 2 GB RAM och vi kommer att använda dropparna på $ 20 / månad för denna demo. De laddar också per timme, så om du experimenterar i ett par timmar och sedan förstör alla droppar så kommer du att betala högst ett par dollar.

Nu har vi två maskiner, en märkt master och en annan kommer att vara arbetarnoden. Så låt oss konfigurera master först.


Konfigurera masternoden

För att konfigurera huvudnoden, SSH till den med hjälp av den offentliga IP-adressen eller använd konsolen från DigitalOcean för att komma åt terminalen som root-användare.

De första kommandona är de grundläggande hushållningskommandona:

$ apt update && apt upgrade -y

Sedan hämtar vi de nödvändiga gpg-nycklarna och lägger till dem i vår lista över betrodda fjärrförråd.

$ curl -s https: // paket.moln.Google.com / apt / doc / apt-key.gpg | apt-key lägg till -
$ cat < /etc/apt/sources.list.d/kubernetes.list
deb http: // apt.kubernetes.io / kubernetes-xenial huvud
EOF
$ apt uppdatering

Att köra apt-uppdatering för andra gången kommer att få systemet snabbare med officiell Kubernetes-repo. Nu installerar vi nödvändiga paket.

$ apt installera docker.io
#Docker krävs för containerisering av appar.
$ apt installera kubelet kubeadm kubectl kubernetes-cni

Det sista kommandot installerar några paket som var och en är viktig av olika skäl:

  1. Kubeadm: Bootstraps och initialiserar Kubernetes på en nod. Den kan användas för att tilldela en droppe rollen som huvudnod eller arbetarnod.
  2. Kubelet: Det är en bakgrundsprocess som pratar med masternoden och utför åtgärder som begärs av den.
  3. Kubectl: Det är kommandoradsverktyget som tillåter utvecklare och driftspersonal att interagera med och kontrollera Kubernetes-klustret.
  4. Kubernetes-cni: Det är Container Networking Interface som krävs för intern kommunikation mellan pods och extern kommunikation också.

Nu när vi har alla nödvändiga paket installerade är det dags för oss att initialisera masternoden. Kör följande:

$ kubeadm init --pod-network-cidr = 10.244.0.0/16 --
apiserver-annonsera-adress $ DROPLET_IP_ADDRESS

Se till att ersätta den sista variabeln $ DROPLET_IP_ADDRESS med den allmänna IP-adressen för din masternod. Om allt fungerade bra skulle det här vara din produktion:

Se till att du kopierar den sista raden "kubeadm join -token ..." eftersom den innehåller nödvändiga säkerhetsuppgifter som en arbetarnod skulle behöva för att gå med i klustret.

Varje huvudnod har en API-server som körs, vilket ovanstående kommando exponerar för podnätverket och även för kommandoradsgränssnittet, kubectl, samt till ett valfritt webbgränssnitt.

Notera: Du kan använda droppens offentliga IP-adress för kubeadm init kommando men om du vill isolera din masternod från resten av världen kanske du vill använda DigitalOceans privata IP-funktion som kommer att användas av olika pods över olika noder för att prata med varandra. Du kan senare bara exponera front-end-tjänsterna när ditt projekt genomförs.

Okej, ett sista steg innan vi får se hälsorapporten på vår huvudnod. Du kanske vill springa:

$ mkdir -p $ HOME /.kube
$ cp / etc / kubernetes / admin.conf $ HOME /.kube
$ chown $ (id -u): $ (id -g) $ HOME / admin.konf
$ kubectl skapa -f
https: // rå.githubusercontent.com / coreos / flannel / master / Documentation / kube-flannel.yml - namnrymd = kube-system

Flannel installeras i det sista kommandot som ger lager 3 nätverksfunktionalitet som behövs för containrar.
Nu kan vi springa,

$ kubectl få noder
$ kubectl få pods -all-namespaces

Vilket skulle visa oss staten alla noder och alla pods i detta kluster, som för närvarande bara är en. Så det är dags för oss att konfigurera den andra droppen och konvertera den till en Kubernetes-arbetarnod.


Konfigurera minions eller arbetarnoder

Mycket minion konfiguration kommer att bli en upprepning av vad vi har gjort ovan, det är från kubeadm befalla att vägen ska börja avvika.

Så för att konfigurera din arbetarnod genom att upprepa alla kommandon till och med installationen av paket,

$ apt installera kubelet kubeadm kubectl kubernetes-cni

För att initialisera droppen som en kubernetes-nod, kör du kommandot som genererades vid masternoden efter attkubeadm init.

$ kubeadm gå med --token 3c37b5.08ed6cdf2e4a14c9
159.89.25.245: 6443 - upptäckt-token-ca-cert-hash
sha256: 52f99432eb33bb23ff86f62255ecbb

Observera att innehållet som följer din tokenflagga, IP-adressen och sha256-kontrollsumman kommer att vara väldigt olika i ditt fall. Det är allt! Du har en ny nod som medlem i Kubernetes-klustret. Du kan bekräfta detta genom att lista noder och pods som körs i det här klustret.


Slutsats

Nu är det dags för dig att distribuera din dockeriserad applikation i det här klustret och gärna snurra upp fler droppar och använd kubeadm gå med för att lägga till nya medlemmar i ditt Kubernetes-kluster.

Bästa kommandoradsspel för Linux
Kommandoraden är inte bara din största allierade när du använder Linux, det kan också vara källan till underhållning eftersom du kan använda den för a...
Bästa Gamepad Mapping Apps för Linux
Om du gillar att spela spel på Linux med en gamepad istället för ett typiskt tangentbord och musinmatningssystem, finns det några användbara appar för...
Användbara verktyg för Linux-spelare
Om du gillar att spela spel på Linux är chansen att du kan ha använt appar och verktyg som Wine, Lutris och OBS Studio för att förbättra spelupplevels...