Azure Well-Architected Framework-perspektiv på Azure Kubernetes Service (AKS)
Azure Kubernetes Service (AKS) är en hanterad Kubernetes-tjänst som du kan använda för att distribuera och hantera containerbaserade program. På samma sätt som andra hanterade tjänster avlastar AKS mycket av driftkostnaderna till Azure samtidigt som det ger hög tillgänglighet, skalbarhet och portabilitetsfunktioner till arbetsbelastningen.
Den här artikeln förutsätter att du som arkitekt har granskat beräkningsbeslutsträdet och valt AKS som beräkning för din arbetsbelastning. Vägledningen i den här artikeln innehåller arkitektoniska rekommendationer som kopplas till principerna för pelarna i Azure Well-Architected Framework.
Viktig
Använda den här guiden
Varje avsnitt har en checklista för design som presenterar arkitekturområden som är viktiga tillsammans med designstrategier som är lokaliserade till teknikomfånget.
Dessutom ingår rekommendationer för de teknikfunktioner som kan hjälpa till att materialisera dessa strategier. Rekommendationerna representerar inte en fullständig lista över alla konfigurationer som är tillgängliga för AKS och dess beroenden. I stället listar de de viktigaste rekommendationerna som mappats till designperspektiven. Använd rekommendationerna för att skapa ditt konceptbevis eller för att optimera dina befintliga miljöer.
Grundläggande arkitektur som visar de viktigaste rekommendationerna: AKS-baslinjearkitektur.
Teknikomfång
Den här granskningen fokuserar på de relaterade besluten för följande Azure-resurser:
- AKS
När du diskuterar Well-Architected Framework-grundpelarnas metodtips för AKS är det viktigt att skilja mellan kluster och arbetsbelastning. Metodtips för kluster är ett delat ansvar mellan klusteradministratören och deras resursprovider, medan metodtips för arbetsbelastningar är en utvecklares domän. Den här artikeln innehåller överväganden och rekommendationer för var och en av dessa roller.
Anteckning
Följande pelare innehåller en checklista för design och en lista med rekommendationer som anger om varje val gäller för kluster arkitektur, arbetsbelastning arkitektur eller båda.
Tillförlitlighet
Syftet med grundpelarna för tillförlitlighet är att tillhandahålla fortsatt funktionalitet genom att bygga upp tillräckligt med motståndskraft och möjlighet att snabbt återhämta sig från fel.
Principer för tillförlitlighetsdesign tillhandahålla en övergripande designstrategi som tillämpas för enskilda komponenter, systemflöden och systemet som helhet.
Checklista för design
Börja din designstrategi baserad på checklistan för designgranskning för tillförlitlighet,. Fastställ dess relevans för dina affärskrav samtidigt som du tänker på funktionerna i AKS och dess beroenden. Utöka strategin till att omfatta fler metoder efter behov.
(Kluster) Skapa redundans för att förbättra återhämtning. Använd tillgänglighetszoner för dina AKS-kluster som en del av återhämtningsstrategin för att öka tillgängligheten när du distribuerar till en enda region. Många Azure-regioner tillhandahåller tillgänglighetszoner. Zonerna är tillräckligt nära för att ha anslutningar med låg latens bland dem, men tillräckligt långt ifrån varandra för att minska sannolikheten för att lokala avbrott kommer att påverka mer än en zon.
För kritiska arbetsbelastningar distribuerar du flera kluster i olika Azure-regioner. Genom att distribuera AKS-kluster geografiskt kan du uppnå högre återhämtning och minimera effekterna av regionala fel. En strategi för flera regioner hjälper till 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. Mer information finns i strategi för flera regioner.
Planera IP-adressutrymmet för att säkerställa att klustret på ett tillförlitligt sätt kan skala och hantera redundanstrafik i topologier med flera kluster.
(Kluster och arbetsbelastning) Övervaka tillförlitlighet och övergripande hälsoindikatorer för klustret och arbetsbelastningarna. Samla in loggar och mått för att övervaka arbetsbelastningens hälsa, identifiera prestanda- och tillförlitlighetstrender och felsöka problem. Läs bästa praxis för övervakning av Kubernetes med Azure Monitor och guiden om Well-Architected Health-modellering för arbetsbelastningar för hjälp med att utforma din AKS-lösning för tillförlitlighet och hälsoövervakning.
Se till att arbetsbelastningar skapas för att stödja horisontell skalning och rapportera programberedskap och hälsa.
(Kluster och arbetsbelastning) Placera applikationspoddar i användarnodpooler. Genom att isolera systempoddar från applikationsarbetsbelastningar hjälper du till att säkerställa att viktiga AKS-tjänster inte påverkas av resursbehoven eller potentiella problem som orsakas av en arbetsbelastning som körs i användarnodpooler.
Se till att arbetsbelastningen körs på användarens nodpooler och välj rätt SKU-storlek. Inkludera minst två noder för användarnodpooler och tre noder för systemnodpoolen.
(Kluster och arbetsbelastning) Dela in AKS-avtalet (uptime Service Level Agreement) i dina tillgänglighets- och återställningsmål. Om du vill definiera tillförlitlighets- och återställningsmål för klustret och arbetsbelastningen följer du riktlinjerna i rekommendationer för att definiera tillförlitlighetsmål. Formulera sedan en design som uppfyller dessa mål.
(Kluster och arbetsbelastning) Skydda AKS-klustertjänsten med Hjälp av Azure Backup genom att lagra återställningspunkter i ett säkerhetskopieringsvalv och utföra återställning under alla katastrofscenarion. Om du vill säkerhetskopiera och återställa de containerbaserade program och data som körs i AKS-kluster följer du anvisningarna i aks-säkerhetskopieringsöversikten för att konfigurera skydd.
Rekommendationer
Rekommendation | Förmån |
---|---|
(Kluster och arbetsbelastning) Styr poddschemaläggning med hjälp av nodväljare och affinitet. I AKS kan Kubernetes-schemaläggaren logiskt isolera arbetsbelastningar efter maskinvara i noden. Till skillnad från tolerationskan poddar utan en matchande nodväljare fortfarande schemaläggas på märkta noder, men prioritet ges till poddar som definierar en matchande nodväljare. |
Nodtillhörighet ger större flexibilitet, vilket gör att du kan definiera vad som händer om podden inte kan matchas med en nod. |
(Kluster) Välj rätt nätverks-plugin baserat på nätverkskrav och klusterstorlek. Olika plugin-program för nätverk ger varierande funktionalitetsnivåer. Azure Container Networking Interface (Azure CNI) krävs för specifika scenarier, till exempel Windows-baserade nodpooler, vissa nätverkskrav och Kubernetes-nätverksprinciper. För mer information, se Kubenet jämfört med Azure CNI. |
Rätt plugin-program för nätverk kan bidra till bättre kompatibilitet och prestanda. |
(Kluster och arbetsbelastning) Använd AKS-drifttids-SLA- för kluster i produktionsklass. | Arbetsbelastningen har stöd för högre tillgänglighetsmål på grund av högre tillgänglighetsgarantier för Kubernetes API-serverslutpunkten för AKS-kluster. |
(Kluster) Använd tillgänglighetszoner för att maximera motståndskraften i en Azure-region genom att distribuera AKS-agentnoder mellan fysiskt separata datacenter. Om det finns krav på samlokalisering, använder du en vanlig AKS-distribution baserad på virtuella maskin-skalningsuppsättningar i en enskild zon eller använder närhetsplaceringsgrupper för att minimera internodlatens. |
Genom att sprida nodpooler över flera zoner fortsätter noderna i en nodpool att köras även om en annan zon slutar fungera. |
(Kluster och arbetsbelastning) Definiera poddresursbegäranden och begränsningar i programdistributionsmanifest. Tillämpa dessa gränser med hjälp av 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 arbetsbelastning) Håll systemnodpoolen isolerad från programarbetsbelastningar. Systemnodpooler kräver en SKU för virtuell dator (VM) på minst 2 vCPU:er och 4 GB minne. Vi rekommenderar att du använder 4 vCPU eller mer. Mer information finns i System- och användarnodpooler. |
Systemnodpoolen är värd för viktiga systempoddar som är viktiga för kontrollplanet i klustret. Genom att isolera dessa systempoddar från programarbetsbelastningar hjälper du till att säkerställa att de viktiga tjänsterna inte påverkas av resursbehoven eller potentiella problem som orsakas av en arbetsbelastning. |
(Kluster och arbetsbelastning) Avgränsa program till dedikerade nodpooler baserat på specifika krav. Undvik ett stort antal nodpooler för att minska hanteringskostnaderna. | Program kan dela samma konfiguration och behöver GPU-aktiverade virtuella datorer, cpu- eller minnesoptimerade virtuella datorer eller möjlighet att skala till noll. Genom att ange nodpooler för specifika program kan du se till att varje program hämtar de resurser som behövs utan överetablering eller underutnyttjande av resurser. |
(Kluster) Använd en NAT-gateway för kluster som kör arbetsbelastningar som gör många samtidiga utgående anslutningar. | Azure NAT Gateway stöder tillförlitlig utgående trafik i stor skala och hjälper dig att undvika tillförlitlighetsproblem genom att använda Azure Load Balancer-begränsningar för hög samtidig utgående trafik. |
(Kluster och arbetsbelastning) Använd Azure Backup för att skydda AKS-kluster och återställa till alternativa regioner under haveri. Azure Backup stöder säkerhetskopiering och återställning av containerbaserade program och data som körs för både klustertillstånd och programdata. Du kan använda säkerhetskopiorna i ett regionalt katastrofscenario och återställa säkerhetskopior. |
Azure Backup med Azure Kubernetes Service (AKS) erbjuder en fullständigt hanterad, skalbar, säker och kostnadseffektiv lösning. Förbättrar arbetsbelastningens tillförlitlighet utan komplexiteten i att konfigurera och underhålla säkerhetskopieringsinfrastrukturen. |
Säkerhet
Syftet med säkerhetspelare är att tillhandahålla konfidentialitet, integritet och tillgänglighet garantier för arbetsbelastningen.
Designprinciperna för Security tillhandahåller en övergripande designstrategi för att uppnå dessa mål genom att använda tillvägagångssätt som tillämpas på den tekniska designen av AKS.
Checklista för design
Påbörja din designstrategi baserat på checklistan för designgranskning för säkerhet och identifiera sårbarheter och kontroller för att förbättra säkerhetsställningen. Bekanta dig med koncepten för AKS-säkerhet och utvärdera säkerhetshärdningsrekommendationerna utifrån CIS Kubernetes benchmark . Utöka strategin till att omfatta fler metoder efter behov.
(Kluster) Integrera med Microsoft Entra-ID för identitet och åtkomsthantering. Centralisera identitetshantering för klustret med hjälp av Microsoft Entra-ID. Ändringar i användarkonto- eller gruppstatus uppdateras automatiskt i åtkomsten till AKS-klustret. Etablera identitet som den primära säkerhetsperimetern. Utvecklare och programägare i ditt Kubernetes-kluster behöver åtkomst till olika resurser.
Använd rollbaserad åtkomstkontroll för Kubernetes (RBAC) med Microsoft Entra ID för minsta möjliga behörighet. Skydda konfiguration och hemligheter genom att minimera fördelningen av administratörsbehörigheter.
(Kluster) Integrera med verktyg för säkerhetsövervakning och säkerhetsinformation och händelsehantering. Använda Microsoft Defender för containrar med Microsoft Sentinel- för att identifiera och snabbt svara på hot i dina kluster och de arbetsbelastningar som körs på dem. Aktivera AKS-anslutningsprogram för Microsoft Sentinel för att strömma dina AKS-diagnostikloggar till Microsoft Sentinel.
(Kluster och arbetsbelastning) Implementera segmenterings- och nätverkskontroller. För att förhindra dataexfiltrering, säkerställ att endast auktoriserad och säker trafik tillåts och begränsa omfattningen av ett säkerhetsintrång.
Överväg att använda 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 API-serverns tillåtna lista för offentliga kluster.
(Arbetsbelastning) Använd en brandvägg för webbprogram (WAF) för att söka igenom inkommande trafik efter potentiella attacker. WAF kan identifiera och minimera hot i realtid för att blockera skadlig trafik innan den når dina program. Det ger ett robust skydd mot vanliga webbaserade attacker, till exempel SQL-inmatning, skript för flera platser och andra sårbarheter i Open Web Application Security Project. Vissa lastbalanserare, till exempel Azure Application Gateway eller Azure Front Door har en integrerad WAF.
(Arbetsbelastningsmiljö) Underhåll en säkrad programvaruleveranskedja. Se till att din pipeline för kontinuerlig integration och kontinuerlig leverans är säkerställd med containeranpassad skanning.
(Kluster och arbetsbelastning) Implementera extra skydd för specialiserade säkra arbetsbelastningar. Om klustret behöver köra en känslig arbetsbelastning kan du behöva distribuera ett privat kluster. Här följer några exempel:
- Datasäkerhetsstandard för betalningskortsindustrin (PCI-DSS 3.2.1): AKS-reglerat kluster för PCI-DSS 3.2.1
- Stöd och krav för DoD Impact Level 5 (IL5) med AKS: Azure Government IL5-isoleringskrav.
Rekommendationer
Rekommendation | Förmån |
---|---|
(Kluster) Använd hanterade identiteter i klustret. | Du kan undvika de omkostnader som är kopplade till att hantera och rotera serviceprinciper. |
(Arbetsbelastning) Använd Microsoft Entra-arbetsbelastnings-ID med AKS- för att komma åt Microsoft Entra-skyddade resurser, till exempel Azure Key Vault och Microsoft Graph, från din arbetsbelastning. | Använd AKS-arbetsbelastnings-ID:t för att skydda åtkomsten till Azure-resurser med hjälp av Microsoft Entra ID RBAC utan att behöva hantera autentiseringsuppgifter direkt i koden. |
(Kluster) Använd Microsoft Entra-ID för att autentisera med Azure Container Registry från AKS. | Med hjälp av Microsoft Entra-ID kan AKS autentisera med Container Registry utan att använda imagePullSecrets hemligheter. |
(Kluster) Skydda nätverkstrafiken till API-servern med hjälp av privata AKS-kluster om arbetsbelastningskraven kräver högre segmenteringsnivåer. | Som standard färdas nätverkstrafik mellan nodpoolerna 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. |
(Kluster) För offentliga AKS-kluster använder du API-serverauktoriserade IP-adressintervall. Inkludera källor som de offentliga IP-adresserna för dina distributionsversionsagenter, drifthantering och nodpoolernas utgående punkt, till exempel Azure Firewall. | När du använder offentliga kluster kan du avsevärt minska attackytan för ditt AKS-kluster genom att begränsa trafiken som kan nå API-servern i dina kluster. |
(Kluster) Skydda API-servern med hjälp av Microsoft Entra ID RBAC. Inaktivera lokala konton för att framtvinga all klusteråtkomst med hjälp av Microsoft Entra ID-baserade identiteter. |
Att skydda åtkomsten till Kubernetes API-servern är en av de viktigaste sakerna du kan göra för att skydda klustret. Integrera Kubernetes RBAC med Microsoft Entra-ID för att styra åtkomsten till API-servern. |
(Kluster) Använd Azure-nätverksprinciper eller Calico. | Med hjälp av principer kan du skydda och styra nätverkstrafik mellan poddar i ett kluster. Calico tillhandahåller en mer omfattande uppsättning funktioner, inklusive principordning och prioritet, neka regler och mer flexibla matchningsregler. |
(Kluster) Skydda kluster och poddar med hjälp av Azure Policy. | Azure Policy kan hjälpa dig att tillämpa tillämpning i stor skala och skydda dina kluster på ett centraliserat och konsekvent sätt. Den kan också styra vilka funktioner poddar beviljas och identifiera om något körs mot företagets princip. |
(Kluster) 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. Information om Linux-baserade containrar finns i Security-containeråtkomst till resurser med hjälp av inbyggda Linux-säkerhetsfunktioner. |
Genom att begränsa behörigheter och undvika användning av rot- eller privilegierad eskalering kan du minska risken för säkerhetsöverträdelser. Du kan se till att den potentiella skadan minimeras även om en container komprometteras. |
(Kluster) Kontrollera utgående klustertrafik genom att se till att klustrets utgående trafik passerar genom en nätverkssäkerhetspunkt, till exempel Azure Firewall- eller en HTTP-proxy. | Genom att dirigera utgående trafik via Azure Firewall eller en HTTP-proxy kan du använda säkerhetsprinciper som förhindrar obehörig åtkomst och dataexfiltrering. Den här metoden förenklar också administrationen av säkerhetsprinciper och gör det enklare att tillämpa konsekventa regler i hela AKS-klustret. |
(Kluster) Använd CSI-drivrutinen med öppen källkod Microsoft Entra-arbetsbelastnings-ID och Secrets Store med Key Vault. | De här funktionerna hjälper dig att skydda och rotera hemligheter, certifikat och anslutningssträngar i Key Vault med hjälp av stark kryptering. De tillhandahåller en åtkomstgranskningslogg och håller kärnhemligheter borta från distributionspipelinen. |
(Kluster) Använd Microsoft Defender för containrar . | Microsoft Defender för containrar hjälper dig att övervaka och upprätthålla säkerheten för dina kluster, containrar och deras program. |
Kostnadsoptimering
Kostnadsoptimering fokuserar på identifiera utgiftsmönster, prioritera investeringar inom kritiska områden och optimera i andra för att uppfylla organisationens budget samtidigt som affärskraven uppfylls.
Designprinciperna för kostnadsoptimering tillhandahåller en övergripande designstrategi för att uppnå dessa mål och göra avvägningar vid behov i den tekniska designen som rör AKS och dess miljö.
Checklista för design
Starta din designstrategi baserat på checklista för designgranskning för kostnadsoptimering av investeringar. Finjustera designen så att arbetsbelastningen är i linje med den budget som allokeras för arbetsbelastningen. Din design bör använda rätt Azure-funktioner, övervaka investeringar och hitta möjligheter att optimera över tid.
(Kluster) Inkludera prisnivåer för AKS- i din kostnadsmodell. Om du vill beräkna kostnader använder du priskalkylatorn Azure och testar olika konfigurations- och betalningsplaner i kalkylatorn.
(Kluster) Hämta de bästa priserna för din arbetsbelastning. Använd lämplig VM SKU för varje nodpool eftersom den direkt påverkar kostnaden för att köra dina arbetsbelastningar. Att välja en virtuell dator med höga prestanda utan korrekt användning kan leda till slösaktiga utgifter. Om du väljer en mindre kraftfull virtuell dator kan det orsaka prestandaproblem och ökad stilleståndstid.
Om du har planerat kapaciteten ordentligt och din arbetsbelastning är förutsägbar och förväntas vara konstant under en längre tid kan du registrera dig för Azure-reservationer eller en sparplan för att spara pengar på dina resurskostnader.
Välj virtuella Azure Spot-datorer för att använda outnyttad Azure-kapacitet med betydande rabatter. Dessa rabatter kan nå upp till 90% av betala per användning-priser. Om Azure behöver kapacitet tillbaka avlägsnar Azure-infrastrukturen de oanvända noderna.
Om du kör AKS lokalt eller på gränsen kan du också använda Azure Hybrid-förmånen för att minska kostnaderna när du kör containerbaserade program i dessa scenarier.
(Kluster och arbetsbelastning) Optimera kostnader för arbetsbelastningskomponenter. Välj den mest kostnadseffektiva regionen för din arbetsbelastning. Utvärdera kraven på kostnad, svarstid och efterlevnad för att säkerställa att du kör din arbetsbelastning kostnadseffektivt och att den inte påverkar dina kunder eller skapar extra nätverksavgifter. Den region där du distribuerar din arbetsbelastning i Azure kan avsevärt påverka kostnaden. På grund av många faktorer varierar kostnaden för resurser för varje region i Azure.
Underhålla små och optimerade avbildningar för att minska kostnaderna eftersom nya noder behöver ladda ned dessa bilder. Misslyckanden eller timeout för användarbegäran när applikationen startar kan leda till överallokering. Skapa avbildningar på ett sätt som gör att containern kan starta så snart som möjligt för att undvika fel och tidsgränser.
Granska rekommendationerna för kostnadsoptimering i Metodtips för övervakning av Kubernetes med Azure Monitor för att fastställa den bästa övervakningsstrategin för dina arbetsbelastningar. Analysera 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 arbetsbelastning) Optimera skalningskostnader för arbetsbelastningar. Överväg alternativa vertikala och horisontella skalningskonfigurationer för att minska skalningskostnaderna samtidigt som alla arbetsbelastningskrav uppfylls. Använd autoskalare för att skala ner när arbetsbelastningar är mindre aktiva.
(Kluster och arbetsbelastning) Samla in och analysera kostnadsdata. Grunden för att aktivera kostnadsoptimering är spridningen av ett kostnadsbesparande kluster. Utveckla ett kostnadseffektivt tänkesätt som omfattar samarbete mellan ekonomi-, drifts- och teknikteam för att öka anpassningen till kostnadsbesparande mål och ge transparens till molnkostnaderna.
Rekommendationer
Rekommendation | Förmån |
---|---|
(Kluster och arbetsbelastning) Anpassa AKS SKU-val och hanterad diskstorlek efter arbetsbelastningskrav. | Genom att matcha ditt val med dina arbetsbelastningskrav ser du till att du inte betalar för onödiga resurser. |
(Kluster) Välj rätt VM-instanstyper för dina AKS-nodpooler. För att fastställa rätt typer av VM-instanser bör du överväga arbetsbelastningsegenskaper, resurskrav och tillgänglighetsbehov. |
Det är viktigt att välja rätt typ av VM-instans 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. Om du väljer en mindre kraftfull instans kan det leda till prestandaproblem och ökad stilleståndstid. |
(Kluster) Välj virtuella datorer baserat på den mer energieffektiva Azure Resource Manager-arkitekturen. AKS stöder att skapa Arm64-nodpooler och en blandning av Intel- och Resource Manager-arkitekturnoder i ett kluster. | Arm64-arkitekturen ger ett bättre förhållande mellan priser och prestanda på grund av lägre energianvändning och effektiva beräkningsprestanda. Dessa funktioner kan ge bättre prestanda till en lägre kostnad. |
(Kluster) Aktivera kluster autoskalare för att automatiskt minska antalet agentnoder på grund av överskott av 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 ökar. |
(Kluster) Aktivera autoprovisionering av nod för att automatisera valet av VM SKU. | Automatisk tilldelning av noder förenklar SKU-urvalsprocessen och beslutar, baserat på krav som krävs av väntande pods, om den optimala virtuella maskinkonfigurationen (VM) för att köra arbetslaster på det mest effektiva och kostnadseffektiva sättet. |
(Arbetsbelastning) Använd HorizontalPodAutoscaler för att justera antalet poddar i en distribution beroende på CPU-användning eller andra mått. | Att automatiskt skala ned antalet poddar när efterfrågan är låg och skala ut när efterfrågan ökar resulterar i en mer kostnadseffektiv drift av din arbetsbelastning. |
(Arbetsbelastning) Använd VerticalPodAutoscaler (förhandsversion) för att optimera dina poddar och dynamiskt ställa in förfrågningar och gränser baserat på historisk användning. | Genom att ange resursbegäranden och begränsningar för containrar för varje arbetsbelastning frigör VerticalPodAutoscaler cpu och minne för andra poddar och hjälper till att säkerställa effektiv användning av dina AKS-kluster. |
(Kluster) Konfigurera AKS-kostnadsanalystillä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. |
Operational Excellence
Operational Excellence fokuserar främst på procedurer för utvecklingsmetoder, observerbarhet och versionshantering.
Designprinciperna för Operational Excellence tillhandahåller en övergripande designstrategi för att uppnå dessa mål för driftskraven för arbetsbelastningen.
Checklista för design
Påbörja din designstrategi baserat på checklistan för designgranskning för Operational Excellence för att definiera processer för observerbarhet, testning och driftsättning. Se bästa metoder för AKS och drifthandbok för dag 2 för att lära dig mer om viktiga överväganden att förstå och implementera.
(Kluster) Implementera en distributionsmetod för infrastruktur som kod (IaC). Använd en deklarativ, mallbaserad distributionsmetod med hjälp av Bicep, Terraform eller liknande verktyg. Kontrollera att alla distributioner är repeterbara, spårbara och lagrade i en källkodslagringsplats. Mer information finns i snabbstarter i AKS-produktdokumentationen.
(Kluster och arbetsbelastning) Automatisera infrastruktur- och arbetsbelastningsdistributioner. Använd standardprogramlösningar för att hantera, integrera och automatisera distributionen av klustret och arbetsbelastningarna. Integrera distributionspipelines med källkontrollsystemet och införliva automatiserade tester.
Skapa en automatiserad process för att säkerställa att dina kluster startas med nödvändiga klusteromfattande konfigurationer och distributioner. Den här processen utförs vanligtvis med gitops.
Använd en repeterbar och automatiserad distributionsprocess för din arbetsbelastning inom livscykeln för programvaruutveckling.
(Kluster och arbetsbelastning) Implementera en omfattande övervakningsstrategi. Samla in loggar och mått för att övervaka hälsotillståndet för arbetsbelastningen, identifiera trender i prestanda och tillförlitlighet och felsöka problem. Granska metodtips för övervakning av Kubernetes med Azure Monitor och Well-Architected -rekommendationerna för att utforma och skapa ett övervakningssystem för att fastställa den bästa övervakningsstrategin för dina arbetsbelastningar.
Aktivera diagnostikinställningar för att säkerställa att kontrollplans- eller kärn-API-serverinteraktioner loggas.
Arbetslasten bör utformas för att generera telemetri som kan samlas in, vilket även bör omfatta livesstatus och beredskapsstatus.
(Kluster och arbetsbelastning) Implementera testning i produktionsstrategier. Testning i produktion använder verkliga distributioner för att verifiera och mäta ett programs beteende och prestanda i produktionsmiljön. Använd metoder för kaosteknik som riktar sig till Kubernetes för att identifiera problem med program- eller plattformstillförlitlighet.
Azure Chaos Studio kan hjälpa till att simulera fel och utlösa haveriberedskapssituationer.
(Kluster och arbetsbelastning) Framtvinga arbetsbelastningsstyrning. Azure Policy hjälper till att säkerställa konsekvent efterlevnad av organisationens standarder, automatiserar tvingande principer och ger centraliserad synlighet och kontroll över dina klusterresurser.
Läs avsnittet Azure-principer om du vill veta mer om de tillgängliga inbyggda principerna för AKS.
(Kluster och arbetsbelastning) Använd stämpelnivå, blågröna distributioner för verksamhetskritiska arbetsbelastningar. En blågrön distributionsmetod på stämpelnivå kan öka förtroendet för att släppa ändringar och aktivera uppgraderingar utan avbrott eftersom kompatibiliteter med underordnade beroenden som Azure-plattformen, resursprovidrar och IaC-moduler kan valideras.
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 arbetsbelastning) Göra arbetsbelastningar mer hållbara. Att göra arbetsbelastningarna mer hållbara och molneffektiva kräver en kombination av kostnadsoptimering, att minska koldioxidutsläppenoch optimera energiförbrukning. Att optimera programmets kostnad är det första steget för att göra arbetsbelastningarna mer hållbara.
Se principer för hållbar programvaruteknik i AKS för att lära dig hur du skapar hållbara och effektiva AKS-arbetsbelastningar.
Rekommendationer
Rekommendation | Förmån |
---|---|
(Kluster) Operationalisera konfigurationsstandarder för kluster och poddar med hjälp av Azure-principer för AKS. | Azure-principer för AKS kan hjälpa dig att tillämpa tillämpning och skydd i stor skala på dina kluster på ett centraliserat och konsekvent sätt. Använd principer för att definiera de behörigheter som beviljas poddar och säkerställa efterlevnad av företagets principer. |
(Arbetsbelastning) Använd Kubernetes Event Driven Autoscaler (KEDA). | MED KEDA kan dina program skalas baserat på händelser, till exempel antalet händelser som bearbetas. Du kan välja från en omfattande katalog med fler än 50 KEDA-skalare. |
Prestandaeffektivitet
Prestandaeffektivitet handlar om upprätthålla användarupplevelsen även när belastningen ökar genom att hantera kapaciteten. Strategin omfattar skalning av resurser, identifiering och optimering av potentiella flaskhalsar och optimering för högsta prestanda.
Designprinciperna för prestandaeffektivitet tillhandahåller en designstrategi på hög nivå för att uppnå dessa kapacitetsmål utifrån den förväntade användningen.
Checklista för design
Starta din designstrategi baserat på checklistan för designgranskning för prestandaeffektivitet för att definiera en baslinje baserat på viktiga prestandaindikatorer för AKS.
(Kluster och arbetsbelastning) Genomföra kapacitetsplanering. Utför och iterera i en detaljerad kapacitetsplansövning som innehåller SKU, autoskalningsinställningar, IP-adressering och redundansöverväganden.
När du har formaliserat kapacitetsplanen uppdaterar du ofta planen genom att kontinuerligt observera resursanvändningen i klustret.
(Kluster) Definiera en skalningsstrategi. Konfigurera skalning för att säkerställa att resurserna justeras effektivt för att uppfylla arbetsbelastningskrav utan överanvändning eller avfall. Använd AKS-funktioner som autoskalning av kluster och HorizontalPodAutoscaler för att dynamiskt möta dina behov av arbetsbelastning med mindre belastning på drift. Optimera din arbetsbelastning så att den fungerar och distribueras effektivt i en container.
Läs guide för skalning och partitionering för att förstå de olika aspekterna av skalningskonfigurationen.
(Kluster och arbetsbelastning) Utför prestandatester. Utför pågående belastningstestaktiviteter som utvärderar både podden och klustrets autoskalning. Jämför resultat med prestandamålen och de etablerade baslinjerna.
(Kluster och arbetsbelastning) Skala arbetsbelastningar och flöden oberoende av varandra. Separera arbetsbelastningar och flöden i olika nodpooler för att tillåta oberoende skalning. Följ riktlinjerna i Optimera arbetsbelastningsdesign med hjälp av flöden för att identifiera och prioritera dina flöden.
Rekommendationer
Rekommendation | Förmån |
---|---|
(Kluster) Aktivera automatisk klusterskalning för för att justera antalet agentnoder automatiskt som svar på arbetsbelastningen. Använd HorizontalPodAutoscaler för att justera antalet poddar i en distribution beroende på CPU-användning eller andra mått. |
Möjligheten att automatiskt skala upp eller skala ned antalet noder och antalet poddar i AKS-klustret gör att du kan köra ett effektivt och kostnadseffektivt kluster. |
(Kluster och arbetsbelastning) Separera arbetsbelastningar i olika nodpooler och överväg skalning av användarnodpoolens. | Till skillnad från systemnodpooler som alltid kräver noder som körs kan du skala upp eller skala ned användarnodpooler. |
(Arbetsbelastning) Använd AKS avancerade scheduler-funktioner för att implementera avancerad utjämning av resurser för arbetsbelastningar som kräver dem. | När du hanterar AKS-kluster måste du ofta isolera team och arbetsbelastningar. Med avancerade funktioner som Kubernetes-schemaläggaren tillhandahåller kan du styra vilka poddar som kan schemaläggas på vissa noder. De låter dig också styra hur multipod-program kan distribueras på lämpligt sätt i klustret. |
(Arbetsbelastning) Använd KEDA- för att skapa en meningsfull regeluppsättning för autoskalning baserat på signaler som är specifika för din arbetsbelastning. | 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. MED KEDA kan dina program skalas baserat på händelser, till exempel antalet meddelanden i en kö eller längden på en ämnesfördröjning. |
Azure-riktlinjer
Azure tillhandahåller en omfattande uppsättning inbyggda principer relaterade till AKS som gäller för Azure-resursen, till exempel vanliga Azure-principer och Azure Policy-tillägget för Kubernetes och i klustret. Många av Azure-resursprinciperna finns i både Granskning/Neka och en Distribuera om det inte finns varianter. Förutom de inbyggda Azure Policy-definitionerna kan du skapa anpassade principer för både AKS-resursen och för Azure Policy-tillägget för Kubernetes.
Några av rekommendationerna i den här artikeln kan granskas via Azure Policy. Du kan till exempel kontrollera följande klusterprinciper:
- Kluster har beredskaps- eller livenesskontroller konfigurerade för din poddspecifikation.
- Microsoft Defender för molnbaserade principer.
- Autentiseringsläge och konfigurationsprinciper, till exempel Microsoft Entra ID, RBAC och inaktivera lokal autentisering.
- API-servernätverksåtkomstprinciper, inklusive privata kluster.
- GitOps-konfigurationsprinciper.
- Principer för diagnostikinställningar.
- Begränsningar för AKS-version.
- Förhindra att kommandot anropas.
Du kan också kontrollera följande kluster- och arbetsbelastningsprinciper:
- Säkerhetsinitiativ för Kubernetes-klusterpoddar för Linux-baserade arbetsbelastningar.
- Inkludera kapacitetsprinciper för poddar och containrar, till exempel AppArmor, sysctl, säkerhetstak, SELinux, seccomp, privilegierade containrar och API-autentiseringsuppgifter för automount-kluster.
- Principer för montering, volymdrivrutiner och filsystem.
- Principer för podd- och containernätverk, till exempel värdnätverk, port, tillåtna externa IP-adresser, HTTP:er och interna lastbalanserare.
- Distributionsbegränsningar för namnområde.
- Gränser för processor- och minnesresurser.
Omfattande styrning finns i de inbyggda definitionerna Azure Policy för Kubernetes och andra principer som kan påverka säkerheten för beräkningslagret.
Azure Advisor-rekommendationer
Azure Advisor är en anpassad molnkonsult som hjälper dig att följa metodtipsen för att optimera dina Azure-distributioner. Här följer några rekommendationer som kan hjälpa dig att förbättra aks tillförlitlighet, säkerhet, kostnadseffektivitet, prestanda och driftseffektivitet.
Relaterat innehåll
Tänk på följande artiklar som resurser som visar de rekommendationer som markeras i den här artikeln.
- AKS-baslinjearkitektur
- Avancerad ARKITEKTUR för AKS-mikrotjänster
- AKS-kluster för en PCI-DSS-arbetsbelastning
- AKS-baslinje för kluster i flera regioner
- ACCELERATOR för AKS-landningszon
Skapa implementeringsexpertis med hjälp av följande produktdokumentation: