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.
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.
Så här fungerar Kubernetes-lanseringar
- Skapa en YAML-fil som beskriver konfigurationen med önskat tillstånd för klustret.
- Tillämpa YAML-filen på klustret via kubectl, som är kommandoradsgränssnittet för Kubernetes.
- Kubectl skickar begäran till kube-apiserver, som autentiserar och auktoriserar begäran innan ändringen registreras till en databas, etcd.
- 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.
- 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
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.
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.
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.