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 för utmärkt arkitektur:

  • Tillförlitlighet
  • Säkerhet
  • Kostnadsoptimering
  • Utmärkt driftseffektivitet
  • 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å Well-Architected Framework-pelare 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 .

Överväg att granska en referensarkitektur som återspeglar dessa överväganden i designen. Vi rekommenderar att du börjar med baslinjearkitekturen för ett Azure Kubernetes Service-kluster (AKS) och mikrotjänstarkitektur på Azure Kubernetes Service. Granska även AKS-landningszonacceleratorn, som tillhandahåller en arkitekturmetod och referensimplementering för att förbereda prenumerationer för landningszoner för ett skalbart Azure Kubernetes Service-kluster (AKS).

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 anrop för att ange om varje val gäller för klusterarkitektur, arbetsbelastningsarkitektur eller båda.

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: Aktivera containerinsikter för att övervaka klustret och konfigurera aviseringar för händelser som påverkar tillförlitligheten.
  • Arbetsbelastningsarkitektur: Se till att arbetsbelastningar skapas för att stödja horisontell skalning och rapportera programberedskap och hälsa.
  • Kluster- och arbetsbelastningsarkitekturer: Kontrollera att din arbetsbelastning 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 serviceavtalet för drifttid för AKS 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ördelar
Kluster- och arbetsbelastningsarkitekturer: Kontrollera poddschemaläggning med hjälp av nodväljare och tillhörighet. Gör att Kubernetes-schemaläggaren logiskt kan 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 ger prioritet åt poddar som definierar matchande nodväljare. 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 plugin-program baserat på nätverkskrav och storleksändring av kluster. 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: Konfigurera övervakning av kluster med containerinsikter. Containerinsikter hjälper till att övervaka hälsotillståndet och prestandan för kontrollanter, noder och containrar som är tillgängliga i Kubernetes via Mått-API:et. Integrering med Prometheus möjliggör insamling av program- och arbetsbelastningsmått.
Klusterarkitektur: Använd tillgänglighetszoner för att maximera motståndskraften i en Azure-region genom att distribuera AKS-agentnoder över 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 internode-svarstiden.
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 ge 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 framtvinga med Azure Policy. Begränsningar för processor- och minnesresurser i containrar är nödvändiga 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. Referera till system- och användarnodpooler för detaljerade krav.
Kluster- och arbetsbelastningsarkitekturer: Separera 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 grundpelare för tillförlitlighet.

Azure Policy

Azure Kubernetes Service erbjuder en mängd olika inbyggda Azure-principer som gäller för både Azure-resursen som vanliga Azure-principer och, med hjälp av Azure Policy tillägg 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.

Arkitektur för kluster och arbetsbelastningar

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

Säkerhet

Säkerhet är en av de viktigaste aspekterna, oavsett arkitektur. Om du vill utforska hur AKS kan stärka säkerheten för din programarbetsbelastning rekommenderar vi att du granskar principerna för säkerhetsdesign. Om ditt Azure Kubernetes Service kluster måste utformas för att köra en känslig arbetsbelastning som uppfyller de regelmässiga kraven i Payment Card Industry Data Security Standard (PCI-DSS 3.2.1) läser du AKS-reglerat 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 över rekommendationer nedan görs anrop för att ange om varje val gäller 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 lägsta 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 reagera på hot i klustret och arbetsbelastningar som körs på dem.
  • Klusterarkitektur: Distribuera ett privat AKS-kluster för att säkerställa att klusterhanteringstrafik till DIN API-server 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 Web Application Firewall 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ördelar
Klusterarkitektur: Använd Microsoft Entra integrering. Om du använder Microsoft Entra ID centraliseras identitetshanteringskomponenten. Ändringar i användarkonto- eller gruppstatus uppdateras automatiskt i åtkomsten till AKS-klustret. Utvecklare och programägare i kubernetes-klustret behöver åtkomst till olika resurser.
Klusterarkitektur: Autentisera med Microsoft Entra ID för att 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 överförs Microsofts stamnätverksnätverk via nätverkstrafik mellan dina nodpooler och API-servern. Genom att använda ett privat kluster kan du se till att nätverkstrafik till DIN API-server endast finns kvar i det privata nätverket.
Klusterarkitektur: För icke-privata AKS-kluster använder du API-serverauktoriserade IP-intervall. När du använder offentliga kluster kan du fortfarande begränsa trafiken 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, driftshantering 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 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 hjälpa dig att tillämpa skalbar tillämpning 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 Web Application Firewall 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 i klustret. Kontrollera att klustrets utgående trafik passerar genom en nätverkssäkerhetspunkt, till exempel Azure Firewall eller en HTTP-proxy.
Klusterarkitektur: Använd CSI-drivrutinen med öppen källkod Microsoft Entra Workload ID och Secrets Store med Azure Key Vault. Skydda och rotera hemligheter, certifikat och anslutningssträngar 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 KONFIGURERAD RBAC, 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ägg 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 molnbaserade principer
  • Autentiseringsläge och konfigurationsprinciper (Microsoft Entra ID, RBAC, inaktivera lokal autentisering)
  • API Server-nätverksåtkomstprinciper, inklusive privata kluster

Arkitektur för kluster och arbetsbelastningar

  • Säkerhetsinitiativ för Kubernetes-klusterpoddar – Linux-baserade arbetsbelastningar
  • Inkludera principer för podd- och containerkapacitet som AppArmor, sysctl, säkerhetstak, SELinux, seccomp, privilegierade containrar, API-autentiseringsuppgifter för automontering av kluster
  • Principer för montering, volymdrivrutiner och filsystem
  • Principer för podd-/containernätverk, till exempel värdnätverk, port, tillåtna externa IP-adresser, HTTP:er och interna lastbalanserare

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

Förutom de inbyggda principerna kan anpassade principer skapas för både AKS-resursen och för det Azure Policy tillägget för Kubernetes. På så sätt kan du lägga till ytterligare säkerhetsbegränsningar som du vill tillämpa 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 driftseffektiviteten. 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 över rekommendationer görs utryckningar för att ange om varje val är tillämpligt för klusterarkitektur, arbetsbelastningsarkitektur eller båda.

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, som börjar med CPU, minne, lagring och nätverk, för att identifiera kostnadsoptimeringsmöjligheter per kluster, noder och namnområde.
  • 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ördelar
Kluster- och arbetsbelastningsarkitekturer: Justera SKU-valet och den hanterade diskstorleken med arbetsbelastningskraven. Genom att matcha 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 kraftfull instans kan leda till prestandaproblem och ökad stilleståndstid. Ta hänsyn till arbetsbelastningens egenskaper, resurskrav och tillgänglighetsbehov för att fastställa rätt typ av virtuell datorinstans.
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 Azure Spot Virtual Machines. 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 igen tar Azure-infrastrukturen bort noderna För oanvänd kapacitet.
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 inte påverkar slutanvändarna eller skapar extra nätverksavgifter.
Arbetsbelastningsarkitektur: Underhåll små och optimerade bilder. Genom att effektivisera dina avbildningar kan du minska kostnaderna eftersom nya noder behöver ladda ned bilderna. 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äranden 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 skalas upp när efterfrågan returneras.
Klusterarkitektur: Aktivera Automatisk avetablering av nod för att automatisera valet av VM-SKU. Node Autoprovision förenklar SKU-urvalsprocessen och bestämmer, baserat på väntande krav på poddar, den optimala VM-konfigurationen för att köra arbetsbelastningar på det mest effektiva och kostnadseffektiva sättet.
Arbetsbelastningsarkitektur: Använd Horizontal Pod Autoscaler. 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 Vertical Pod Autoscaler (förhandsversion). Rightsize your pods and dynamically set requests and limits based on historic usage.
Arbetsbelastningsarkitektur: Använd Kubernetes Event Driven Autoscaling (KEDA). Skala baserat på antalet händelser som bearbetas. Välj bland en omfattande katalog med över 50 KEDA-skalare.
Kluster- och arbetsbelastningsarkitekturer: Anta ett finansiellt område för molnet och kulturell praxis för att öka ägarskapet för molnanvändningen. Grunden för att möjliggöra 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 inbegriper samarbete mellan ekonomi-, drifts- och ingenjörsteam för att driva anpassningen till kostnadsbesparande mål och öka transparensen för molnkostnaderna.
Klusterarkitektur: Registrera dig för Azure-reservationer eller Azure Savings Plan. Om du har planerat för kapacitet korrekt är din arbetsbelastning förutsägbar och finns under en längre tid, registrera dig för en Azure-reservation eller en besparingsplan för att ytterligare minska dina resurskostnader.
Klusterarkitektur: Konfigurera övervakning av kluster med Container Insights. Containerinsikter hjälper till att ge användbara insikter om inaktiva och ej allokerade resurser i dina kluster. Container insights stöder också insamling av Prometheus-mått och integreras med Azure Managed Grafana för att få en holistisk vy över ditt program och din infrastruktur.
Klusterarkitektur: Konfigurera TILLÄGGET AKS-kostnadsanalys. Med klustertillägget för kostnadsanalys kan du få detaljerad inblick i kostnader som är associerade med olika Kubernetes-resurser i dina kluster eller namnområden.

Fler förslag finns i Principer för kostnadsoptimeringspelare 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 det Azure Policy tillägget för Kubernetes. På så sätt kan du lägga till ytterligare kostnadsoptimeringsbegränsningar som du vill framtvinga i kluster- och arbetsbelastningsarkitekturen.

Molneffektivitet

Att göra arbetsbelastningarna mer hållbara och molneffektiva kräver att du kombinerar arbetet med kostnadsoptimering, minskar koldioxidutsläppen och optimerar energiförbrukning. 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).

Utmärkt driftseffektivitet

