Navigatie overslaan

Implementatiestrategie van Kubernetes

De optimale Kubernetes-implementatiestrategie voor uw toepassing zoeken

Weet wat uw Kubernetes-implementatieopties zijn

Of u nu de implementatietijd wilt verkorten, tolerante implementaties zonder downtime wilt maken, apps en functies sneller en vaker wilt uitbrengen of met meer flexibiliteit wilt werken, de keuze van de juiste Kubernetes-implementatiestrategie is essentieel voor het leveren van tolerante toepassingen en infrastructuur. Elke Kubernetes-implementatiestrategie heeft zijn voordelen, afhankelijk van uw doelen en behoeften.

Nieuw bij Kubernetes? Leer de basisbeginselen

Hoe Kubernetes-implementaties werken

Voordat u een Kubernetes-implementatiestrategie implementeert, moet u de onderdelen van een Kubernetes-implementatie begrijpen en weten hoe deze samenwerken.

Wat zit er in een Kubernetes-implementatie?

YAML-bestand

De gewenste status voor uw Kubernetes-cluster (de configuratie van pods) die u beschrijft en die dient als de basis voor een Kubernetes-implementatie.

Pods

De containers, gedeelde resources en omgeving die uw app of workflow moet uitvoeren.

ReplicaSet

Groepen identiek geconfigureerde pods worden ReplicaSets genoemd. Deze zorgen ervoor dat het type en het aantal pods beschreven in het YAML-bestand voor een Kubernetes-implementatie altijd worden uitgevoerd. Als een pod mislukt, wordt een nieuwe gemaakt.

Kube-controller-manager

Hiermee wijzigt u de huidige status van het cluster zodat deze overeenkomt met de gewenste status zoals beschreven in het YAML-bestand. Daarnaast maakt u nieuwe pods en ReplicaSets, of u werkt bestaande bij of verwijdert deze.

Kube-scheduler

Hiermee bepaalt u hoe uw pods en ReplicaSets worden geïmplementeerd onder uw werkknooppunten en distribueert u verkeer naar die knooppunten.

Implementeren

Het proces van het opnieuw configureren van het cluster vanaf de huidige status naar de gewenste status. Dit wordt in de meeste gevallen bereikt zonder downtime.

Kubernetes-implementatie-architectuur

Hoe Kubernetes-implementaties werken

  1. Maak een YAML-bestand dat de gewenste statusconfiguratie van het cluster beschrijft.
  2. Pas het YAML-bestand toe op het cluster middels kubectl, de opdrachtregelinterface van Kubernetes.
  3. Met kubectl verzendt u de aanvraag naar de kube-apiserver, die de aanvraag verifieert en autoriseert voordat de wijziging wordt vastgelegd in een database, enzovoort.
  4. Met de kube-controller-manager controleert u het systeem continu op nieuwe aanvragen en stemt u de systeemstatus af op de gewenste status door hierbij ReplicaSets, implementaties en pods te maken.
  5. Wanneer alle controllers zijn uitgevoerd, ziet de kube-scheduler dat er pods zijn met de status 'in behandeling', omdat deze nog niet zijn ingepland om op een knooppunt te worden uitgevoerd. De scheduler zoekt geschikte knooppunten voor de pods en communiceert vervolgens met de kubelet in elk knooppunt om de besturing over te nemen en de implementatie te starten.

Gebruiksvoorbeelden van Kubernetes-implementatie

U kunt op vier manieren apps en workflows in containers uitrollen via Kubernetes-implementaties. Voor de Kubernetes-implementatiestrategie die u gebruikt, kan een of meer van deze gebruiksvoorbeelden worden gebruikt.

Maken

Rol volledig nieuwe Kubernetes-pods en ReplicaSets uit.

Update

Declareer een nieuwe gewenste status en rol nieuwe pods en ReplicaSets op een gecontroleerde manier uit.

Terugdraaien

Zet de Kubernetes-implementatie terug naar een eerdere status; handig als de huidige status niet stabiel is.

Schalen

Verhoog het aantal pods en ReplicaSets in de Kubernetes-implementatie zonder ze te wijzigen.

Implementatiestrategieën van Kubernetes

De beste Kubernetes-implementatiestrategie voor uw scenario hangt af van veel factoren: hoeveel downtime u zich kunt veroorloven (als u zich downtime kunt veroorloven), uw implementatie-omgeving, hoeveel vertrouwen u hebt in de stabiliteit van een nieuwe versie of een nieuw platform, of u wel of niet moet testen en wat u hoopt te leren, wat de resourcekosten en beschikbaarheid zijn en de zakelijke doelen. Hierna volgen vier gangbare implementatiestrategieën die organisaties gebruiken in productie.

Geleidelijk

De standaardimplementatiemethode van Kubernetes is een geleidelijke of doorlopende implementatie. Met deze implementatie worden pods langzaam, een voor een, vervangen om downtime te voorkomen. Oude pods worden pas omlaag geschaald wanneer de nieuwe pods klaar zijn. Als u in uw implementatie problemen tegenkomt, kunt u de Kubernetes-implementatie pauzeren of annuleren zonder het volledige cluster offline te halen.

Blauw/groen

In een blauw/groene implementatie brengt u een nieuwe versie (blauw) van uw toepassing of workflow uit, terwijl de huidige versie (groen) nog actief is. Zo kunt u de blauwe versie testen in productie terwijl voor gebruikers alleen de groene, stabiele versie zichtbaar is. Na de test wordt de groene versie geleidelijk vervangen door de blauwe versie.

Canary

Laat uw klanten uw Kubernetes-implementatie testen door de nieuwe versie uit te brengen voor een kleine groep van deze klanten. U voert één ReplicaSet van de nieuwe versie uit samen met de huidige versie en vervolgens, na een bepaalde periode zonder fouten, schaalt u de nieuwe versie omhoog terwijl u de oude versie verwijdert.

A/B-testen

Vergelijkbaar met de canary Kubernetes-implementatiestrategie richt een A/B-teststrategie zich ook op een specifieke groep klanten. Een A/B-testimplementatie probeert echter meer dan de stabiliteit van een versie vast te stellen; deze implementatie wordt gebruikt om te testen hoe effectief de versie is in het bereiken van zakelijke doeleinden. De nieuwe versie wordt gedistribueerd naar gebruikers op basis van factoren als cookies, geolocatie, besturingssysteem en apparaattype, en wordt regelmatig naast de huidige versie uitgevoerd. Er wordt omhoog geschaald wanneer de nieuwe versie zijn nut heeft bewezen.

Implementatietools van Kubernetes

U kunt de opdrachtregel of YAML-bestanden gebruiken om al deze Kubernetes-implementatiestrategieën uit te voeren, maar u hebt meer baat bij uw clusters en implementaties door Kubernetes-implementatietools en -services als deze te implementeren.

Azure DevOps

Een volledige toeleveringsketen voor toepassingen om Kubernetes-implementaties te automatiseren. Breng snelheid en beveiliging in balans terwijl u code sneller op schaal levert.

Meer informatie

Helm

Ee opensource-verpakkingstool. Installeer, upgrade en beheer Kubernetes-toepassingen met behulp van grafieken die u maakt, van een versienummer voorziet, deelt en publiceert.

Meer informatie

Azure Kubernetes Service (AKS)

Een maximaal beschikbare, veilige en volledig beheerde Kubernetes-service. Implementeer en beheer apps in containers in de cloud.

Meer informatie

Als u er klaar voor bent, kunt u Kubernetes gratis proberen in Azure