Kubernetes-klusterarkitektur och arbetsbelastningar för AKS som aktiveras av Azure Arc
Gäller för: AKS på Azure Stack HCI 22H2, AKS på Windows Server
Azure Kubernetes Service (AKS) på Azure Local och Windows Server är en Kubernetes-containerplattform i företagsklass som drivs av Azure Local. Den innehåller Kubernetes som stöds av Microsoft, en specialbyggd Windows-containervärd och en Linux-containervärd som stöds av Microsoft, med målet att få en enkel distributions- och livscykelhantering.
Den här artikeln beskriver kubernetes-kärninfrastrukturkomponenterna, till exempel kontrollplanet, noderna och nodpoolerna. Arbetsbelastningsresurser som poddar, distributioner och uppsättningar introduceras också, tillsammans med hur du grupperar resurser i namnområden.
Kubernetes-klusterarkitektur
Kubernetes är kärnkomponenten i AKS som aktiveras av Azure Arc. AKS använder en uppsättning fördefinierade konfigurationer för att distribuera Kubernetes-kluster effektivt och med skalbarhet i åtanke.
Distributionsåtgärden skapar flera virtuella Linux- eller Windows-datorer och kopplar ihop dem för att skapa Kubernetes-kluster.
Kommentar
För att förbättra systemets tillförlitlighet, om du kör flera klusterdelade volymer (CSV:er) i klustret, sprids data som standard automatiskt ut över alla tillgängliga CSV:er i klustret. Detta säkerställer att program överlever i händelse av CSV-avbrott. Detta gäller endast för nya installationer (inte uppgraderingar).
Det distribuerade systemet är redo att ta emot Kubernetes-standardarbetsbelastningar, skala dessa arbetsbelastningar eller till och med skala antalet virtuella datorer och antalet kluster upp och ned efter behov.
Ett Azure Kubernetes Service-kluster har följande komponenter:
- Hanteringskluster (även kallat AKS-värden) tillhandahåller den grundläggande orkestreringsmekanismen och gränssnittet för att distribuera och hantera ett eller flera arbetsbelastningskluster.
- Arbetsbelastningskluster (även kallade målkluster) är där containerbaserade program distribueras.
Hantera AKS aktiverat av Arc
Du kan hantera AKS med hjälp av följande hanteringsalternativ:
- Windows Admin Center erbjuder ett intuitivt användargränssnitt för Kubernetes-operatören för att hantera livscykeln för kluster.
- En PowerShell-modul gör det enkelt att ladda ned, konfigurera och distribuera AKS. PowerShell-modulen stöder också distribution och konfigurering av andra arbetsbelastningskluster och omkonfiguration av befintliga.
Hanteringsklustret
När du skapar ett Kubernetes-kluster skapas och konfigureras automatiskt ett hanteringskluster. Det här hanteringsklustret ansvarar för etablering och hantering av arbetsbelastningskluster där arbetsbelastningar körs. Ett hanteringskluster innehåller följande viktiga Kubernetes-komponenter:
- API-server: API-servern är hur underliggande Kubernetes-API:er exponeras. Den här komponenten tillhandahåller interaktionen för hanteringsverktyg, till exempel Windows Administrationscenter, PowerShell-moduler eller
kubectl
. - Lastbalanserare: lastbalanseraren är en enda dedikerad virtuell Linux-dator med en belastningsutjämningsregel för API-servern i hanteringsklustret.
Arbetsbelastningsklustret
Arbetsbelastningsklustret är en distribution med hög tillgänglighet av Kubernetes med virtuella Linux-datorer för att köra Kubernetes-kontrollplanskomponenter och Linux-arbetsnoder. Windows Server Core-baserade virtuella datorer används för att upprätta Windows-arbetsnoder. Det kan finnas ett eller flera arbetsbelastningskluster som hanteras av ett hanteringskluster.
Arbetsbelastningsklusterkomponenter
Arbetsbelastningsklustret har många komponenter som beskrivs i följande avsnitt.
Kontrollplan
- API Server: API-servern tillåter interaktion med Kubernetes-API:et. Den här komponenten tillhandahåller interaktionen för hanteringsverktyg, till exempel Windows Administrationscenter, PowerShell-moduler eller
kubectl
. - Etcd: Etcd är ett distribuerat nyckelvärdeslager som lagrar data som krävs för livscykelhantering av klustret. Den lagrar kontrollplanets tillstånd.
Lastbalanserare
Lastbalanseraren är en virtuell dator som kör Linux och HAProxy + KeepAlive för att tillhandahålla belastningsutjämnade tjänster för de arbetsbelastningskluster som distribueras av hanteringsklustret. För varje arbetsbelastningskluster lägger AKS till minst en virtuell lastbalanserare. Alla Kubernetes-tjänster av typen LoadBalancer
som skapas i arbetsbelastningsklustret skapar så småningom en belastningsutjämningsregel på den virtuella datorn.
Arbetsnoder
Om du vill köra dina program och stödtjänster behöver du en Kubernetes-nod. Ett AKS-arbetsbelastningskluster har en eller flera arbetsnoder. Arbetsnoder fungerar som virtuella datorer som kör Kubernetes-nodkomponenterna och är värdar för poddar och tjänster som utgör programarbetsbelastningen.
Det finns viktiga Kubernetes-arbetsbelastningskomponenter som kan distribueras i AKS-arbetsbelastningskluster, till exempel poddar och distributioner.
Poddar
Kubernetes använder poddar för att köra en instans av ditt program. En podd representerar en enda instans av ditt program. Poddar har vanligtvis en 1:1-mappning med en container, även om det finns avancerade scenarier där en podd kan innehålla flera containrar. Dessa poddar med flera containrar schemaläggs tillsammans på samma nod och tillåter containrar att dela relaterade resurser. Mer information finns i Kubernetes-poddar och Kubernetes-poddens livscykel.
Distributioner
En distribution representerar en eller flera identiska poddar som hanteras av Kubernetes-distributionskontrollanten. En distribution definierar antalet repliker (poddar ) som ska skapas, och Kubernetes-schemaläggaren ser till att om poddar eller noder stöter på problem schemaläggs ytterligare poddar på felfria noder. Mer information finns i Kubernetes-distributioner.
StatefulSets och DaemonSets
Distributionskontrollanten använder Kubernetes-schemaläggaren för att köra ett visst antal repliker på alla tillgängliga noder med tillgängliga resurser. Den här metoden för att använda distributioner kan vara tillräcklig för tillståndslösa program, men inte för program som kräver en beständig namngivningskonvention eller lagring. För program som kräver att en replik finns på varje nod (eller valda noder) i ett kluster tittar inte distributionskontrollanten på hur repliker distribueras över noderna.
- StatefulSets: en StatefulSet liknar en distribution i och med att en eller flera identiska poddar skapas och hanteras. Repliker i en StatefulSet följer en graciös, sekventiell metod för distribution, skalning, uppgraderingar och avslutningar. Med en StatefulSet (som repliker schemaläggs om) bevaras namngivningskonventionen, nätverksnamnen och lagringen. Repliker i en StatefulSet schemaläggs och körs över alla tillgängliga noder i ett Kubernetes-kluster. Om du behöver se till att minst en podd i din uppsättning körs på en nod kan du i stället använda en DaemonSet. Mer information finns i Kubernetes StatefulSets.
- DaemonSets: för specifika logginsamlings- eller övervakningsbehov kan du behöva köra en viss podd på alla eller valda noder. En DaemonSet används igen för att distribuera en eller flera identiska poddar, men DaemonSet-kontrollanten ser till att varje angiven nod kör en instans av podden. Mer information finns i Kubernetes DaemonSets.
Namnrymder
Kubernetes-resurser, till exempel poddar och distributioner, grupperas logiskt i ett namnområde. Dessa grupperingar är ett sätt att logiskt dela upp arbetsbelastningskluster och begränsa åtkomsten till att skapa, visa eller hantera resurser. Du kan till exempel skapa namnområden för att separera affärsgrupper. Användare kan bara interagera med resurser inom sina tilldelade namnområden. Mer information finns i Kubernetes-namnområden.
När du skapar ett Azure Kubernetes Service-kluster på AKS som aktiverats av Arc är följande namnområden tillgängliga:
- standard: ett namnområde där poddar och distributioner skapas som standard när ingen anges. I mindre miljöer kan du distribuera program direkt till standardnamnområdet utan att skapa ytterligare logiska separationer. När du interagerar med Kubernetes-API:et, till exempel med
kubectl get pods
, används standardnamnområdet när inget anges. - kube-system: ett namnområde där kärnresurser finns, till exempel nätverksfunktioner som DNS och proxy eller Kubernetes-instrumentpanelen. Vanligtvis distribuerar du inte dina egna program till det här namnområdet.
- kube-public: ett namnområde används vanligtvis inte, men kan användas för att resurser ska vara synliga i hela klustret och kan visas av alla användare.
Hemligheter
Med Kubernetes-hemligheter kan du lagra och hantera känslig information, till exempel lösenord, OAuth-token och SSH-nycklar (Secure Shell). Som standard lagrar Kubernetes hemligheter som okrypterade base64-kodade strängar, och de kan hämtas som oformaterad text av vem som helst med API-åtkomst. Mer information finns i Kubernetes-hemligheter.
Beständiga volymer
En beständig volym är en lagringsresurs i ett Kubernetes-kluster som antingen har etablerats av administratören eller dynamiskt etablerats med hjälp av lagringsklasser. Om du vill använda beständiga volymer begär poddar åtkomst med hjälp av en PersistentVolumeClaim. Mer information finns i Beständiga volymer.
Distributioner med blandat operativsystem
Om ett visst arbetsbelastningskluster består av både Linux- och Windows-arbetsnoder måste det schemaläggas till ett operativsystem som stöder etablering av arbetsbelastningen. Kubernetes erbjuder två mekanismer för att säkerställa att arbetsbelastningar hamnar på noder med ett måloperativsystem:
- Node Selector är ett enkelt fält i poddspecifikationen som begränsar poddar till att endast schemaläggas till felfria noder som matchar operativsystemet.
- Taints och toleranser fungerar tillsammans för att säkerställa att poddar inte schemaläggs på noder oavsiktligt. En nod kan "fläckas" så att den inte accepterar poddar som inte uttryckligen tolererar dess fördärv genom en "tolerans" i poddspecifikationen.
Mer information finns i nodväljare och taints och toleranser.
Nästa steg
I den här artikeln har du lärt dig om klusterarkitekturen för AKS som aktiveras av Azure Arc och arbetsbelastningsklusterkomponenterna. Mer information om dessa begrepp finns i följande artiklar: