Dela via


Azure Well-Architected Framework-granskning – Azure Kubernetes Service (AKS)

Den här artikeln innehåller metodtips för arkitektur för Azure Kubernetes Service (AKS). Vägledningen baseras på de fem grundpelarna i arkitekturens utmärkthet:

  • Tillförlitlighet
  • Säkerhet
  • Kostnadsoptimering
  • Driftsäkerhet
  • Prestandaeffektivitet

Vi förutsätter att du förstår systemdesignprinciper, har arbetskunskaper om Azure Kubernetes Service och är väl bevandrad med dess funktioner. Mer information finns i Azure Kubernetes Service.

Förutsättningar

Genom att förstå grundpelarna för välarkitekterat ramverk kan du skapa en högkvalitativ, stabil och effektiv molnarkitektur. Vi rekommenderar att du granskar din arbetsbelastning med hjälp av Utvärdering av Azure Well-Architected Framework .

För kontext bör du överväga att granska en referensarkitektur som återspeglar dessa överväganden i dess design. Vi rekommenderar att du börjar med baslinjearkitekturen för ett AKS-kluster (Azure Kubernetes Service) och mikrotjänstarkitektur i Azure Kubernetes Service. Läs även acceleratorn för AKS-landningszonen, som tillhandahåller en arkitekturmetod och referensimplementering för att förbereda prenumerationer i landningszonen för ett skalbart AKS-kluster (Azure Kubernetes Service).

Tillförlitlighet

I molnet bekräftar vi att fel inträffar. Målet är att minimera effekten av en enda komponent som havererar snarare än att förhindra fel helt och hållet. Använd följande information för att minimera misslyckade instanser.

När du diskuterar tillförlitlighet med Azure Kubernetes Service är det viktigt att skilja mellan klustertillförlitlighet och arbetsbelastningstillförlitlighet. Klustertillförlitlighet är ett delat ansvar mellan klusteradministratören och deras resursprovider, medan arbetsbelastningstillförlitlighet är en utvecklares domän. Azure Kubernetes Service har överväganden och rekommendationer för båda dessa roller.

I designchecklistan och listan över rekommendationer nedan görs pratbubblan för att ange om varje val gäller för klusterarkitektur, arbetsbelastningsarkitektur eller både och.

Checklista för design

  • Klusterarkitektur: För kritiska arbetsbelastningar använder du tillgänglighetszoner för dina AKS-kluster.
  • Klusterarkitektur: Planera IP-adressutrymmet för att säkerställa att klustret kan skalas på ett tillförlitligt sätt, inklusive hantering av redundanstrafik i topologier med flera kluster.
  • Klusterarkitektur: Granska metodtipsen för övervakning av Kubernetes med Azure Monitor för att fastställa den bästa övervakningsstrategin för dina arbetsbelastningar.
  • Arbetsbelastningsarkitektur: Se till att arbetsbelastningar skapas för att stödja horisontell skalning och rapportera programberedskap och hälsa.
  • Kluster- och arbetsbelastningsarkitekturer: Kontrollera att arbetsbelastningen körs på användarnodpooler och välj rätt storlek på SKU:n. Inkludera minst två noder för användarnodpooler och tre noder för systemnodpoolen.
  • Klusterarkitektur: Använd AKS Uptime SLA för att uppfylla tillgänglighetsmål för produktionsarbetsbelastningar.

AKS-konfigurationsrekommendationer

Utforska följande tabell med rekommendationer för att optimera AKS-konfigurationen för tillförlitlighet.

Rekommendation Förmån
Kluster- och arbetsbelastningsarkitekturer: Kontrollera poddschemaläggning med hjälp av nodväljare och tillhörighet. Tillåter Kubernetes-schemaläggaren att logiskt isolera arbetsbelastningar efter maskinvara i noden. Till skillnad från toleranser kan poddar utan matchande nodväljare schemaläggas på etiketterade noder, vilket gör att oanvända resurser på noderna kan användas, men prioriterar poddar som definierar den matchande nodväljaren. Använd nodtillhörighet för mer flexibilitet, vilket gör att du kan definiera vad som händer om podden inte kan matchas med en nod.
Klusterarkitektur: Se till att du har rätt val av nätverks-plugin-program baserat på nätverkskrav och klusterstorlek. Azure CNI krävs för specifika scenarier, till exempel Windows-baserade nodpooler, specifika nätverkskrav och Kubernetes-nätverksprinciper. Mer information finns i Kubenet jämfört med Azure CNI .
Kluster- och arbetsbelastningsarkitekturer: Använd AKS Uptime SLA för kluster i produktionsklass. AKS-serviceavtalet för drifttid garanterar:
- 99.95%tillgänglighet för Kubernetes API-serverslutpunkten för AKS-kluster som använder Azure Tillgänglighetszoner, eller
- 99.9%tillgänglighet för AKS-kluster som inte använder Azure Tillgänglighetszoner.
Kluster- och arbetsbelastningsarkitekturer: Granska metodtipsen för övervakning av Kubernetes med Azure Monitor för att fastställa den bästa övervakningsstrategin för dina arbetsbelastningar. Ej tillämpligt
Klusterarkitektur: Använd tillgänglighetszoner för att maximera motståndskraften i en Azure-region genom att distribuera AKS-agentnoder mellan fysiskt separata datacenter. Genom att sprida nodpooler över flera zoner fortsätter noderna i en nodpool att köras även om en annan zon har gått ned. Om det finns krav på samlokalisering kan antingen en vanlig VMSS-baserad AKS-distribution till en enda zon eller närhetsplaceringsgrupper användas för att minimera internodfördröjningen.
Klusterarkitektur: Anta en strategi för flera regioner genom att distribuera AKS-kluster som distribuerats i olika Azure-regioner för att maximera tillgängligheten och tillhandahålla affärskontinuitet. Internetuppkopplade arbetsbelastningar bör använda Azure Front Door eller Azure Traffic Manager för att dirigera trafik globalt över AKS-kluster.
Kluster- och arbetsbelastningsarkitekturer: Definiera poddresursbegäranden och begränsningar i programdistributionsmanifest och tillämpa med Azure Policy. Begränsningar för processor- och minnesresurser för containrar krävs för att förhindra resursöverbelastning i Kubernetes-klustret.
Kluster- och arbetsbelastningsarkitekturer: Håll systemnodpoolen isolerad från programarbetsbelastningar. Systemnodpooler kräver en VM-SKU på minst 2 vCPU:er och 4 GB minne, men 4 vCPU eller mer rekommenderas. Referenssystem - och användarnodpooler för detaljerade krav.
Kluster- och arbetsbelastningsarkitekturer: Avgränsa program till dedikerade nodpooler baserat på specifika krav. Program kan dela samma konfiguration och behöver GPU-aktiverade virtuella datorer, processor- eller minnesoptimerade virtuella datorer eller möjlighet att skala till noll. Undvik ett stort antal nodpooler för att minska extra hanteringskostnader.
Klusterarkitektur: Använd en NAT-gateway för kluster som kör arbetsbelastningar som gör många samtidiga utgående anslutningar. För att undvika tillförlitlighetsproblem med Azure Load Balancer-begränsningar med hög samtidig utgående trafik, använder vi en NAT Gateway i stället för att stödja tillförlitlig utgående trafik i stor skala.

Fler förslag finns i Principer för tillförlitlighetspelare.

Azure Policy

Azure Kubernetes Service erbjuder en mängd olika inbyggda Azure-principer som gäller både för Azure-resursen som vanliga Azure-principer och, med hjälp av Azure Policy-tillägget för Kubernetes, även i klustret. Det finns ett stort antal principer och viktiga principer som är relaterade till den här pelaren sammanfattas här. En mer detaljerad vy finns i inbyggda principdefinitioner för Kubernetes.

Kluster- och arbetsbelastningsarkitektur

  • Kluster har beredskaps- eller liveness-hälsoavsökningar konfigurerade för poddspecifikationen.

Utöver de inbyggda Azure Policy-definitionerna kan anpassade principer skapas för både AKS-resursen och för Azure Policy-tillägget för Kubernetes. På så sätt kan du lägga till ytterligare tillförlitlighetsbegränsningar som du vill framtvinga i kluster- och arbetsbelastningsarkitekturen.

Säkerhet

Säkerhet är en av de viktigaste aspekterna, oavsett arkitektur. Om du vill utforska hur AKS kan öka säkerheten för din programarbetsbelastning rekommenderar vi att du granskar principerna för säkerhetsdesign. Om ditt Azure Kubernetes Service-kluster behöver utformas för att köra en känslig arbetsbelastning som uppfyller regelkraven i Payment Card Industry Data Security Standard (PCI-DSS 3.2.1) läser du AKS-reglerade kluster för PCI-DSS 3.2.1.

Mer information om stöd och krav för DoD Impact Level 5 (IL5) med AKS finns i Azure Government IL5-isoleringskrav.

När du diskuterar säkerhet med Azure Kubernetes Service är det viktigt att skilja mellan klustersäkerhet och arbetsbelastningssäkerhet. Klustersäkerhet är ett delat ansvar mellan klusteradministratören och deras resursprovider, medan arbetsbelastningssäkerhet är en utvecklares domän. Azure Kubernetes Service har överväganden och rekommendationer för båda dessa roller.

I designchecklistan och listan med rekommendationer nedan görs anrop för att ange om varje val är tillämpligt för klusterarkitektur, arbetsbelastningsarkitektur eller båda.

Checklista för design

  • Klusterarkitektur: Använd hanterade identiteter för att undvika att hantera och rotera tjänstprinciper.
  • Klusterarkitektur: Använd Rollbaserad åtkomstkontroll i Kubernetes (RBAC) med Microsoft Entra-ID för åtkomst med minsta möjliga behörighet och minimera beviljandet av administratörsbehörighet för att skydda konfiguration och åtkomst till hemligheter.
  • Klusterarkitektur: Använd Microsoft Defender för containrar med Azure Sentinel för att identifiera och snabbt svara på hot i klustret och arbetsbelastningar som körs på dem.
  • Klusterarkitektur: Distribuera ett privat AKS-kluster för att säkerställa att klusterhanteringstrafiken till API-servern finns kvar i ditt privata nätverk. Eller använd listan över tillåtna API-servrar för icke-privata kluster.
  • Arbetsbelastningsarkitektur: Använd en brandvägg för webbprogram för att skydda HTTP(S)-trafik.
  • Arbetsbelastningsarkitektur: Se till att CI/CID-pipelinen är härdad med containermedveten genomsökning.

Rekommendationer

Utforska följande tabell med rekommendationer för att optimera DIN AKS-konfiguration för säkerhet.

Rekommendation Förmån
Klusterarkitektur: Använd Microsoft Entra-integrering. Med Microsoft Entra ID centraliseras identitetshanteringskomponenten. Ändringar i användarkonto- eller gruppstatus uppdateras automatiskt i åtkomsten till AKS-klustret. Utvecklare och programägare i ditt Kubernetes-kluster behöver åtkomst till olika resurser.
Klusterarkitektur: Autentisera med Microsoft Entra-ID till Azure Container Registry. AKS och Microsoft Entra ID möjliggör autentisering med Azure Container Registry utan att använda imagePullSecrets hemligheter. Mer information finns i Autentisera med Azure Container Registry från Azure Kubernetes Service .
Klusterarkitektur: Skydda nätverkstrafik till DIN API-server med privata AKS-kluster. Som standard färdas nätverkstrafik mellan dina nodpooler och API-servern i Microsofts stamnätverk. Genom att använda ett privat kluster kan du se till att nätverkstrafiken till API-servern endast finns kvar i det privata nätverket.
Klusterarkitektur: Använd API-serverauktoriserade IP-intervall för icke-privata AKS-kluster. När du använder offentliga kluster kan du fortfarande begränsa den trafik som kan nå kluster-API-servern med hjälp av den auktoriserade IP-intervallfunktionen. Inkludera källor som offentliga IP-adresser för dina distributionsversionsagenter, drifthantering och nodpoolernas utgående punkt (till exempel Azure Firewall).
Klusterarkitektur: Skydda API-servern med Microsoft Entra RBAC. Att skydda åtkomsten till Kubernetes API Server är en av de viktigaste sakerna du kan göra för att skydda klustret. Integrera Rollbaserad åtkomstkontroll för Kubernetes (RBAC) med Microsoft Entra-ID för att styra åtkomsten till API-servern. Inaktivera lokala konton för att framtvinga all klusteråtkomst med hjälp av Microsoft Entra-ID-baserade identiteter.
Klusterarkitektur: Använd Azure-nätverksprinciper eller Calico. Skydda och kontrollera nätverkstrafik mellan poddar i ett kluster.
Klusterarkitektur: Skydda kluster och poddar med Azure Policy. Azure Policy kan bidra till att tillämpa tillämpning i stor skala och skydd på dina kluster på ett centraliserat och konsekvent sätt. Den kan också styra vilka funktioner poddar beviljas och om något körs mot företagets princip.
Klusterarkitektur: Skydda containeråtkomst till resurser. Begränsa åtkomsten till åtgärder som containrar kan utföra. Ange minst antal behörigheter och undvik att använda rot- eller privilegierad eskalering.
Arbetsbelastningsarkitektur: Använd en brandvägg för webbprogram för att skydda HTTP(S)-trafik. Om du vill söka igenom inkommande trafik efter potentiella attacker använder du en brandvägg för webbprogram, till exempel Azure Web Application Firewall (WAF) på Azure Application Gateway eller Azure Front Door.
Klusterarkitektur: Kontrollera utgående trafik för kluster. Kontrollera att klustrets utgående trafik passerar genom en nätverkssäkerhetsplats, till exempel Azure Firewall eller en HTTP-proxy.
Klusterarkitektur: Använd Microsoft Entra-arbetsbelastnings-ID för öppen källkod och CSI-drivrutin för Secrets Store med Azure Key Vault. Skydda och rotera hemligheter, certifikat och anslutningssträng i Azure Key Vault med stark kryptering. Tillhandahåller en åtkomstgranskningslogg och håller kärnhemligheter borta från distributionspipelinen.
Klusterarkitektur: Använd Microsoft Defender för containrar. Övervaka och upprätthålla säkerheten för dina kluster, containrar och deras program.

