Kubernetes

Sett opp en Kubernetes-klynge på DigitalOcean

Sett opp en Kubernetes-klynge på DigitalOcean

Kubernetes er en av få teknologier som folk sliter med, ikke fordi det er komplisert og vanskelig å forstå, men fordi det er designet for å kjøre på serverhardware og ikke lett kan simuleres på en vanlig hjemmecomputer som lett. Heldigvis finnes det en rekke skyhostede plattformer som gir rimelig infrastruktur for å eksperimentere med og forstå teknologier som Kubernetes.Som en forutsetning oppfordrer jeg deg til å gå gjennom innleggene våre om arkitekturen til Kubernetes og om noder og bøtter, byggesteinene til en Kubernetes-klynge.Mens det er mange vertsløsninger for Kubernetes, vil vi distribuere alt fra bunnen av på DigitalOcean, som er en skyhosting-løsning rettet mot utviklere spesielt.

En VPS-forekomst på denne plattformen er kjent som en dråpe. For å kjøre Kubernetes trenger du minst 2 GB RAM, og vi vil bruke alternativet $ 20 / måned dråper for denne demo. De tar også betalt per time, så hvis du eksperimenterer i et par timer og deretter ødelegger alle dråpene, vil du ende opp med å betale mer enn et par dollar.

Nå har vi to maskiner, en merket master og en annen blir arbeiderknuten. Så la oss konfigurere mesteren først.


Konfigurere masternoden

For å konfigurere masternoden, SSH inn i den ved hjelp av offentlig IP eller bruk konsollen levert av DigitalOcean for å få tilgang til terminalen som rotbruker.

Første kommandoer er de grunnleggende husholdningene:

$ apt update && apt upgrade -y

Deretter henter vi de nødvendige gpg-nøklene og legger dem til i listen vår over pålitelige eksterne lagringssteder.

$ curl -s https: // pakker.Sky.Google.com / apt / doc / apt-key.gpg | apt-key legge til -
$ katt < /etc/apt/sources.list.d/kubernetes.list
deb http: // apt.kubernetes.io / kubernetes-xenial hoved
EOF
$ apt oppdatering

Å kjøre apt-oppdatering for andre gang vil bringe systemet opp i fart med offisiell Kubernetes-repo. Nå installerer vi de nødvendige pakkene.

$ apt installer docker.io
#Docker kreves for containerisering av apper.
$ apt installer kubelet kubeadm kubectl kubernetes-cni

Den siste kommandoen installerer noen få pakker som hver er viktige av forskjellige årsaker:

  1. Kubeadm: Bootstraps og initialiserer Kubernetes på en node. Den kan brukes til å tilordne en dråpe rollen som hovednode eller arbeidernode.
  2. Kubelet: Det er en bakgrunnsprosess som snakker med masternoden og utfører handlinger som den etterspør.
  3. Kubectl: Det er kommandolinjeverktøyet som lar utviklere og operasjonspersonell samhandle med og kontrollere Kubernetes-klyngen.
  4. Kubernetes-cni: Det er Container Networking Interface som kreves for intern kommunikasjon mellom pods og ekstern kommunikasjon også.

Nå som vi har installert alle nødvendige pakker, er det på tide for oss å initialisere masternoden. Kjør følgende:

$ kubeadm init --pod-network-cidr = 10.244.0.0/16 --
apiserver-annonsere-adresse $ DROPLET_IP_ADDRESS

Sørg for å erstatte den siste variabelen $ DROPLET_IP_ADDRESS med den offentlige IP-adressen til masternoden din. Hvis alt fungerte bra, ville dette være resultatet ditt:

Forsikre deg om at du kopierer den siste linjen "kubeadm join -token ..." da den inneholder nødvendige sikkerhetsopplysninger som en arbeidernode trenger for å bli med i klyngen.

Hver masternode har en API-server som kjører, som kommandoen ovenfor vil eksponere for pod-nettverket og også for kommandolinjegrensesnittet, kubectl, så vel som til et valgfritt nettgrensesnitt.

Merk: Du kan bruke slippens offentlige IP-adresse for kubeadm init kommando, men hvis du vil isolere masternoden din fra resten av verden, kan det være lurt å bruke DigitalOceans private IP-funksjon som brukes av forskjellige pods på tvers av forskjellige noder for å snakke med hverandre. Du kan senere bare avsløre front-end-tjenestene når prosjektet ditt blir oppfylt.

Ok, et siste trinn før vi får se helserapporten på hovednoden vår. Det kan være lurt å løpe:

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

Flannel er installert i den siste kommandoen som gir lag 3 nettverksfunksjonalitet som trengs for containere.
Nå kan vi løpe,

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

Som vil vise oss staten alle noder og alle pods i denne klyngen, som for øyeblikket bare er en. Så det er på tide for oss å konfigurere den andre dråpen og konvertere den til en Kubernetes-arbeiderknute.


Konfigurere håndlangere eller arbeidernoder

Mye minion konfigurasjon kommer til å være en repetisjon av det vi har gjort ovenfor, det er fra kubeadm kommando om at veien vil begynne å avvike.

Så for å konfigurere arbeidernoden din ved å gjenta alle kommandoene til og med installasjonen av pakker,

$ apt installer kubelet kubeadm kubectl kubernetes-cni

For å initialisere dråpen som en kubernetes-node, kjør kommandoen som ble generert ved masternoden, etter atkubeadm init.

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

Vær oppmerksom på at innholdet som følger tokenflagget ditt, IP-adressen og sha256-kontrollsummen vil være veldig forskjellige i ditt tilfelle. Det er det! Du har en ny node som medlem av Kubernetes-klyngen. Du kan bekrefte dette ved å oppgi nodene og podene som kjører på denne klyngen.


Konklusjon

Nå er det på tide for deg å distribuere din dockerisert applikasjonen i denne klyngen, og spinn gjerne opp flere dråper og bruk kubeadm bli med for å legge til nye medlemmer i Kubernetes-klyngen.

Topp 10 spill å spille på Ubuntu
Windows-plattformen har vært en av de dominerende plattformene for spill på grunn av den enorme andelen spill som utvikles i dag for å støtte Windows ...
5 beste arkadespill for Linux
I dag er datamaskiner seriøse maskiner som brukes til spill. Hvis du ikke kan få den nye høye poengsummen, vil du vite hva jeg mener. I dette innlegge...
Kamp for Wesnoth 1.1. 3.6 Utvikling utgitt
Kamp for Wesnoth 1.1. 3.6 utgitt i forrige måned, er den sjette utgivelsen i 1.1. 3.x-serien, og den leverer en rekke forbedringer, spesielt til bruke...