Baslinjearkitektur för AKS i Azure Stack HCI

Azure Stack
Windows Server

Det här scenariot visar hur du utformar och implementerar en baslinjearkitektur för Microsoft Azure Kubernetes Service (AKS) som körs på Azure Stack HCI (AKS-hybrid).

Den här artikeln innehåller rekommendationer för nätverk, säkerhet, identitet, hantering och övervakning av klustret baserat på organisationens affärskrav. Det är en del av en vägledningsuppsättning för arkitekturbaslinjer med två artiklar. Se rekommendationerna för nätverksdesign här.

Arkitektur

Följande bild visar baslinjearkitekturen för Azure Kubernetes Service på Azure Stack HCI eller Windows Server 2019/2022 datacenter redundanskluster:

Conceptual image of Baseline architecture for Azure Kubernetes Service on Azure Stack HCI.

Ladda ned en Visio-fil med den här arkitekturen.

Arkitekturen består av följande komponenter och funktioner:

  • Azure Stack HCI (20H2). En klusterlösning för hyperkonvergerad infrastruktur (HCI) som är värd för virtualiserade Windows- och Linux-arbetsbelastningar och deras lagring i en lokal hybridmiljö. Ett Azure Stack HCI-kluster implementeras som ett 2-8-nodkluster.
  • Azure Kubernetes Service på Azure Stack HCI (AKS-hybrid). En lokal implementering av AKS, som automatiserar körningen av containerbaserade program i stor skala.
  • Azure Arc. En molnbaserad tjänst som utökar den Azure Resource Manager-baserade hanteringsmodellen till icke-Azure-resurser, inklusive virtuella datorer som inte är Azure-datorer, Kubernetes-kluster och containerbaserade databaser.
  • Azure Policy. En molnbaserad tjänst som hjälper till att framtvinga organisationsstandarder och utvärdera efterlevnad i stor skala genom att utvärdera Azure-resurser (inklusive Arc-aktiverade) till egenskaperna för dessa resurser till affärsregler. Dessa standarder omfattar även Azure Policy for Kubernetes, som tillämpar principer på de arbetsbelastningar som körs i klustret.
  • Azure Monitor. En molnbaserad tjänst som maximerar tillgängligheten och prestandan för dina program och tjänster genom att leverera en omfattande lösning för att samla in, analysera och agera på telemetri från dina molnmiljöer och lokala miljöer.
  • Microsoft Defender för molnet. Ett enhetligt säkerhetshanteringssystem för infrastruktur som stärker säkerhetsstatusen för dina datacenter och ger avancerat skydd mot hot i dina hybridarbetsbelastningar i molnet och lokalt.
  • Azure Automation. Levererar en molnbaserad automatiserings- och konfigurationstjänst som stöder konsekvent hantering i azure- och icke-Azure-miljöer.
  • Velero. Ett verktyg med öppen källkod som stöder säkerhetskopiering på begäran och schemalagd säkerhetskopiering och återställer alla objekt i Kubernetes-klustret.
  • Azure Blob Storage. Massivt skalbar och säker objektlagring för molnbaserade arbetsbelastningar, arkiv, datasjöar, databehandling med höga prestanda och maskininlärning.

Komponenter

Information om scenario

Potentiella användningsfall

  • Implementera containerbaserade arbetsbelastningar med hög tillgänglighet i en lokal Kubernetes-implementering av AKS.
  • Automatisera körning av containerbaserade program i stor skala.
  • Lägre total ägandekostnad (TCO) via Microsoft-certifierade lösningar, molnbaserad automatisering, centraliserad hantering och centraliserad övervakning.

Certifierad maskinvara

Använd Azure Stack HCI-certifierad maskinvara, som tillhandahåller UEFI-inställningar (Secure Boot, United Extensible Firmware Interface) och TPM-inställningar (Trusted Platform Module). Beräkningskraven beror på programmet och antalet arbetsnoder som körs i AKS i Azure Stack HCI-klustret. Använd flera fysiska noder för distribution av Azure Stack HCI eller minst ett Windows Server Datacenter-redundanskluster med två noder för att uppnå hög tillgänglighet. Det krävs att alla servrar har samma tillverkare och modell, med 64-bitars Intel Nehalem-klass, AMD EPYC-klass eller senare kompatibla processorer med SLAT (second-level address translation).

Strategier för klusterdistribution