Fler förslag finns i Principer för säkerhetspelare.

Azure Advisor hjälper till att säkerställa och förbättra Azure Kubernetes-tjänsten. Den ger rekommendationer om en delmängd av de objekt som anges i principavsnittet nedan, till exempel kluster utan RBAC konfigurerade, saknade Microsoft Defender-konfiguration, obegränsad nätverksåtkomst till API-servern. På samma sätt ger den arbetsbelastningsrekommendationer för några av poddsäkerhetsinitiativobjekten. Granska rekommendationerna.

Principdefinitioner

Azure Policy erbjuder olika inbyggda principdefinitioner som gäller för både Azure-resursen och AKS som standardprincipdefinitioner och användning av Azure Policy-tillägget för Kubernetes, även i klustret. Många av Azure-resursprinciperna finns i både Granskning/Neka, men även i en Deploy If Not Exists-variant .

Det finns ett stort antal principer och viktiga principer som är relaterade till den här pelaren sammanfattas här. En mer detaljerad vy finns i inbyggda principdefinitioner för Kubernetes.

Klusterarkitektur

  • Microsoft Defender för molnet-baserade principer
  • Autentiseringsläge och konfigurationsprinciper (Microsoft Entra-ID, RBAC, inaktivera lokal autentisering)
  • API Server-nätverksåtkomstprinciper, inklusive privata kluster

Kluster- och arbetsbelastningsarkitektur

  • Kubernetes-klusterpoddsäkerhetsinitiativ för Linux-baserade arbetsbelastningar
  • Inkludera kapacitetsprinciper för poddar och containrar som AppArmor, sysctl, säkerhetstak, SELinux, seccomp, privilegierade containrar, api-autentiseringsuppgifter för automontering av kluster
  • Principer för montering, volymdrivrutiner och filsystem
  • Podd-/containernätverksprinciper, till exempel värdnätverk, port, tillåtna externa IP-adresser, HTTP:er och interna lastbalanserare

Azure Kubernetes Service-distributioner använder ofta även Azure Container Registry för Helm-diagram och containeravbildningar. Azure Container Registry har också stöd för en mängd olika Azure-principer som omfattar nätverksbegränsningar, åtkomstkontroll och Microsoft Defender för molnet, som kompletterar en säker AKS-arkitektur.

Förutom de inbyggda principerna kan anpassade principer skapas för både AKS-resursen och för Azure Policy-tillägget för Kubernetes. På så sätt kan du lägga till ytterligare säkerhetsbegränsningar som du vill framtvinga i kluster- och arbetsbelastningsarkitekturen.

Fler förslag finns i AKS-säkerhetsbegrepp och utvärdera våra säkerhetshärdningsrekommendationer baserat på CIS Kubernetes-riktmärket.

Kostnadsoptimering

Kostnadsoptimering handlar om att förstå dina olika konfigurationsalternativ och rekommenderade metodtips för att minska onödiga utgifter och förbättra drifteffektiviteten. Innan du följer riktlinjerna i den här artikeln rekommenderar vi att du granskar följande resurser:

