Kubernetes

Handleiding voor Kubernetes-operator

Handleiding voor Kubernetes-operator
Kubernetes-operators zijn een concept dat door het CoreOS-project is geïntroduceerd om de mogelijkheden van Kubernetes uit te breiden, met name het beheer van Stateful-applicaties. Het wordt verondersteld de hele levenscyclus van stateful resources te vereenvoudigen, van het verpakken van de applicatie en het implementeren ervan in een Kubernetes-cluster tot het beheren en schalen van de app.

Sommige van de kerncomponenten van Kubernetes, zoals etcd, hebben hun overeenkomstige operators beschikbaar gesteld door het CoreOs-project. Etcd is een gedistribueerd sleutelwaardearchief dat op elk moment de actieve status van het gehele Kubernetes-cluster weergeeft. Het is natuurlijk een stateful applicatie en verschillende Kubernetes-controllers verwijzen naar etcd om erachter te komen wat hun volgende stap zal zijn. De ReplicaSet-controller kijkt bijvoorbeeld naar het aantal pods dat onder een bepaalde selector wordt uitgevoerd en probeert het aantal actieve instanties gelijk te stellen aan het aantal dat is opgegeven door uw ReplicaSet of Deployment YAML. De ReplicaSet verwijst naar etcd die het aantal actieve pods bijhoudt en zodra het aantal pods is gewijzigd in een gewenste waarde, zou de etcd zijn record ervan ook bijwerken.

Maar als het gaat om Stateful-toepassingen, zoals etcd zelf, kunnen we niet meer pods over verschillende knooppunten laten draaien zonder serieuze tussenkomst. Omdat alle actieve instanties te allen tijde gegevens moeten hebben die consistent met elkaar zijn. Dit is waar Operators van pas komen.

Vereisten

Als je deze tutorial wilt volgen, kun je beginnen met iets kleins, zoals een Minikube die op je laptop is geïnstalleerd, of de Kubernetes-distributie die bij Docker voor desktop wordt geleverd.

Het belangrijkste is om om te beginnen de basisideeën van Kubernetes te begrijpen.

enz

Laten we een operator maken die etcd zou beheren in ons Kubernetes-cluster. We zullen etcd niet installeren als een Kubernetes-component (dat wil zeggen in de naamruimte van het kube-systeem) maar als een gewone applicatie. Omdat dat het hele cluster in gevaar zou brengen. Als u eenmaal vertrouwd bent met operators, kunt u ze gebruiken om etcd in het kube-systeem te implementeren terwijl u een nieuw cluster opstart.

Ik zal Katacoda Playground hier gebruiken, en een nadere inspectie van de naamruimte van het kube-systeem zou je laten zien dat we één pod hebben die etcd voor ons draait. Maar dat is niet iets waar we mee gaan rommelen. We zullen etcd installeren in de standaard naamruimte beheerd door etcd-operator

Bij het starten van de standaardnaamruimte zijn er geen pods actief, we hebben een schone lei.

$ kubectl krijg pods

Geen bronnen gevonden.

Laten we nu een nieuwe etcd-instantie in deze naamruimte installeren. We beginnen met het klonen van de repository gevolgd door een eenvoudig kubectl-commando.

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

Etc-operator maken

In de repo zijn er verschillende voorbeelden om op te werken, de eerste zou een eenvoudige etcd-operator maken met behulp van inzet.yaml het dossier. Voordat we dat gebruiken, moeten we eerst een rol maken voor de operator waarmee het de etcd-cluster kan beheren en schalen. U kunt die rol maken met behulp van een shellscript.

$ /voorbeeld/rbac/create_role.sh
$ kubectl create -f ./voorbeeld/implementatie.yaml

Het operator-object wordt gemaakt door de laatste opdracht, hoewel er niets is om op te werken. We hebben nog geen etcd cluster. Dus laten we er een maken.

$ kubectl create -f ./voorbeeld/voorbeeld-etcd-cluster.yaml

Dit creëert een cluster van etcd-pods. Je kunt ze zien met:

$ kubectl krijg pods
 
NAAM                              GEREED     STATUS    HERSTART   LEEFTIJD
etcd-operator-69b559656f-495vg    1/1       In bedrijf   0          9m
voorbeeld-etcd-cluster-9bxfh657qq   1/1       Actief   0          23s
voorbeeld-etcd-cluster-ntzp4hrw79   1/1       Running   0          8m
voorbeeld-etcd-cluster-xwlpqrzj2q   1/1       Running   0          9m

De eerste in deze lijst is de operator-pod die ervoor zou zorgen dat het etcd-cluster een bepaalde status behoudt, zoals vermeld in de yaml-bestanden die we eerder hebben gebruikt. Als u een van de voorbeeld-etcd-cluster-pods probeert te verwijderen, wordt er een andere gemaakt om zijn plaats in te nemen. Dat is opmerkelijk vergelijkbaar met wat ReplicaSet doet, maar hier zijn de pods stateful!

Operators in het algemeen

Zoals eerder vermeld, zijn operators een algemeen raamwerk waarbinnen men complexe applicaties kan implementeren en beheren. Het framework zelf is wat ze nuttig maakt en de specifieke voorbeelden zoals de etcd-operator of Prometheus-operator die CoreOS biedt, zijn bedoeld als richtlijn voor u om uw eigen applicatie op een vergelijkbare manier te ontwikkelen.

Een paar belangrijke aspecten van Kubernetes Operators zijn: de SDK gebruikt voor het schrijven, bouwen en testen van uw eigen aangepaste operator, de tweede is het idee van: Beheerder levenscyclus van operators waarin u kunt nadenken over alle verschillende fasen die uw operator en de aangeboden service kunnen doorlopen can.

De levenscyclusfasen kunnen verschillende updates omvatten, uitzoeken welke operator in welke naamruimten wordt uitgevoerd en ook de operators bijwerken wanneer er een nieuwe versie komt.

Referenties

U kunt veel meer over deze technologie lezen in:

  1. Het originele bericht van CoreOS, en
  2. De etcd-operator kan hier worden verkend
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...
Hoe League Of Legends op Ubuntu 14 te installeren.04
Als je fan bent van League of Legends, dan is dit een kans voor jou om League of Legends te testen. Merk op dat LOL wordt ondersteund op PlayOnLinux a...
Installeer de nieuwste OpenRA Strategy Game op Ubuntu Linux
OpenRA is een Libre/Free Real Time Strategy-game-engine die de vroege Westwood-games nabootst, zoals de klassieke Command & Conquer: Red Alert. Gedist...