AKS förenklar den lokala Kubernetes-distributionen genom att tillhandahålla guider eller PowerShell-cmdletar som du kan använda för att konfigurera Kubernetes och viktiga Azure Stack HCI-tillägg. Ett Azure Kubernetes Service-kluster har följande komponenter i Azure Stack HCI:

  • Hanteringskluster. Distribuera hanteringsklustret på en virtuell dator med hög tillgänglighet som körs antingen på Azure Stack HCI eller ett Windows Server 2019/2022 Datacenter-redundanskluster. Hanteringsklustret ansvarar för att distribuera och hantera flera arbetsbelastningskluster och innehåller följande komponenter:
    • API Server. Interagerar med hanteringsverktygen.
    • Lastbalanserare. Hanterar belastningsutjämningsregler för API-servern i hanteringsklustret.
  • Arbetsbelastningskluster. Implementera kontrollplanskomponenter med hög tillgänglighet och komponenter för arbetsnoder. Containerbaserade program körs på ett arbetsbelastningskluster. För att uppnå programisolering kan du distribuera upp till åtta arbetsbelastningskluster. Arbetsbelastningsklustret består av följande komponenter:
    • Kontrollplan. Körs på en Linux-distribution och innehåller API-serverkomponenter för interaktion med Kubernetes API och ett distribuerat nyckelvärdeslager osv. för lagring av alla konfigurationer och data i klustret.
    • Lastbalanserare. Körs på en virtuell Linux-dator och tillhandahåller belastningsutjämningstjänster för arbetsbelastningsklustret.
    • Arbetsnoder. Kör på ett Windows- eller Linux-operativsystem som är värd för containerbaserade program.
    • Kubernetes-resurser. Poddar representerar en enda instans av ditt program, som vanligtvis har en 1:1-mappning med en container, men vissa poddar kan innehålla flera containrar. Distributioner representerar en eller flera identiska poddar. Poddar och distributioner grupperas logiskt i ett namnområde som styr åtkomsten till hanteringen av resurserna.

Nätverkskrav

Kubernetes tillhandahåller ett abstraktionslager till virtuella nätverk genom att ansluta Kubernetes-noderna till det virtuella nätverket. Det ger också inkommande och utgående anslutning för poddar via kube-proxy-komponenten . Azure Stack HCI-plattformen förenklar distributionen ytterligare genom att konfigurera den virtuella datorn haProxy-lastbalanseraren .

Kommentar

Information om hur du utformar och implementerar nätverksbegrepp för att distribuera AKS-noder i Azure Stack HCI- och Windows Server-kluster finns i den andra artikeln i den här serien, Nätverksarkitektur.

Arkitekturen använder ett virtuellt nätverk som allokerar IP-adresser med något av följande nätverksalternativ:

  • Statiska IP-nätverk. Använder en statisk, definierad adresspool för alla objekt i distributionen. Det ger extra fördelar och garanterar att arbetsbelastningen och programmet alltid kan nås. Detta är den rekommenderade metoden.
  • DHCP-nätverk. Allokerar dynamiska IP-adresser till Kubernetes-noderna, underliggande virtuella datorer och lastbalanserare med hjälp av en DHCP-server (Dynamic Host Configuration Protocol).

En virtuell IP-pool är ett intervall med reserverade IP-adresser som används för att allokera IP-adresser till Kubernetes-klustrets API-server och för Kubernetes-tjänster.

Använd Project Calico för Kubernetes för att hämta andra nätverksfunktioner, till exempel nätverksprincip och flödeskontroll.

Lagringskrav

För varje server i klustret använder du samma typer av enheter som har samma storlek och modell. Azure Stack HCI fungerar med direktanslutna SATA (Serial Advanced Technology Attachment), SAS (Serial Attached SCSI), Non-Volatile Memory Express (NVMe) eller beständiga minnesenheter som är fysiskt anslutna till en server vardera. För klustervolymer använder HCI programvarudefinierad lagringsteknik (Lagringsdirigering) för att kombinera de fysiska enheterna i lagringspoolen för feltolerans, skalbarhet och prestanda. Program som körs i Kubernetes på Azure Stack HCI förväntar sig ofta att följande lagringsalternativ är tillgängliga för dem:

  • Volymer. Representerar ett sätt att lagra, hämta och spara data mellan poddar och genom programmets livscykel.
  • Beständiga volymer. En lagringsresurs som skapas och hanteras av Kubernetes API och som kan finnas längre än livslängden för en enskild podd.

Överväg att definiera lagringsklasser för olika nivåer och platser för att optimera kostnader och prestanda. Lagringsklasserna stöder dynamisk etablering av beständiga volymer och definierar reclaimPolicy för att ange åtgärden för den underliggande lagringsresursen för att hantera beständiga volymer när podden tas bort.

Hantera AKS på Azure Stack HCI

Du kan hantera AKS på Azure Stack HCI med hjälp av följande hanteringsalternativ:

  • Administrationscenter för Windows. Erbjuder ett intuitivt användargränssnitt för Kubernetes-operatören för att hantera livscykeln för Azure Kubernetes Service-kluster i Azure Stack HCI.
  • PowerShell. Gör det enkelt att ladda ned, konfigurera och distribuera AKS på Azure Stack HCI. PowerShell-modulen stöder också distribution, konfigurering av andra arbetsbelastningskluster och omkonfiguration av befintliga.

Active Directory-krav

Integrera AKS i Azure Stack HCI- eller Windows Server Datacenter-redundanskluster med en Active Directory-domän Services-miljö (AD DS) för optimal hantering. När det är möjligt kan du använda separata organisationsenheter för servrar och tjänster i AKS på Azure Stack HCI för att ge mer detaljerad kontrollåtkomst och behörigheter. Active Directory-integrering med Azure Kubernetes Service på Azure Stack HCI gör att en användare på en Windows-domänansluten dator kan ansluta till API-servern (med kubectl) med sina autentiseringsuppgifter för enkel inloggning (SSO).

Rekommendationer

Följande rekommendationer gäller för de flesta scenarier. Följ rekommendationerna om du inte har ett specifikt krav som åsidosätter dem.

Integrera AKS-hybriddistributioner med Azure Arc

Du minimerar TCO genom att integrera AKS-hybriddistributioner med Azure Arc. Överväg att använda följande Azure-tjänster:

  • Azure Monitor Container Insights. Övervakar prestanda för containerarbetsbelastningar som körs på både Linux- och Windows-kluster. Den samlar in minnes- och processormått från kontrollanter, noder och containrar via mått-API:et. Med containerinsikter kan du identifiera minnes- och processoranvändning, identifiera övergripande poddars prestanda, förstå klustrets beteende och konfigurera aviseringar för proaktiv övervakning.
  • Automatiseringsfunktioner. AKS-hybrid tillhandahåller ett brett utbud av automatiseringsfunktioner, med OS-uppdateringar i kombination med fullständiga uppdateringar, inklusive inbyggd programvara och drivrutiner som tillhandahålls av Azure Stack HCI-leverantörer och partner. Du kan köra Windows PowerShell lokalt från någon av Azure Stack HCI-servrarna eller via fjärranslutning från en hanteringsdator. Integrering med Azure Automation och Azure Arc underlättar en mängd olika automatiseringsscenarier för virtualiserade och containerbaserade arbetsbelastningar.
  • Velero och Azure Blob Storage. Velero är ett verktyg med öppen källkod som stöder säkerhetskopiering på begäran, schemalagd säkerhetskopiering och återställning av alla objekt i Kubernetes-klustret för alla resurser som definierats och lagrats i en etcd-databas som en Anpassad Kubernetes-resursdefinition (CRD). Den tillhandahåller säkerhetskopiering av Kubernetes-resurser och volymer för ett helt kluster eller en del av ett kluster med hjälp av namnrymder eller etikettväljare. Lagra säkerhetskopieringsuppsättningen som skapats med Velero-verktyget på ett Azure-lagringskonto i en blobcontainer.
  • Azure Arc-aktiverad Kubernetes Service. Tillhandahåller Azure Resource Manager-representation av AKS i Azure Stack HCI-kluster. Distribuera Azure Arc-aktiverade agenter i ett Kubernetes-namnområde för att samla in loggar och mått, samla in klustermetadata, klusterversion och nodantal och se till att agenter uppvisar optimala prestanda.
  • Azure Policy. Distribuera och framtvinga inbyggda säkerhetsprinciper i AKS-kluster med hjälp av Azure Policy. Du kan också använda anpassad principdefinition för att framtvinga GitOps, vilket är praxis att deklarera önskat tillstånd för Kubernetes-konfiguration (distributioner, namnområden och så vidare) på en Git-lagringsplats.
  • Azure Policy för Kubernetes. Hantera interna klusterprinciper som implementeras av Gatekeeper, distribuerar principdefinition till klustret som villkorsmall och rapporterar om efterlevnadstillståndet för dina Kubernetes-kluster från en plats.
  • Azure RBAC. Använd för rolltilldelning och för att hantera åtkomst till Azure Arc-aktiverade Kubernetes.