När du diskuterar kostnadsoptimering med Azure Kubernetes Service är det viktigt att skilja mellan kostnaden för klusterresurser och kostnaden för arbetsbelastningsresurser. Klusterresurser är ett delat ansvar mellan klusteradministratören och deras resursprovider, medan arbetsbelastningsresurser är en utvecklares domän. Azure Kubernetes Service har överväganden och rekommendationer för båda dessa roller.

I designchecklistan och listan med rekommendationer görs anrop för att ange om varje val gäller för klusterarkitektur, arbetsbelastningsarkitektur eller både och.

För optimering av klusterkostnader går du till priskalkylatorn för Azure och väljer Azure Kubernetes Service från de tillgängliga produkterna. Du kan testa olika konfigurations- och betalningsplaner i kalkylatorn.

Checklista för design

  • Klusterarkitektur: Använd lämplig VM SKU per nodpool och reserverade instanser där långsiktig kapacitet förväntas.
  • Kluster- och arbetsbelastningsarkitekturer: Använd lämplig nivå och storlek för hanterade diskar.
  • Klusterarkitektur: Granska prestandamått, från och med CPU, minne, lagring och nätverk, för att identifiera kostnadsoptimeringsmöjligheter per kluster, noder och namnrymd.
  • Kluster- och arbetsbelastningsarkitektur: Använd autoskalning för att skala in när arbetsbelastningar är mindre aktiva.

Rekommendationer

Utforska följande tabell med rekommendationer för att optimera AKS-konfigurationen mot kostnad.

Rekommendation Förmån
Kluster- och arbetsbelastningsarkitekturer: Justera SKU-val och hanterad diskstorlek med arbetsbelastningskrav. Om du matchar ditt val med dina arbetsbelastningskrav ser du till att du inte betalar för onödiga resurser.
Klusterarkitektur: Välj rätt typ av virtuell datorinstans. Det är viktigt att välja rätt typ av virtuell datorinstans eftersom det direkt påverkar kostnaden för att köra program på AKS. Att välja en högpresterande instans utan korrekt användning kan leda till slösaktiga utgifter, medan valet av en mindre kraftfull instans kan leda till prestandaproblem och ökad stilleståndstid. För att fastställa rätt typ av virtuell datorinstans bör du överväga arbetsbelastningsegenskaper, resurskrav och tillgänglighetsbehov.
Klusterarkitektur: Välj virtuella datorer baserat på Arm-arkitekturen. AKS har stöd för att skapa ARM64 Ubuntu-agentnoder samt en blandning av Intel- och ARM-arkitekturnoder i ett kluster som kan ge bättre prestanda till en lägre kostnad.
Klusterarkitektur: Välj Virtuella Azure-datorer för oanvänd kapacitet. Med virtuella datorer med oanvänd kapacitet kan du dra nytta av outnyttolad Azure-kapacitet med betydande rabatter (upp till 90 % jämfört med betala per användning-priser). Om Azure behöver kapacitet tillbaka avlägsnar Azure-infrastrukturen de oanvända noderna.
Klusterarkitektur: Välj lämplig region. På grund av många faktorer varierar kostnaden för resurser per region i Azure. Utvärdera kraven på kostnad, svarstid och efterlevnad för att säkerställa att du kör din arbetsbelastning kostnadseffektivt och att det inte påverkar slutanvändarna eller skapar extra nätverksavgifter.
Arbetsbelastningsarkitektur: Underhålla små och optimerade avbildningar. Genom att effektivisera dina bilder kan du minska kostnaderna eftersom nya noder behöver ladda ned dessa bilder. Skapa avbildningar på ett sätt som gör att containern kan starta så snart som möjligt för att undvika fel eller tidsgränser för användarbegäran när programmet startas, vilket kan leda till överetablering.
Klusterarkitektur: Aktivera autoskalning av kluster för att automatiskt minska antalet agentnoder som svar på överskjutande resurskapacitet. Genom att automatiskt skala ned antalet noder i AKS-klustret kan du köra ett effektivt kluster när efterfrågan är låg och skala upp när efterfrågan returneras.
Klusterarkitektur: Aktivera Automatisk avetablering av nod för att automatisera SKU-valet för virtuella datorer. Node Autoprovision förenklar SKU-urvalsprocessen och bestämmer, baserat på krav för väntande poddar, den optimala VM-konfigurationen för att köra arbetsbelastningar på det mest effektiva och kostnadseffektiva sättet.
Arbetsbelastningsarkitektur: Använd den vågräta autoskalningsenheten för poddar. Justera antalet poddar i en distribution beroende på CPU-användning eller andra valda mått, som stöder åtgärder för klusterskalning.
Arbetsbelastningsarkitektur: Använd vertikal podd autoskalning (förhandsversion). Rightsize dina poddar och dynamiskt ange begäranden och gränser baserat på historisk användning.
Arbetsbelastningsarkitektur: Använd Kubernetes Event Driven Autoscaling (KEDA). Skala baserat på antalet händelser som bearbetas. Välj från en omfattande katalog med över 50 KEDA-skalare.
Kluster- och arbetsbelastningsarkitekturer: Anta ett molnekonomiskt disciplin och kulturell praxis för att öka ägandet av molnanvändning. Grunden för att aktivera kostnadsoptimering är spridningen av ett kostnadsbesparande kluster. En metod för finansiella åtgärder (FinOps) används ofta för att hjälpa organisationer att minska molnkostnaderna. Det är en praxis som omfattar samarbete mellan ekonomi-, drifts- och teknikteam för att öka anpassningen till kostnadsbesparande mål och öka transparensen i molnkostnaderna.
Klusterarkitektur: Registrera dig för Azure-reservationer eller Azure Savings Plan. Om du har planerat kapaciteten korrekt är din arbetsbelastning förutsägbar och finns under en längre tid, registrera dig för en Azure-reservation eller en sparplan för att ytterligare minska dina resurskostnader.
Klusterarkitektur: Granska metodtipsen för övervakning av Kubernetes med Azure Monitor för att fastställa den bästa övervakningsstrategin för dina arbetsbelastningar. Ej tillämpligt
Klusterarkitektur: Konfigurera AKS Cost Analysis-tillägget. Med klustertillägget för kostnadsanalys kan du få detaljerad insikt i kostnader som är associerade med olika Kubernetes-resurser i dina kluster eller namnområden.