Ö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 driftsguiden dag 2.

När du diskuterar driftseffektivitet med Azure Kubernetes Service är det viktigt att skilja mellan utmärkta klusteråtgärder och utmärkt driftseffektivitet för arbetsbelastningar. 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 över rekommendationer nedan görs anrop för att ange om varje val gäller för klusterarkitektur, arbetsbelastningsarkitektur eller både och.

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 repeterbara och automatiserade distributionsprocesser för din arbetsbelastning i livscykeln för programvaruutveckling.
  • Klusterarkitektur: Aktivera diagnostikinställningar för att säkerställa att kontrollplans- eller kärn-API-serverinteraktioner loggas.
  • Kluster- och arbetsbelastningsarkitekturer: Aktivera Container Insights för att samla in mått, loggar och diagnostik för att övervaka tillgängligheten och prestandan för klustret och arbetsbelastningarna som körs på det.
  • Arbetsbelastningsarkitektur: Arbetsbelastningen bör utformas för att generera telemetri som kan samlas in, vilket också bör omfatta status för livlighet och beredskap.
  • Kluster- och arbetsbelastningsarkitekturer: Använd kaostekniker som riktar in sig på Kubernetes för att identifiera problem med program- eller plattformstillförlitlighet.
  • Arbetsbelastningsarkitektur: Optimera din arbetsbelastning så att den fungerar och distribueras effektivt i en container.
  • Kluster- och arbetsbelastningsarkitekturer: Framtvinga styrning av kluster och arbetsbelastningar med hjälp av Azure Policy.

Rekommendationer

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

Rekommendation Fördelar
Kluster- och arbetsbelastningsarkitekturer: Läs dokumentationen om metodtips för AKS . För att kunna 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 klientorganisationer och schemaläggare, kluster- och poddsäkerhet, 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: Konfigurera övervakning av kluster med Container Insights. Containerinsikter hjälper till att övervaka prestanda för containrar genom att samla in minnes- och processormått från kontrollanter, noder och containrar som är tillgängliga i Kubernetes via Metrics API och containerloggar.
Arbetsbelastningsarkitektur: Övervaka programprestanda med Azure Monitor. Konfigurera Application Insights för kodbaserad övervakning av program som körs i ett AKS-kluster.
Arbetsbelastningsarkitektur: Konfigurera skrapning av Prometheus-mått med Container Insights. Containerinsikter, som ingår i Azure Monitor, ger en sömlös introduktionsupplevelse för att samla in Prometheus-mått. Mer information finns i Konfigurera skrapning av Prometheus-mått .
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 och skydd i stor skala 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 policy.
Arbetsbelastningsarkitektur: Använd plattformsfunktioner i din lanseringstekniksprocess. Kubernetes och ingresskontrollanter har stöd för många avancerade distributionsmönster för inkludering i din versionsframställningsprocess. Ö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 driftseffektivitet.

Azure Advisor ger också rekommendationer om en delmängd av de objekt 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, till exempel standardprincipdefinitioner, och som använder Azure Policy-tillägget för Kubernetes, även det i klustret. Många av Azure-resursprinciperna finns både i Granska/neka, men även i en Deploy If Not Exists-variant .

Det finns ett stort antal principer och nyckelprinciper 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
  • Konfigurationsprinciper för GitOps
  • 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 det 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 läser 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 domänen för en utvecklare. Azure Kubernetes Service har överväganden och rekommendationer för båda dessa roller.

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

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 på en detaljerad kapacitetsplanö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 svarsarbetsbelastningens krav.
  • Klusterarkitektur: Använd horizontal pod autoscaler 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 utför både podden och autoskalning av kluster.
  • Kluster- och arbetsbelastningsarkitekturer: Separera arbetsbelastningar i olika nodpooler som tillåter oberoende skalning.

Rekommendationer

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

Rekommendation Fördelar
Kluster- och arbetsbelastningsarkitekturer: Utveckla en detaljerad kapacitetsplan och kontinuerligt granska och revidera. 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. Med möjligheten att automatiskt skala upp eller ned antalet noder i aks-klustret kan du köra ett effektivt och kostnadseffektivt kluster.
Kluster- och arbetsbelastningsarkitekturer: Separera arbetsbelastningar i olika nodpooler och överväg att skala användarnodpooler. Till skillnad från systemnodpooler som alltid kräver noder som körs kan du skala upp eller ned med användarnodpooler.
Arbetsbelastningsarkitektur: Använd funktionerna i AKS Advanced Scheduler. 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, till exempel standardprincipdefinitioner, och som använder Azure Policy-tillägget för Kubernetes, även det i klustret. Många av Azure-resursprinciperna finns både i Granska/neka, men även i en Deploy If Not Exists-variant .

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

Kluster- och arbetsbelastningsarkitektur

  • Gränser för processor- och minnesresurser

Förutom de inbyggda principerna kan anpassade principer skapas för både AKS-resursen och för det 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