Att tänka på

Dessa överväganden implementerar grundpelarna i Azure Well-Architected Framework, som är en uppsättning vägledande grundsatser som kan användas för att förbättra kvaliteten på en arbetsbelastning. Mer information finns i Microsoft Azure Well-Architected Framework.

Tillförlitlighet

  • Implementera en virtuell dator med hög tillgänglighet för hanteringsklustret och flera värdar i Kubernetes-klustret för att uppfylla den lägsta tillgänglighetsnivån för arbetsbelastningar.
  • Säkerhetskopiera och återställa arbetsbelastningskluster med Velero och Azure Blob Storage. Definiera tillgänglighets- och återställningsmål för att uppfylla affärskraven.
  • AKS-hybriddistributioner använder redundanskluster och direktmigrering för hög tillgänglighet och feltolerans. Direktmigrering är en Hyper-V-funktion som gör att du transparent kan flytta virtuella datorer som körs från en Hyper-V-värd till en annan utan upplevd stilleståndstid.
  • Konfigurera distributioner för att använda Kubernetes-funktioner, till exempel distributioner, mappning av mappning och repliker, för att säkerställa att poddarna är motståndskraftiga i avbrottsscenarier.
  • Du bör se till att tjänster som refereras i avsnittet Arkitektur stöds i den region som Azure Arc distribueras till.
  • Överväg att begränsa användningen av offentliga containeravbildningar och endast hämta från containerregister som du har kontroll över serviceavtalet för, till exempel ACR.

Säkerhet

Fokusera på hela stacken genom att skydda värden och containrarna.

Säkerhet för infrastruktur

  • Använd Azure Stack HCI-certifierad maskinvara som tillhandahåller inställningar för säker start, UEFI och TPM direkt. Dessa tekniker i kombination med virtualiseringsbaserad säkerhet (VBS) hjälper till att skydda säkerhetskänsliga arbetsbelastningar. Gå till Azure Stack HCI-lösningar för validerade lösningar.
  • Använd Säker start för att säkerställa att servern endast startar programvara som är betrodd av en originalutrustningstillverkare.
  • Använd UEFI för att styra startprocessen för servern.
  • Använd TPM för att lagra kryptografiska nycklar och för att isolera alla maskinvarubaserade, säkerhetsrelaterade funktioner.
  • Med BitLocker-diskkryptering kan du kryptera Lagringsdirigering volymer i vila.
  • Konfigurera Calico-nätverksprinciper för att definiera regler för nätverksisolering mellan containrar.
  • För ökade säkerhetskrav bör du överväga att distribuera ett arbetsbelastningskluster på en dedikerad Windows-server.
  • Använd Microsoft Defender för molnet, som är tillgängligt via Administrationscenter för Windows, för att centralt hantera säkerhetsinställningar för servrar och kluster. Det ger skydd mot hot för dina Arc-aktiverade Kubernetes-kluster. Tillägget Microsoft Defender för molnet samlar in data från noder i klustret och skickar dem till Azure Defender för Kubernetes-serverdelen i molnet för ytterligare analys.
  • Säker kommunikation med certifikat.
  • Rotera krypteringsnycklar i Kubernetes hemliga arkiv (etcd) med hjälp av plugin-programmet Nyckelhanteringsserver (KMS).

Programsäkerhet

  • Använd Azure Key Vault Secrets-providertillägget på din AKS på Azure Stack HCI för att ytterligare skydda dina hemligheter som används av olika program genom att lagra dem i Azure Key Vault-tjänsten.
  • Använd Open Service Mesh AKS-tillägget för att skydda tjänst-till-tjänst-kommunikation genom att aktivera ömsesidig TLS (mTLS). Du kan också använda det här tillägget för att definiera och köra detaljerade åtkomstkontrollprinciper för tjänster.
  • Använd Azure Policy för Kubernetes för att framtvinga klustersäkerhetsprinciper, till exempel inga privilegierade poddar.
  • Använd ett Azure Container Registry som innehåller sårbarhetsgenomsökning i containern.
  • Använd grupphanterade säkerhetskonton för Windows-arbetsbelastningar med en icke-domänansluten värd. (Gäller endast för Windows Server.)