Fler förslag finns i Principer för kostnadsoptimeringspelaren och Optimera kostnader i Azure Kubernetes Service.

Principdefinitioner

Det finns inga inbyggda principer som är relaterade till kostnadsoptimering, men anpassade principer kan skapas för både AKS-resursen och för Azure Policy-tillägget för Kubernetes. På så sätt kan du lägga till ytterligare begränsningar för kostnadsoptimering som du vill framtvinga i kluster- och arbetsbelastningsarkitekturen.

Molneffektivitet

För att göra arbetsbelastningarna mer hållbara och molneffektiva måste du kombinera arbetet med kostnadsoptimering, minska koldioxidutsläppen och optimera energiförbrukningen. Att optimera programmets kostnad är det första steget för att göra arbetsbelastningarna mer hållbara.

Lär dig hur du skapar hållbara och effektiva AKS-arbetsbelastningar i Principer för hållbar programvaruutveckling i Azure Kubernetes Service (AKS).

Driftsäkerhet

Övervakning och diagnostik är avgörande. Du kan inte bara mäta prestandastatistik, utan även använda mått för att felsöka och åtgärda problem snabbt. Vi rekommenderar att du läser designprinciperna för driftseffektivitet och dag 2-åtgärdsguiden.

När du diskuterar driftskvalitet med Azure Kubernetes Service är det viktigt att skilja mellan klustrets driftskvalitet och arbetsbelastningens driftskvalitet. Klusteråtgärder är ett delat ansvar mellan klusteradministratören och deras resursprovider, medan arbetsbelastningsåtgärder är en utvecklares domän. Azure Kubernetes Service har överväganden och rekommendationer för båda dessa roller.

I designchecklistan och listan med rekommendationer nedan görs anrop för att ange om varje val är tillämpligt för klusterarkitektur, arbetsbelastningsarkitektur eller båda.

Checklista för design

  • Klusterarkitektur: Använd en mallbaserad distribution med Bicep, Terraform eller andra. Kontrollera att alla distributioner är repeterbara, spårbara och lagrade i en källkodslagringsplats.
  • Klusterarkitektur: Skapa en automatiserad process för att säkerställa att dina kluster startas med nödvändiga klusteromfattande konfigurationer och distributioner. Detta utförs ofta med GitOps.
  • Arbetsbelastningsarkitektur: Använd en upprepningsbar och automatiserad distributionsprocess för din arbetsbelastning i livscykeln för programvaruutveckling.
  • Klusterarkitektur: Aktivera diagnostikinställningar för att säkerställa att kontrollplanet eller api-serverns kärninteraktioner loggas.
  • Kluster- och arbetsbelastningsarkitekturer: Granska metodtipsen för övervakning av Kubernetes med Azure Monitor för att fastställa den bästa övervakningsstrategin för dina arbetsbelastningar.
  • Arbetsbelastningsarkitektur: Arbetsbelastningen bör utformas för att generera telemetri som kan samlas in, vilket även bör innehålla status för livlighet och beredskap.
  • Kluster- och arbetsbelastningsarkitekturer: Använd kaostekniker som riktar sig till Kubernetes för att identifiera problem med program- eller plattformstillförlitlighet.
  • Arbetsbelastningsarkitektur: Optimera arbetsbelastningen så att den fungerar och distribueras effektivt i en container.
  • Kluster- och arbetsbelastningsarkitekturer: Framtvinga kluster- och arbetsbelastningsstyrning med hjälp av Azure Policy.

