Strategi för Kubernetes-distribution

Hitta den optimala Kubernetes-lanseringsstrategin för ditt program

Ta reda på dina alternativ för Kubernetes-distribution

Oavsett om du vill minska tiden till marknaden, skapa motståndskraftiga distributioner utan avbrottstid, lansera appar och funktioner snabbare eller oftare eller arbeta med större flexibilitet är det viktigt att välja rätt strategi för Kubernetes-distribution så att du kan leverera motståndskraftiga program och infrastrukturer. Varje strategi för Kubernetes-distribution har fördelar beroende på dina mål och behov.

Är Kubernetes nytt för dig? Lär dig grunderna

Så fungerar Kubernetes-distributioner

Innan du implementerar en strategi för Kubernetes-distribution behöver du förstå komponenterna i en Kubernetes-distribution och hur de fungerar tillsammans.

Det här finns i en Kubernetes-distribution

YAML-fil

Det önskade tillståndet för ditt Kubernetes-kluster – poddkonfigurationen – som du beskriver och som utgör grunden för en Kubernetes-distribution.

Poddar

De containrar, de delade resurser och den miljö som din app eller ditt arbetsflöde behöver köra.

ReplicaSet

Grupper med identiskt konfigurerade poddar kallas ReplicaSets. De ser till att den typ av och det antal poddar som beskrivs i YAML-filen för en Kubernetes-distribution körs konstant. Om en podd slutar fungera skapas en ny.

Kube-controller-manager

Ändrar klustrets aktuella tillstånd så att det matchar det önskade tillståndet som beskrivs i YAML genom att skapa nya poddar och ReplicaSets och uppdatera eller ta bort befintliga.

Kube-scheduler

Avgör hur dina poddar och ReplicaSets distribueras bland dina arbetsnoder samt distribuerar trafik till dessa noder.

Lansering

Processen för att omkonfigurera klustret från dess aktuella tillstånd till önskat tillstånd. Detta utförs i de flesta fall utan avbrottstid.

Arkitektur för Kubernetes-distribution

Så här fungerar Kubernetes-lanseringar

  1. Skapa en YAML-fil som beskriver konfigurationen med önskat tillstånd för klustret.
  2. Tillämpa YAML-filen på klustret via kubectl, som är kommandoradsgränssnittet för Kubernetes.
  3. Kubectl skickar begäran till kube-apiserver, som autentiserar och auktoriserar begäran innan ändringen registreras till en databas, etcd.
  4. Kube-controller-manager övervakar kontinuerligt systemet efter nya begäranden och försöker stämma av systemtillståndet mot det önskade tillståndet. Under denna process skapar den ReplicaSets, distributioner och poddar.
  5. När alla kontrollanter har körts ser kube-scheduler att det finns poddar med tillståndet ”väntar” eftersom de inte har schemalagts att köras i en nod ännu. Schemaläggaren hittar lämpliga noder för poddarna och kommunicerar med kubelet i varje nod för att ta kontrollen och starta distributionen.

Användningsfall för Kubernetes-distribution

Lansera containeriserade appar och arbetsflöden via Kubernetes-distributioner på fyra sätt. Den strategi för Kubernetes-distribution som du väljer kan använda en eller flera av dessa användningsfall.

Create

Lansera helt nya Kubernetes-poddar och ReplicaSets.

Uppdatera

Deklarera ett nytt önskat tillstånd och lansera nya poddar och ReplicaSets på ett kontrollerat sätt.

Återställa

Återställ Kubernetes-distributionen till ett tidigare tillstånd. Detta är användbart om det aktuella tillståndet inte är stabilt.

Skala

Öka antalet poddar och ReplicaSets i Kubernetes-distributionen utan att ändra dem.

Strategier för Kubernetes-distribution

Den bästa strategin för Kubernetes-distribution för ditt scenario beror på många faktorer: hur mycket avbrottstid du har råd med (om alls), din distributionsmiljö, hur mycket du litar på stabiliteten hos en ny version eller plattform, huruvida du behöver testa, vad du vill lära dig, resurskostnader och tillgänglighet samt affärsmål. Här är fyra vanliga distributionsstrategier som organisationer använder i produktion.

Gradvis

Kubernetes standardmetod för lansering är en gradvis eller löpande distribution. Denna distribution ersätter långsamt poddar en åt gången i syfte att undvika avbrottstid. Gamla poddar skalas ned först när det finns nya poddar redo. Om det uppstår problem för distributionen kan du pausa eller avbryta Kubernetes-distributionen utan att hela klustret går offline.

Blå/grön

I en blå/grön distribution lanserar du en ny version (blå) av ditt program eller arbetsflöde medan din aktuella version (grön) fortfarande körs. Detta gör att du kan testa den blå versionen i produktion samtidigt som användarna endast exponeras för den stabila gröna versionen. När den blå versionen väl har testats ersätter den gradvis den gröna versionen.

Kontrollvärde

Gör att dina kunder kan testa din Kubernetes-distribution genom att du lanserar den nya versionen till en liten grupp bland kunderna. Du kör en ReplicaSet av den nya versionen samtidigt som den aktuella versionen. Efter en angiven tidsperiod utan fel skalar du därefter upp den nya versionen allt eftersom du tar bort den gamla.

A/B-testning

Liksom kontrollvärdesstrategin för Kubernetes-distribution riktar sig en A/B-testningsstrategi till en specifik grupp med kunder. Dock syftar A/B-testningsdistribution till att skapa mer än bara stabilitet i en version – den används även för att testa hur effektiv versionen är vad gäller att uppnå affärsmålen. Den nya versionen distribueras till användare utefter faktorer såsom cookies, geoplats, operativsystem och enhetstyp, och den körs ofta samtidigt som den aktuella versionen – den skalas upp allt eftersom den nya versionen visar sig vara värdefull.

Verktyg för Kubernetes-distribution

Du kan använda kommandoraden eller YAML-filer för att genomföra vilken som helst av de strategierna för Kubernetes-distribution, men du kan få större kontroll över kluster och distributioner genom att implementera verktyg och tjänster för Kubernetes-distribution som dessa.

Azure DevOps

En fullständig programförsörjningskedja för att automatisera Kubernetes-distributioner. Balansera hastighet och säkerhet samtidigt som du levererar kod snabbare och i rätt skala.

Läs mer

Helm

Ett paketeringsverktyg med öppen källkod. Installera, uppgradera och hantera Kubernetes-program med hjälp av diagram som du skapar, versionshantera, dela och publicera.

Läs mer

Azure Kubernetes Service (AKS)

En säker och fullständigt hanterad Kubernetes-tjänst med hög tillgänglighet. Distribuera och hantera containeriserade appar i molnet.

Läs mer

När du är redo är vi också det – prova Kubernetes kostnadsfritt i Azure