Kubernetes

Kubernetes operatørveiledning

Kubernetes operatørveiledning
Kubernetes Operators er et konsept introdusert av CoreOS-prosjektet for å utvide funksjonene til Kubernetes, spesielt styring av Stateful applikasjoner. Det er ment å forenkle hele livssyklusen for stateful ressurser fra å pakke applikasjonen og distribuere den til en Kubernetes-klynge helt opp til å administrere og skalere appen.

Som et eksempel, har noen av de viktigste Kubernetes-komponentene som etcd sine tilsvarende operatører gjort tilgjengelig av CoreOs-prosjektet. Etcd er en distribuert nøkkelverdi-butikk som gjenspeiler kjøringstilstanden til hele Kubernetes-klyngen til enhver tid. Naturligvis er det en stateful applikasjon, og forskjellige Kubernetes-kontrollere refererer til etcd for å finne ut hva deres neste trinn kommer til å bli. For eksempel vil ReplicaSet-kontrolleren se på antall pods som kjører under en gitt velger og prøve å bringe antall løpende forekomster til det antallet som er angitt av ReplicaSet eller Deployment YAML. ReplicaSet refererer til etcd som holder oversikt over antall løpende pods, og når antall pods er endret til ønsket verdi, vil etcd også oppdatere sin oversikt over det.

Men når det gjelder Stateful-applikasjoner, som etcd selv, kan vi ikke spinne opp flere pods over forskjellige noder uten alvorlig inngripen. Fordi alle løpende forekomster til enhver tid må ha data som er konsistente med hverandre. Dette er hvor operatører kommer godt med.

Forutsetninger

Hvis du ønsker å følge med i denne opplæringen, kan du starte med noe lite som en Minikube installert på den bærbare datamaskinen din, eller Kubernetes-distribusjonen som følger med Docker for desktop.

Det viktige er å ha en forståelse av de grunnleggende ideene til Kubernetes til å begynne med.

Etcd

La oss lage en operatør som vil administrere etcd på tvers av Kubernetes-klyngen. Vi installerer ikke etcd som en Kubernetes-komponent (det vil si i kube-systemets navneområde), men som en vanlig applikasjon. Fordi å gjøre det ville sette hele klyngen i fare. Når du er komfortabel med operatører, kan du imidlertid bruke dem til å distribuere etcd i kube-systemet mens du starter en ny klynge.

Jeg skal bruke Katacoda Playground her, og en nærmere inspeksjon av kube-systemets navneområde vil vise deg at vi har en pod som kjører osv. For oss. Men det er ikke noe vi skal fikle med. Vi installerer etcd i standard navneområde administrert av etcd-operator

Å starte med standard navneområdet har ingen pods som kjører, vi har en ren skifer.

$ kubectl få pods

Ingen ressurser funnet.

La oss nå installere en ny etcd-forekomst i dette navneområdet. Vi starter med å klone depotet etterfulgt av en enkel kubectl-kommando.

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

Opprette Etcd-operatør

I repoen er det flere eksempler å operere på, den første vil opprette en enkel etcd-operatør som bruker utplassering.yaml fil. Før vi bruker det, må vi først lage en rolle for operatøren som kan administrere og skalere etcd-klyngen. Du kan opprette den rollen ved hjelp av et skallskript.

$ / eksempel / rbac / create_role.sh
$ kubectl create -f ./ eksempel / distribusjon.yaml

Operatørobjektet vil bli opprettet med den siste kommandoen, selv om det ikke er noe å operere på. Vi har ikke en etcd-klynge ennå. Så la oss lage en.

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

Dette skaper en klynge med etcd-bøtter. Du kan se dem ved hjelp av:

$ kubectl få pods
 
NAVN KLAR STATUS RESTARTER ALDER
etcd-operator-69b559656f-495vg 1/1 Kjører 0 9m
eksempel-etcd-klynge-9bxfh657qq 1/1 Kjører 0 23s
eksempel-etcd-klynge-ntzp4hrw79 1/1 Kjører 0 8m
eksempel-etcd-klynge-xwlpqrzj2q 1/1 Kjører 0 9m

Den første i denne listen er operatørpoden som vil sikre at etcd-klyngen opprettholder en viss tilstand, som angitt i yaml-filene vi brukte tidligere. Hvis du prøver å slette en av eksempel-etcd-klyngepodene, vil en annen opprettes for å ta plass. Det er bemerkelsesverdig likt det ReplicaSet gjør, men her er pods stateful!

Operatører generelt

Som nevnt tidligere er operatører et generelt rammeverk der man kan distribuere og administrere komplekse applikasjoner. Selve rammeverket er det som gjør dem nyttige, og de spesifikke eksemplene som etcd-operatør eller Prometheus-operatør som CoreOS gir, er ment å fungere som en guide for deg å utvikle din egen applikasjon på en lignende måte.

Noen få viktige aspekter ved Kubernetes Operators er SDK brukes til å skrive, bygge og teste din egen tilpassede operatør, den andre er ideen om Operatør Livsløpssjef hvor du kan tenke på alle de forskjellige trinnene som operatøren din, samt tjenesten den tilbyr kan gjennomgå.

Livssyklusstadiene kan omfatte forskjellige oppdateringer, og finne ut hvilken operatør som kjører i hvilke navnerom, og også oppdatere operatørene når en ny versjon kommer.

Referanser

Du kan lese mye mer om denne teknologien i:

  1. CoreOS 'opprinnelige innlegg, og
  2. Etcd-operatøren kan utforskes her
Mus Mus venstreklikknapp fungerer ikke på Windows 10
Mus venstreklikknapp fungerer ikke på Windows 10
Hvis du bruker en dedikert mus med den bærbare eller stasjonære datamaskinen, men museklikk-knappen fungerer ikke på Windows 10/8/7 av en eller annen ...
Mus Markøren hopper eller beveger seg tilfeldig mens du skriver inn Windows 10
Markøren hopper eller beveger seg tilfeldig mens du skriver inn Windows 10
Hvis du finner ut at musemarkøren hopper eller beveger seg alene, automatisk, tilfeldig mens du skriver inn Windows-bærbar PC eller datamaskin, kan no...
Mus Hvordan reversere rulle retning for mus og styreplater i Windows 10
Hvordan reversere rulle retning for mus og styreplater i Windows 10
Mus og Pekeplates gjør ikke bare databehandling enkelt, men mer effektivt og mindre tidkrevende. Vi kan ikke forestille oss et liv uten disse enhetene...