Rekommendationer

Utforska följande tabell med rekommendationer för att optimera DIN AKS-konfiguration för åtgärder.

Rekommendation Förmån
Kluster- och arbetsbelastningsarkitekturer: Granska dokumentationen om AKS-metodtips . För att skapa och köra program i AKS finns det viktiga saker att tänka på för att förstå och implementera. Dessa områden omfattar funktioner för flera innehavare och schemaläggare, kluster- och poddsäkerhet eller affärskontinuitet och haveriberedskap.
Kluster- och arbetsbelastningsarkitekturer: Granska Azure Chaos Studio. Azure Chaos Studio kan hjälpa till att simulera fel och utlösa haveriberedskapssituationer.
Kluster- och arbetsbelastningsarkitekturer: Granska metodtipsen för övervakning av Kubernetes med Azure Monitor för att fastställa den bästa övervakningsstrategin för dina arbetsbelastningar. Ej tillämpligt
Klusterarkitektur: Anta en strategi för flera regioner genom att distribuera AKS-kluster som distribuerats i olika Azure-regioner för att maximera tillgängligheten och tillhandahålla affärskontinuitet. Internetuppkopplade arbetsbelastningar bör använda Azure Front Door eller Azure Traffic Manager för att dirigera trafik globalt över AKS-kluster.
Klusterarkitektur: Operationalisera konfigurationsstandarder för kluster och poddar med Azure Policy. Azure Policy kan bidra till att tillämpa tillämpning i stor skala och skydd på dina kluster på ett centraliserat och konsekvent sätt. Den kan också styra vilka funktioner poddar beviljas och om något körs mot företagets princip.
Arbetsbelastningsarkitektur: Använd plattformsfunktioner i versionstekniska processen. Kubernetes och ingresskontrollanter har stöd för många avancerade distributionsmönster för inkludering i din versionsutvecklingsprocess. Överväg mönster som blågröna distributioner eller kanarieversioner.
Kluster- och arbetsbelastningsarkitekturer: För verksamhetskritiska arbetsbelastningar använder du blå/gröna distributioner på stämpelnivå. Automatisera dina verksamhetskritiska designområden, inklusive distribution och testning.

Fler förslag finns i Principer för grundpelare för driftskvalitet.

Azure Advisor ger också rekommendationer om en delmängd av objekten som anges i principavsnittet nedan, till exempel AKS-versioner som inte stöds och okonfigurerade diagnostikinställningar. På samma sätt ger den arbetsbelastningsrekommendationer kring användningen av standardnamnområdet.

Principdefinitioner

Azure Policy erbjuder olika inbyggda principdefinitioner som gäller för både Azure-resursen och AKS som standardprincipdefinitioner och användning av Azure Policy-tillägget för Kubernetes, även i klustret. Många av Azure-resursprinciperna finns i både Granskning/Neka, men även i en Deploy If Not Exists-variant .

Det finns ett stort antal principer och viktiga principer som är relaterade till den här pelaren sammanfattas här. En mer detaljerad vy finns i inbyggda principdefinitioner för Kubernetes.

Klusterarkitektur

  • Azure Policy-tillägg för Kubernetes
  • GitOps-konfigurationsprinciper
  • Principer för diagnostikinställningar
  • Begränsningar för AKS-version
  • Förhindra att kommandot anropas

Kluster- och arbetsbelastningsarkitektur

  • Distributionsbegränsningar för namnområde

Förutom de inbyggda principerna kan anpassade principer skapas för både AKS-resursen och för Azure Policy-tillägget för Kubernetes. På så sätt kan du lägga till ytterligare säkerhetsbegränsningar som du vill framtvinga i kluster- och arbetsbelastningsarkitekturen.

