Kubernetes kör containeriserade appar på ett kluster av datorer och håller dem i det tillstånd du beskriver. Det gör du genom att placera arbete på rätt datorer, dirigera trafik till rätt platser och söka efter fel och ändringar.
Det grundläggande flödet
1. Du beskriver vad du vill köra
De flesta Kubernetes-arbetsbelastningar börjar som ett deklarerat “önskat tillstånd” (vad som ska köras, hur många kopior och hur de ska exponeras). Kubernetes bygger på deklarativ konfiguration och automatisering.
2. Kubernetes bestämmer var det ska köras
Kubernetes schemalägger containrar till datorer i klustret baserat på tillgängliga beräkningsresurser och vad varje container behöver. Containrar körs i poddar, vilket är enheten kubernetes placerar på en dator.
3. Kubernetes fortsätter att kontrollera verkligheten jämfört med ditt önskade tillstånd
Kontrollanter tittar på klustret och arbetar med att flytta det aktuella tillståndet närmare önskat tillstånd med hjälp av API-servern för att göra ändringar.
Schemaläggning av containrar och daglig hantering
Schemaläggning är var ska den här körningen “vara?” beslut.
1. Poddar schemaläggs, inte enskilda containrar
Kubernetes grupperar containrar i poddar och placerar sedan poddarna på datorer.
2. Schemaläggaren tilldelar poddar till en lämplig nod
Kube-scheduler söker efter poddar som’inte har tilldelats ännu och väljer en nod för dem.
3. Nodagenter håller poddarna igång
På varje nod ser kubelet till att poddarna körs (inklusive deras containrar).
Belastningsutjämning och tjänstidentifiering
Containrar och poddar kan skapas, flyttas eller ersättas, så program behöver stabila sätt att hitta varandra.
Tjänstidentifiering och belastningsutjämning är inbyggda beteenden
Kubernetes hanterar tjänstidentifiering och använder belastningsutjämning så att trafiken kan dirigeras även när poddar ändras över tid.
Tjänster tillhandahåller en stabil adress för en ändrad uppsättning poddar
Tjänst-API:et tillhandahåller en stabil IP-adress eller ett värdnamn för en tjänst som backas upp av en eller flera poddar, och Kubernetes spårar poddar som backas upp via EndpointSlice-objekt.
Trafikdirigeringsuppdateringar när poddar ändras
När poddar bakom en tjänst ändras anpassas tjänstdirigeringen så att trafiken fortsätter att nå aktuella serverdelar.
Skalning av program (och varför “önskat tillstånd” är viktigt)
Kubernetes kan skala arbetsbelastningar mot det tillstånd du anger, inklusive skalning baserat på beräkningsanvändning.
Vanliga skalningsidéer är:
Fler repliker (fler poddar) för att hantera högre efterfrågan.
Färre repliker när efterfrågan sjunker.
Resursspårning så att placeringsbesluten återspeglar processor- och minnesbehoven.
Detta binder tillbaka till den “önskade tillståndsmodellen”: du anger målet och kontrollanterna fortsätter att arbeta mot det.
Självåterställning: Vad händer när något går sönder
Kubernetes innehåller självåterställningsbeteenden som syftar till att upprätthålla arbetsbelastningens hälsa och tillgänglighet. Dessa är:
Omstart av misslyckade containrar (omstarter på containernivå).
Det gick inte att ersätta poddar för att behålla det begärda antalet repliker (replikbyte).
Omplanera arbetsbelastningar när noder blir otillgängliga.
Att ta bort misslyckade poddar från tjänstslutpunkter så att trafiken endast går till felfria poddar (belastningsutjämning för tjänster).
Självåterställning kontrollerar containerhälsan och startar om eller replikerar dem när det uppstår problem.
Rollen för Kubernetes KPI:er
Nyckeltal (KPI:er eller mått) används för att förstå klustrets hälsa och arbetsbelastningsbeteende.
Var KPI:er kommer från
Kubernetes-systemkomponenter genererar mått (Prometheus-format) som är användbara för instrumentpaneler och aviseringar.
Mått är vanligtvis tillgängliga på en HTTP-slutpunkt för komponent/mått, inklusive komponenter som kube-apiserver, kube-scheduler, kubelet, kube-proxy och kube-controller-manager.
Exempel på vad KPI:er hjälper dig att upptäcka
Signaler om klusterhälsa (mätvärden på komponentnivå och felmönster)
Arbetsbelastningsstabilitet (till exempel frekventa omstarter eller ersättningar)
Kapacitetspress (resursallokering jämfört med efterfrågan, kopplat till skalningsbeslut)
Varför det här spelar roll i den dagliga driften
Övervakning ger team en mer komplett vy över klusterresurser, Kubernetes-API:et, containrar och loggar, vilket förkortar återkopplingsloopen mellan problem och åtgärder.