Kubernetes

Kubernetes operatørvejledning

Kubernetes operatørvejledning
Kubernetes Operators er et koncept introduceret af CoreOS-projektet for at udvide Kubernetes kapaciteter, især styring af Stateful applikationer. Det formodes at forenkle hele livscyklussen for stateful ressourcer fra emballering af applikationen og implementering af den i en Kubernetes-klynge hele vejen op til administration og skalering af appen.

Som et eksempel har nogle af de centrale Kubernetes-komponenter som etcd deres tilsvarende operatører stillet til rådighed af CoreOs-projektet. Etcd er en distribueret nøgleværdilager, der afspejler kørselstilstanden for hele Kubernetes-klyngen på et givet øjeblik. Naturligvis er det en stateful applikation, og forskellige Kubernetes-controllere henviser til etcd for at finde ud af, hvad deres næste trin vil være. For eksempel vil ReplicaSet-controller se på antallet af bælg, der kører under en given vælger, og forsøge at bringe antallet af kørende forekomster til det antal, der er angivet af din ReplicaSet eller Implementering YAML. ReplicaSet refererer til etcd, der holder styr på antallet af kørende pods, og når antallet af pods er ændret til en ønsket værdi, vil etcd også opdatere sin registrering af det.

Men når det kommer til Stateful-applikationer, som etcd selv, kan vi ikke spinde flere bælg på tværs af forskellige noder uden nogen seriøs indblanding. Fordi alle kørende forekomster altid skal have data, der er i overensstemmelse med hinanden. Det er her, operatører er nyttige.

Forudsætninger

Hvis du ønsker at følge med i denne vejledning, kan du starte med noget lille som en Minikube installeret på din bærbare computer eller Kubernetes-distributionen, der følger med Docker til desktop.

Det vigtige er at have en forståelse af Kubernetes grundlæggende ideer til at begynde med.

Osv

Lad os oprette en operatør, der administrerer etcd på tværs af vores Kubernetes-klynge. Vi installerer ikke etcd som en Kubernetes-komponent (det vil sige i kube-systemets navneområde), men som en almindelig applikation. Fordi at gøre det ville sætte hele klyngen i fare. Når du er fortrolig med operatører, kan du dog bruge dem til at distribuere etcd i kube-systemet, mens du starter en ny klynge.

Jeg bruger Katacoda Playground her, og en nærmere inspektion af kube-systemets navneområde viser dig, at vi har en pod, der kører osv. Til os. Men det er ikke noget, vi vil rode med. Vi installerer etcd i standardnavneområdet, der administreres af etcd-operator

Fra start af standardnavneområdet er der ingen pods, der kører, vi har en ren skifer.

$ kubectl få bælg

Ingen ressourcer fundet.

Lad os nu installere en ny etcd-forekomst i dette navneområde. Vi starter med at klone lageret efterfulgt af en simpel kubectl-kommando.

$ git klon https: // github.com / coreos / etcd-operator.git
$ cd etd-operatør

Opretter osv. Operatør

I repoen er der flere eksempler at operere på, den første ville oprette en simpel etcd-operatør ved hjælp af implementering.yaml fil. Før vi bruger det, skal vi først oprette en rolle til operatøren, via hvilken den kan styre og skalere etcd-klyngen. Du kan oprette denne rolle ved hjælp af et shell-script.

$ / eksempel / rbac / create_role.sh
$ kubectl oprette -f ./ eksempel / implementering.yaml

Operatørobjektet oprettes med den sidste kommando, selvom der ikke er noget at betjene. Vi har endnu ikke en etcd-klynge. Så lad os oprette en.

$ kubectl oprette -f ./ eksempel / eksempel-etcd-klynge.yaml

Dette skaber en klynge af etcd bælg. Du kan se dem ved hjælp af:

$ kubectl få bælg
 
NAVN KLAR STATUS OMSTARTER ALDER
etcd-operator-69b559656f-495vg 1/1 Kører 0 9m
eksempel-etcd-klynge-9bxfh657qq 1/1 Kører 0 23s
eksempel-etcd-klynge-ntzp4hrw79 1/1 Kører 0 8m
eksempel-etcd-cluster-xwlpqrzj2q 1/1 Kører 0 9m

Den første på denne liste er operatør-pod, som vil sikre, at etcd-klyngen opretholder en bestemt tilstand, som angivet i de yaml-filer, vi brugte tidligere. Hvis du prøver at slette en af ​​de eksempler-etcd-cluster-bælg, oprettes en anden for at tage plads. Det ligner bemærkelsesværdigt, hvad ReplicaSet gør, men her er bælg stateful!

Operatører generelt

Som tidligere nævnt er operatører en generel ramme, inden for hvilken man kan implementere og administrere komplekse applikationer. Selve rammen er, hvad der gør dem nyttige, og de særlige eksempler som etcd-operatør eller Prometheus-operatør, som CoreOS giver, er beregnet til at fungere som en vejledning for dig til at udvikle din egen applikation på en lignende måde.

Et par vigtige aspekter af Kubernetes Operators er SDK'en bruges til at skrive, bygge og teste din egen brugerdefinerede operatør, det andet er ideen om Operatør Livscyklus Manager hvor du kan tænke på alle de forskellige faser, som din operatør samt den service, den tilbyder, kan gennemgå.

Livscyklusstadierne kan omfatte forskellige opdateringer, idet de finder ud af, hvilken operatør der kører i hvilke navneområder og også opdaterer operatørerne, når der kommer en ny version.

Referencer

Du kan læse meget mere om denne teknologi i:

  1. CoreOS 'oprindelige indlæg og
  2. Etcd-operatøren kan udforskes her
Gratis og open source-spilmotorer til udvikling af Linux-spil
Denne artikel dækker en liste over gratis og open source-spilmotorer, der kan bruges til at udvikle 2D- og 3D-spil på Linux. Der er mange sådanne spil...
Shadow of the Tomb Raider til Linux-vejledning
Shadow of the Tomb Raider er den tolvte tilføjelse til Tomb Raider-serien - en action-adventure-spilfranchise oprettet af Eidos Montreal. Spillet blev...
Sådan styrkes FPS i Linux?
FPS står for Billeder i sekundet. FPS's opgave er at måle billedhastigheden i videoafspilninger eller spiloptræden. I enkle ord betegnes antallet af u...