Prestandaeffektivitet

Prestandaeffektivitet handlar om att effektivt skala arbetsbelastningen baserat på användarnas behov. Vi rekommenderar att du granskar principerna för prestandaeffektivitet.

När du diskuterar prestanda med Azure Kubernetes Service är det viktigt att skilja mellan klusterprestanda och arbetsbelastningsprestanda. Klusterprestanda är ett delat ansvar mellan klusteradministratören och deras resursprovider, medan arbetsbelastningsprestanda är en utvecklares domän. Azure Kubernetes Service har överväganden och rekommendationer för båda dessa roller.

I designchecklistan och listan med rekommendationer nedan görs anrop för att ange om varje val är tillämpligt för klusterarkitektur, arbetsbelastningsarkitektur eller båda.

Checklista för design

När du gör designval för Azure Kubernetes Service läser du principerna för prestandaeffektivitet.

  • Kluster- och arbetsbelastningsarkitekturer: Utför och iterera i en detaljerad kapacitetsplansövning som innehåller SKU, autoskalningsinställningar, IP-adressering och redundansöverväganden.
  • Klusterarkitektur: Aktivera autoskalning av kluster för att automatiskt justera antalet agentnoder i arbetsbelastningskrav för svar.
  • Klusterarkitektur: Använd autoskalning av vågrät podd för att justera antalet poddar i en distribution beroende på CPU-användning eller andra valda mått.
  • Kluster- och arbetsbelastningsarkitekturer: Utför pågående belastningstestningsaktiviteter som tränar både podden och autoskalning av kluster.
  • Kluster- och arbetsbelastningsarkitekturer: Avgränsa arbetsbelastningar i olika nodpooler som möjliggör oberoende skalning.

Rekommendationer

Utforska följande tabell med rekommendationer för att optimera din Azure Kubernetes Service-konfiguration för prestanda.

Rekommendation Förmån
Kluster- och arbetsbelastningsarkitekturer: Utveckla en detaljerad kapacitetsplan och granska och revidera kontinuerligt. När du har formaliserat kapacitetsplanen bör den uppdateras ofta genom att kontinuerligt observera resursanvändningen i klustret.
Klusterarkitektur: Aktivera autoskalning av kluster för att automatiskt justera antalet agentnoder som svar på resursbegränsningar. Möjligheten att automatiskt skala upp eller ned antalet noder i AKS-klustret gör att du kan köra ett effektivt och kostnadseffektivt kluster.
Kluster- och arbetsbelastningsarkitekturer: Avgränsa arbetsbelastningar i olika nodpooler och överväg att skala användarnodpooler. Till skillnad från systemnodpooler som alltid kräver att noder körs kan du skala upp eller ned användarnodpooler.
Arbetsbelastningsarkitektur: Använd funktioner för avancerad schemaläggare i AKS. Hjälper till att kontrollera utjämningen av resurser för arbetsbelastningar som kräver dem.
Arbetsbelastningsarkitektur: Använd meningsfulla mått för arbetsbelastningsskalning. Alla skalningsbeslut kan inte härledas från CPU- eller minnesmått. Skalningsöverväganden kommer ofta från mer komplexa eller till och med externa datapunkter. Använd KEDA för att skapa en meningsfull regeluppsättning för automatisk skalning baserat på signaler som är specifika för din arbetsbelastning.

Fler förslag finns i Principer för grundpelare för prestandaeffektivitet.

Principdefinitioner

Azure Policy erbjuder olika inbyggda principdefinitioner som gäller för både Azure-resursen och AKS som standardprincipdefinitioner och användning av Azure Policy-tillägget för Kubernetes, även i klustret. Många av Azure-resursprinciperna finns i både Granskning/Neka, men även i en Deploy If Not Exists-variant .

Det finns ett stort antal principer och viktiga principer som är relaterade till den här pelaren sammanfattas här. En mer detaljerad vy finns i inbyggda principdefinitioner för Kubernetes.

Kluster- och arbetsbelastningsarkitektur

  • Begränsningar för processor- och minnesresurser

Förutom de inbyggda principerna kan anpassade principer skapas för både AKS-resursen och för Azure Policy-tillägget för Kubernetes. På så sätt kan du lägga till ytterligare säkerhetsbegränsningar som du vill framtvinga i kluster- och arbetsbelastningsarkitekturen.

Ytterligare resurser

Vägledning för Azure Architecture Center

Vägledning för Cloud Adoption Framework

Nästa steg