Containersäkerhet

  • Härda värd- och daemonmiljön genom att ta bort onödiga tjänster.
  • Håll hemligheter borta från avbildningarna och montera dem endast via containerorkestreringsmotorn.
  • Skydda avbildningarna i ett Azure Container Registry som stöder sårbarhetsgenomsökning och RBAC.
  • Använd isolering av containrar och undvik att köra containrar i privilegierat läge för att förhindra att angripare eskalerar behörigheterna om containern komprometteras.

Kostnadsoptimering

Driftsäkerhet

  • Guiden Skapa kluster. Få en förenklad etablerings- och hanteringsupplevelse med Administrationscenter för Windows. Guiden Skapa kluster i Administrationscenter för Windows innehåller ett guidedrivet gränssnitt som vägleder dig genom att skapa ett Azure Stack HCI-kluster. Guiden Skapa kluster är en kompromiss för enkelhetens skull jämfört med att skapa distributionsskript som du kan källkontroll för granskning och repeterbarhet för flera distributioner. På samma sätt förenklar Windows Admin Center processen för att hantera virtuella Azure Stack HCI-datorer.
  • Azure Arc. Integrera med Azure Arc eller en rad Azure-tjänster som tillhandahåller ytterligare hanterings-, underhålls- och återhämtningsfunktioner (till exempel Azure Monitor och Log Analytics).
  • GitOps. I stället för att konfigurera Kubernetes-komponenter manuellt använder du automatiserade verktyg för att tillämpa konfigurationer på ett Kubernetes-kluster eftersom dessa konfigurationer checkas in på en källlagringsplats. Den här processen kallas ofta GitOps och populära GitOps-lösningar för Kubernetes är Flux och Argo CD. I den här arkitekturen rekommenderar vi att du använder GitOps-tillägget som tillhandahålls av Microsoft, som baseras på Flux.
  • Azure Arc-aktiverad Open Service Mesh (OSM). Ett enkelt, utökningsbart, molnbaserat tjänstnät som gör det möjligt för användare att hantera, skydda och få färdiga observerbarhetsfunktioner för mycket dynamiska mikrotjänstmiljöer.

Prestandaeffektivitet

  • Använd Azure Stack HCI-certifierad maskinvara för bättre programupptid och prestanda, förenklad hantering och drift samt lägre total ägandekostnad.
  • Förstå AKS på Azure Stack HCI-gränser. Microsoft stöder AKS på Azure Stack-distributioner med högst åtta fysiska servrar per kluster, åtta Kubernetes-kluster och 200 virtuella datorer.
  • Skalning av AKS på Azure Stack HCI beror på antalet arbetsnoder och målkluster. För att kunna dimensionera maskinvaran för arbetsnoderna korrekt måste du förutse antalet poddar, containrar och arbetsnoder i ett målkluster. Du bör se till att minst 15 % av Azure Stack HCI-kapaciteten är reserverad för både planerat och oplanerat fel. För prestandaeffektivitet använder du beräkningsresurser effektivt för att uppfylla systemkraven och för att upprätthålla den effektiviteten allt eftersom efterfrågan förändras och tekniken utvecklas. Den allmänna regeln är att om en nod kopplas från under underhåll eller vid oplanerade fel kan de återstående noderna ha tillräckligt med kapacitet för att hantera den ökade belastningen.
  • Överväg att öka storleken på den virtuella lastbalanserarens virtuella dator om du kör många Kubernetes-tjänster i varje målkluster.
  • AKS på Azure Stack HCI distribuerar arbetsnoderna för varje nodpool i ett målkluster med hjälp av Azure Stack HCI-placeringslogik.
  • Planera IP-adressreservationer för att konfigurera AKS-värdar, arbetsbelastningskluster, kluster-API-servrar, Kubernetes Services och programtjänster. Microsoft rekommenderar att du reserverar minst 256 IP-adresser för AKS-distribution på Azure Stack HCI.
  • Överväg att implementera en ingresskontrollant som fungerar på Layer 7 och använder mer intelligenta regler för att distribuera programtrafik.
  • Implementera nätverksprestandaoptimering för allokering av trafikbandbredd.
  • Använd GPU-acceleration (graphics processing unit) för omfattande arbetsbelastningar.

Deltagare

Den här artikeln underhålls av Microsoft. Det har ursprungligen skrivits av följande medarbetare.

Huvudförfattare:

Andra deltagare:

Nästa steg