Azure Well-Architected Framework-beoordeling - Azure Kubernetes Service (AKS)

Dit artikel bevat aanbevolen procedures voor architectuur voor Azure Kubernetes Service (AKS). De richtlijnen zijn gebaseerd op de vijf pijlers van uitstekende architectuur:

  • Betrouwbaarheid
  • Beveiliging
  • Kostenoptimalisatie
  • Operationele uitmuntendheid
  • Efficiëntie van prestaties

We gaan ervan uit dat u de principes van het systeemontwerp begrijpt, praktische kennis hebt van Azure Kubernetes Service en goed vertrouwd bent met de functies ervan. Zie Azure Kubernetes Service voor meer informatie.

Vereisten

Inzicht in de Well-Architected Framework-pijlers kan helpen bij het produceren van een hoogwaardige, stabiele en efficiënte cloudarchitectuur. We raden u aan uw workload te controleren met behulp van de Beoordelingsevaluatie van Azure Well-Architected Framework .

Voor de context kunt u overwegen om een referentiearchitectuur te bekijken die deze overwegingen in het ontwerp weerspiegelt. U wordt aangeraden te beginnen met de basislijnarchitectuur voor een AKS-cluster (Azure Kubernetes Service) en microservicesarchitectuur op Azure Kubernetes Service. Bekijk ook de AKS-landingszoneversneller, die een architectuurbenadering en referentie-implementatie biedt om landingszoneabonnementen voor te bereiden voor een AKS-cluster (scalable Azure Kubernetes Service).

Betrouwbaarheid

In de cloud erkennen we dat er fouten optreden. In plaats van fouten helemaal te proberen te voorkomen, is het doel de effecten van een onderdeel met een storing te beperken. Gebruik de volgende informatie om mislukte exemplaren te minimaliseren.

Bij het bespreken van betrouwbaarheid met Azure Kubernetes Service is het belangrijk om onderscheid te maken tussen de betrouwbaarheid van clusters en de betrouwbaarheid van workloads. Cluster betrouwbaarheid is een gedeelde verantwoordelijkheid tussen de clusterbeheerder en hun resourceprovider, terwijl de betrouwbaarheid van workloads het domein van een ontwikkelaar is. Azure Kubernetes Service heeft overwegingen en aanbevelingen voor beide rollen.

In de ontwerpcontrolelijst en de lijst met aanbevelingen hieronder worden bijschriften gedaan om aan te geven of elke keuze van toepassing is op clusterarchitectuur, workloadarchitectuur of beide.

Controlelijst voor ontwerp

  • Clusterarchitectuur: Gebruik beschikbaarheidszones voor uw AKS-clusters voor kritieke workloads.
  • Clusterarchitectuur: Plan de IP-adresruimte om ervoor te zorgen dat uw cluster betrouwbaar kan worden geschaald, inclusief het verwerken van failoververkeer in topologieën met meerdere clusters.
  • Clusterarchitectuur:Schakel Container Insights in om uw cluster te bewaken en waarschuwingen te configureren voor gebeurtenissen die invloed hebben op de betrouwbaarheid.
  • Workloadarchitectuur: Zorg ervoor dat workloads zijn gebouwd ter ondersteuning van horizontaal schalen en toepassingsgereedheid en -status rapporteren.
  • Cluster- en workloadarchitecturen: Zorg ervoor dat uw workload wordt uitgevoerd op gebruikersknooppuntgroepen en kies de juiste grootte-SKU. Neem minimaal twee knooppunten op voor gebruikersknooppuntgroepen en drie knooppunten voor de systeemknooppuntgroep.
  • Clusterarchitectuur: Gebruik de SLA voor uptime van AKS om te voldoen aan de beschikbaarheidsdoelen voor productieworkloads.

Aanbevelingen voor AKS-configuratie

Bekijk de volgende tabel met aanbevelingen om uw AKS-configuratie te optimaliseren voor betrouwbaarheid.

Aanbeveling Voordeel
Cluster- en workloadarchitecturen: Beheer podplanning met behulp van knooppuntkiezers en affiniteit. Hiermee kan de Kubernetes-planner workloads logisch isoleren op hardware in het knooppunt. In tegenstelling tot toleranties kunnen pods zonder een overeenkomende knooppuntkiezer worden gepland op gelabelde knooppunten, waardoor ongebruikte resources op de knooppunten kunnen worden verbruikt, maar prioriteit wordt toegekend aan pods die de overeenkomende knooppuntkiezer definiëren. Gebruik knooppuntaffiniteit voor meer flexibiliteit, zodat u kunt definiëren wat er gebeurt als de pod niet kan worden gekoppeld aan een knooppunt.
Clusterarchitectuur: Zorg voor de juiste selectie van de netwerkinvoegtoepassing op basis van netwerkvereisten en clustergrootte. Azure CNI is vereist voor specifieke scenario's, bijvoorbeeld op Windows gebaseerde knooppuntgroepen, specifieke netwerkvereisten en Kubernetes-netwerkbeleid. Raadpleeg Kubenet versus Azure CNI voor meer informatie.
Cluster- en workloadarchitecturen: Gebruik de SLA voor AKS-uptime voor clusters op productieniveau. De SLA voor uptime van AKS garandeert het volgende:
- 99.95%beschikbaarheid van het Kubernetes API-servereindpunt voor AKS-clusters die gebruikmaken van Azure Beschikbaarheidszones, of
- 99.9%beschikbaarheid voor AKS-clusters die geen gebruik maken van Azure Beschikbaarheidszones.
Cluster- en workloadarchitecturen: Configureer de bewaking van het cluster met Container Insights. Container insights helpen bij het bewaken van de status en prestaties van controllers, knooppunten en containers die beschikbaar zijn in Kubernetes via de API voor metrische gegevens. Integratie met Prometheus maakt het verzamelen van metrische gegevens voor toepassingen en workloads mogelijk.
Clusterarchitectuur: Gebruik beschikbaarheidszones om de tolerantie binnen een Azure-regio te maximaliseren door AKS-agentknooppunten te distribueren over fysiek gescheiden datacenters. Door knooppuntgroepen over meerdere zones te spreiden, blijven knooppunten in één knooppuntgroep actief, zelfs als een andere zone is uitgevallen. Als er colokaliteitsvereisten bestaan, kan een reguliere AKS-implementatie op basis van VMSS in één zone of nabijheidsplaatsingsgroepen worden gebruikt om latentie tussen knooppunten te minimaliseren.
Clusterarchitectuur: Implementeer een strategie voor meerdere regio's door AKS-clusters te implementeren die zijn geïmplementeerd in verschillende Azure-regio's om de beschikbaarheid te maximaliseren en bedrijfscontinuïteit te bieden. Internetgerichte workloads moeten gebruikmaken van Azure Front Door of Azure Traffic Manager om verkeer wereldwijd te routeren tussen AKS-clusters.
Cluster- en workloadarchitecturen: Definieer podresourceaanvragen en -limieten in toepassingsimplementatiemanifesten en dwing af met Azure Policy. Limieten voor container-CPU en geheugenresources zijn nodig om resourceuitputting in uw Kubernetes-cluster te voorkomen.
Cluster- en workloadarchitecturen: Houd de systeemknooppuntgroep geïsoleerd van toepassingsworkloads. Systeemknooppuntgroepen vereisen een VM-SKU van ten minste 2 vCPU's en 4 GB geheugen, maar 4 vCPU's of meer wordt aanbevolen. Raadpleeg systeem- en gebruikersknooppuntgroepen voor gedetailleerde vereisten.
Cluster- en workloadarchitecturen: Scheid toepassingen naar toegewezen knooppuntgroepen op basis van specifieke vereisten. Toepassingen kunnen dezelfde configuratie delen en HEBBEN VM's met GPU, geoptimaliseerde CPU of geoptimaliseerde VM's nodig, of de mogelijkheid om naar nul te schalen. Vermijd een groot aantal knooppuntgroepen om extra beheeroverhead te verminderen.
Clusterarchitectuur: Gebruik een NAT-gateway voor clusters die workloads uitvoeren die veel gelijktijdige uitgaande verbindingen maken. Om betrouwbaarheidsproblemen met Azure Load Balancer beperkingen met veel gelijktijdig uitgaand verkeer te voorkomen, gebruiken we in plaats daarvan een NAT-gateway ter ondersteuning van betrouwbaar uitgaand verkeer op schaal.

Zie Principes van de pijler betrouwbaarheid voor meer suggesties.

Azure Policy

Azure Kubernetes Service biedt een breed scala aan ingebouwde Azure-beleidsregels die van toepassing zijn op zowel de Azure-resource zoals typische Azure-beleidsregels als, met behulp van de Azure Policy-invoegtoepassing voor Kubernetes, ook binnen het cluster. Er is een groot aantal beleidsregels en de belangrijkste beleidsregels met betrekking tot deze pijler worden hier samengevat. Zie ingebouwde beleidsdefinities voor Kubernetes voor een gedetailleerdere weergave.

Cluster- en workloadarchitectuur

  • Clusters hebben gereedheids- of statustests voor liveness die zijn geconfigureerd voor uw podspecificatie.

Naast de ingebouwde Azure Policy-definities kan aangepast beleid worden gemaakt voor zowel de AKS-resource als voor de Azure Policy-invoegtoepassing voor Kubernetes. Hiermee kunt u aanvullende betrouwbaarheidsbeperkingen toevoegen die u wilt afdwingen in uw cluster- en workloadarchitectuur.

Beveiliging

Beveiliging is een van de belangrijkste aspecten van een architectuur. Als u wilt onderzoeken hoe AKS de beveiliging van uw toepassingsworkload kan verbeteren, raden we u aan de principes van het beveiligingsontwerp door te nemen. Als uw Azure Kubernetes Service-cluster moet worden ontworpen om een gevoelige workload uit te voeren die voldoet aan de wettelijke vereisten van de Payment Card Industry Data Security Standard (PCI-DSS 3.2.1), raadpleegt u AKS-gereguleerd cluster voor PCI-DSS 3.2.1.

Raadpleeg Azure Government IL5-isolatievereisten voor meer informatie over ondersteuning en vereisten voor DoD Impact Level 5 (IL5) met AKS.

Bij het bespreken van beveiliging met Azure Kubernetes Service is het belangrijk om onderscheid te maken tussen clusterbeveiliging en workloadbeveiliging. Clusterbeveiliging is een gedeelde verantwoordelijkheid tussen de clusterbeheerder en hun resourceprovider, terwijl workloadbeveiliging het domein is van een ontwikkelaar. Azure Kubernetes Service heeft overwegingen en aanbevelingen voor beide rollen.

In de ontwerpcontrolelijst en de lijst met aanbevelingen hieronder worden bijschriften gedaan om aan te geven of elke keuze van toepassing is op clusterarchitectuur, workloadarchitectuur of beide.

Controlelijst voor ontwerp

  • Clusterarchitectuur: Gebruik Beheerde identiteiten om te voorkomen dat serviceprincipes worden beheerd en gedraaid.
  • Clusterarchitectuur: Gebruik Op rollen gebaseerd toegangsbeheer (RBAC) van Kubernetes met Microsoft Entra ID voor minimale toegangsrechten en minimaliseer het verlenen van beheerdersbevoegdheden om configuratie- en geheimentoegang te beveiligen.
  • Clusterarchitectuur: Gebruik Microsoft Defender voor containers met Azure Sentinel om bedreigingen te detecteren en snel te reageren op bedreigingen in uw cluster en workloads die erop worden uitgevoerd.
  • Clusterarchitectuur: Implementeer een privé-AKS-cluster om ervoor te zorgen dat clusterbeheerverkeer naar uw API-server in uw particuliere netwerk blijft. Of gebruik de acceptatielijst van de API-server voor niet-privéclusters.
  • Workloadarchitectuur: Gebruik een Web Application Firewall om HTTP(S)-verkeer te beveiligen.
  • Workloadarchitectuur: Zorg ervoor dat uw CI/CID-pijplijn is beveiligd met containerbewust scannen.

Aanbevelingen

Bekijk de volgende tabel met aanbevelingen om uw AKS-configuratie te optimaliseren voor beveiliging.

Aanbeveling Voordeel
Clusterarchitectuur: Gebruik Microsoft Entra-integratie. Het gebruik van Microsoft Entra ID centraliseert het identiteitsbeheeronderdeel. Elke wijziging in de gebruikersaccount- of groepsstatus wordt automatisch bijgewerkt bij toegang tot het AKS-cluster. De ontwikkelaars en toepassingseigenaren van uw Kubernetes-cluster hebben toegang nodig tot verschillende resources.
Clusterarchitectuur: Verifieer met Microsoft Entra ID voor Azure Container Registry. AKS en Microsoft Entra ID maken verificatie met Azure Container Registry mogelijk zonder het gebruik van imagePullSecrets geheimen. Raadpleeg Verifiëren met Azure Container Registry van Azure Kubernetes Service voor meer informatie.
Clusterarchitectuur: Beveilig netwerkverkeer naar uw API-server met een privé-AKS-cluster. Netwerkverkeer tussen uw knooppuntgroepen en de API-server gaat standaard naar het Microsoft-backbone-netwerk; door een privécluster te gebruiken, kunt u ervoor zorgen dat netwerkverkeer naar uw API-server alleen in het particuliere netwerk blijft.
Clusterarchitectuur: Gebruik voor niet-privé-AKS-clusters geautoriseerde IP-bereiken van de API-server. Wanneer u openbare clusters gebruikt, kunt u nog steeds het verkeer beperken dat de API-server van uw clusters kan bereiken met behulp van de functie geautoriseerd IP-bereik. Neem bronnen op zoals de openbare IP's van uw implementatie-buildagents, operations management en het uitgangspunt van knooppuntgroepen (zoals Azure Firewall).
Clusterarchitectuur: Beveilig de API-server met Microsoft Entra RBAC. Het beveiligen van de toegang tot de Kubernetes API-server is een van de belangrijkste dingen die u kunt doen om uw cluster te beveiligen. Integreer Op rollen gebaseerd toegangsbeheer (RBAC) van Kubernetes met Microsoft Entra ID om de toegang tot de API-server te beheren. Schakel lokale accounts uit om alle clustertoegang af te dwingen met behulp van op Microsoft Entra ID gebaseerde identiteiten.
Clusterarchitectuur: Gebruik Azure-netwerkbeleid of Calico. Netwerkverkeer tussen pods in een cluster beveiligen en beheren.
Clusterarchitectuur: Clusters en pods beveiligen met Azure Policy. Azure Policy kunt u helpen om op een gecentraliseerde, consistente manier afdwinging en beveiliging op schaal toe te passen op uw clusters. Het kan ook bepalen welke functiepods worden verleend en of er iets wordt uitgevoerd in strijd met het bedrijfsbeleid.
Clusterarchitectuur: Beveilig containertoegang tot resources. Beperk de toegang tot acties die containers kunnen uitvoeren. Geef het minste aantal machtigingen op en vermijd het gebruik van escalatie met bevoegdheden of hoofdmap.
Workloadarchitectuur: Gebruik een Web Application Firewall om HTTP(S)-verkeer te beveiligen. Als u binnenkomend verkeer wilt scannen op mogelijke aanvallen, gebruikt u een webtoepassingsfirewall zoals Azure Web Application Firewall (WAF) op Azure Application Gateway of Azure Front Door.
Clusterarchitectuur: Uitgaand clusterverkeer beheren. Zorg ervoor dat het uitgaande verkeer van uw cluster wordt doorgegeven via een netwerkbeveiligingspunt, zoals Azure Firewall of een HTTP-proxy.
Clusterarchitectuur: Gebruik het opensource-Microsoft Entra Workload-ID- en Secrets Store CSI-stuurprogramma met Azure Key Vault. Geheimen, certificaten en verbindingsreeksen beveiligen en roteren in Azure Key Vault met sterke versleuteling. Biedt een toegangsauditlogboek en houdt kerngeheimen buiten de implementatiepijplijn.
Clusterarchitectuur: Gebruik Microsoft Defender voor containers. Bewaak en onderhoud de beveiliging van uw clusters, containers en hun toepassingen.

Zie Principes van de beveiligingspijler voor meer suggesties.

Azure Advisor helpt de Azure Kubernetes-service te garanderen en te verbeteren. Het doet aanbevelingen voor een subset van de items die worden vermeld in de onderstaande beleidssectie, zoals clusters zonder geconfigureerde RBAC, ontbrekende Microsoft Defender configuratie, onbeperkte netwerktoegang tot de API-server. Op dezelfde manier worden er workloadaanbevelingsaanbevelingspunten voor enkele van de podbeveiligingsinitiatiefitems weergegeven. Bekijk de aanbevelingen.

Beleidsdefinities

Azure Policy biedt verschillende ingebouwde beleidsdefinities die van toepassing zijn op zowel de Azure-resource als AKS, zoals standaardbeleidsdefinities, en het gebruik van de Azure Policy-invoegtoepassing voor Kubernetes, ook binnen het cluster. Veel van de Azure-resourcebeleidsregels zijn beschikbaar in zowel Audit/Deny, als in een variant Deploy If Not Exists .

Er is een groot aantal beleidsregels en de belangrijkste beleidsregels met betrekking tot deze pijler worden hier samengevat. Zie ingebouwde beleidsdefinities voor Kubernetes voor een gedetailleerdere weergave.

Clusterarchitectuur

  • Microsoft Defender voor cloudbeleid
  • Verificatiemodus en configuratiebeleidsregels (Microsoft Entra ID, RBAC, lokale verificatie uitschakelen)
  • Netwerktoegangsbeleid voor API Server, inclusief privéclusters

Cluster- en workloadarchitectuur

  • Beveiligingsinitiatieven voor Kubernetes-clusterpods op Basis van Linux-workloads
  • Beleid voor pod- en containerfuncties opnemen, zoals AppArmor, sysctl, beveiligingslimieten, SELinux, seccomp, bevoegde containers, automatische koppeling van API-referenties voor clusters
  • Beleid voor koppelen, volumestuurprogramma's en bestandssysteem
  • Pod-/containernetwerkbeleid, zoals hostnetwerk, poort, toegestane externe IP-adressen, HTTP's en interne load balancers

Azure Kubernetes Service implementaties maken vaak ook gebruik van Azure Container Registry voor Helm-grafieken en containerinstallatiekopieën. Azure Container Registry ondersteunt ook een breed scala aan Azure-beleidsregels die netwerkbeperkingen, toegangsbeheer en Microsoft Defender voor cloud omvatten, die een aanvulling vormen op een beveiligde AKS-architectuur.

Naast het ingebouwde beleid kan aangepaste beleidsregels worden gemaakt voor zowel de AKS-resource als voor de Azure Policy-invoegtoepassing voor Kubernetes. Hiermee kunt u aanvullende beveiligingsbeperkingen toevoegen die u wilt afdwingen in uw cluster- en workloadarchitectuur.

Zie AKS-beveiligingsconcepten en evalueer onze aanbevelingen voor beveiligingsmaatregelen op basis van de CIS Kubernetes-benchmark voor meer suggesties.

Kostenoptimalisatie

Kostenoptimalisatie gaat over het begrijpen van uw verschillende configuratieopties en aanbevolen aanbevolen procedures om onnodige kosten te verminderen en operationele efficiëntie te verbeteren. Voordat u de richtlijnen in dit artikel volgt, raden we u aan de volgende resources door te nemen:

Bij het bespreken van kostenoptimalisatie met Azure Kubernetes Service is het belangrijk om onderscheid te maken tussen de kosten van clusterresources en de kosten van workloadresources. Clusterresources zijn een gedeelde verantwoordelijkheid tussen de clusterbeheerder en hun resourceprovider, terwijl workloadresources het domein van een ontwikkelaar zijn. Azure Kubernetes Service heeft overwegingen en aanbevelingen voor beide rollen.

In de ontwerpcontrolelijst en de lijst met aanbevelingen worden bijschriften gemaakt om aan te geven of elke keuze van toepassing is op clusterarchitectuur, workloadarchitectuur of beide.

Voor optimalisatie van clusterkosten gaat u naar de Azure-prijscalculator en selecteert u Azure Kubernetes Service uit de beschikbare producten. U kunt verschillende configuratie- en betalingsplannen testen in de calculator.

Controlelijst voor ontwerp

  • Clusterarchitectuur: Gebruik de juiste VM-SKU per knooppuntgroep en gereserveerde instanties waar langetermijncapaciteit wordt verwacht.
  • Cluster- en workloadarchitecturen: Gebruik de juiste beheerde schijflaag en -grootte.
  • Clusterarchitectuur: Bekijk metrische prestatiegegevens, te beginnen met CPU, geheugen, opslag en netwerk, om mogelijkheden voor kostenoptimalisatie per cluster, knooppunten en naamruimte te identificeren.
  • Cluster- en workloadarchitectuur: Gebruik automatische schaalaanpassing om in te schalen wanneer workloads minder actief zijn.

Aanbevelingen

Bekijk de volgende tabel met aanbevelingen om uw AKS-configuratie te optimaliseren voor kosten.

Aanbeveling Voordeel
Cluster- en workloadarchitecturen: Stem de SKU-selectie en de grootte van de beheerde schijf uit met de workloadvereisten. Door uw selectie af te passen aan uw workloadvereisten, zorgt u ervoor dat u niet betaalt voor overbodige resources.
Clusterarchitectuur: Selecteer het juiste type exemplaar van de virtuele machine. Het selecteren van het juiste type virtuele-machineexemplaar is essentieel, omdat dit rechtstreeks van invloed is op de kosten van het uitvoeren van toepassingen op AKS. Het kiezen van een exemplaar met hoge prestaties zonder het juiste gebruik kan leiden tot verspillende uitgaven, terwijl het kiezen van een krachtig exemplaar kan leiden tot prestatieproblemen en verhoogde downtime. Als u het juiste type exemplaar van de virtuele machine wilt bepalen, moet u rekening houden met workloadkenmerken, resourcevereisten en beschikbaarheidsbehoeften.
Clusterarchitectuur: Selecteer virtuele machines op basis van de Arm-architectuur. AKS ondersteunt het maken van ARM64 Ubuntu-agentknooppunten, evenals een combinatie van Intel- en ARM-architectuurknooppunten binnen een cluster die betere prestaties tegen lagere kosten kunnen leveren.
Clusterarchitectuur: Selecteer Azure Spot Virtual Machines. Met spot-VM's kunt u profiteren van niet-gebruikte Azure-capaciteit met aanzienlijke kortingen (tot 90% in vergelijking met prijzen voor betalen per gebruik). Als Azure weer capaciteit nodig heeft, worden de spot-knooppunten door de Azure-infrastructuur verwijderd.
Clusterarchitectuur: Selecteer de juiste regio. Vanwege veel factoren variëren de kosten van resources per regio in Azure. Evalueer de kosten, latentie en nalevingsvereisten om ervoor te zorgen dat u uw workload rendabel uitvoert en dat dit geen invloed heeft op uw eindgebruikers en geen extra netwerkkosten in rekening brengt.
Workloadarchitectuur: Onderhoud kleine en geoptimaliseerde afbeeldingen. Het stroomlijnen van uw installatiekopieën helpt de kosten te verlagen, omdat nieuwe knooppunten deze installatiekopieën moeten downloaden. Bouw installatiekopieën zo dat de container zo snel mogelijk kan worden gestart om fouten of time-outs van gebruikersaanvragen te voorkomen terwijl de toepassing wordt gestart, wat kan leiden tot overprovisioning.
Clusterarchitectuur: Schakel Automatische schaalaanpassing van clusters in om automatisch het aantal agentknooppunten te verminderen als reactie op overtollige resourcecapaciteit. Door het aantal knooppunten in uw AKS-cluster automatisch omlaag te schalen, kunt u een efficiënt cluster uitvoeren wanneer de vraag laag is en omhoog schalen wanneer de vraag terugkeert.
Clusterarchitectuur: Schakel Automatische inrichting van knooppunten in om de selectie van VM-SKU's te automatiseren. Automatische inrichting van knooppunten vereenvoudigt het selectieproces van de SKU en bepaalt, op basis van in behandeling zijnde podresourcevereisten, de optimale VM-configuratie om workloads op de meest efficiënte en kosteneffectieve manier uit te voeren.
Workloadarchitectuur: Gebruik de horizontale automatische schaalaanpassing van pods. Pas het aantal pods in een implementatie aan, afhankelijk van het CPU-gebruik of andere geselecteerde metrische gegevens, die inschalingsbewerkingen van clusters ondersteunen.
Workloadarchitectuur:Verticale automatische schaalaanpassing van pods gebruiken (preview). Uw pods rechten geven en aanvragen en limieten dynamisch instellen op basis van historisch gebruik.
Workloadarchitectuur: Gebruik Kubernetes Event Driven AutosCaling (KEDA). Schaal op basis van het aantal gebeurtenissen dat wordt verwerkt. Kies uit een uitgebreide catalogus van meer dan 50 KEDA-scalers.
Cluster- en workloadarchitecturen: Maak gebruik van een financiële discipline en culturele praktijk in de cloud om het eigendom van cloudgebruik te stimuleren. De basis van het inschakelen van kostenoptimalisatie is de spreiding van een kostenbesparend cluster. Een benadering voor financiële bewerkingen (FinOps) wordt vaak gebruikt om organisaties te helpen de cloudkosten te verlagen. Het is een praktijk waarbij wordt samengewerkt tussen financiële, operationele en technische teams om afstemming op kostenbesparingsdoelen te stimuleren en transparantie te brengen in de cloudkosten.
Clusterarchitectuur: Meld u aan voor Azure Reservations of Azure Savings Plan. Als u de capaciteit goed hebt gepland, is uw workload voorspelbaar en bestaat deze gedurende een langere periode. Meld u aan voor een Azure-reservering of een besparingsplan om uw resourcekosten verder te verlagen.
Clusterarchitectuur: Configureer de bewaking van het cluster met Container Insights. Container Insights biedt bruikbare inzichten in uw clusters inactieve en niet-toegewezen resources. Container Insights ondersteunt ook het verzamelen van metrische prometheus-gegevens en kan worden geïntegreerd met Azure Managed Grafana om een holistische weergave van uw toepassing en infrastructuur te krijgen.
Clusterarchitectuur: Configureer de AKS Cost Analysis-invoegtoepassing. Met de clusterextensie kostenanalyse kunt u gedetailleerd inzicht krijgen in de kosten die zijn gekoppeld aan verschillende Kubernetes-resources in uw clusters of naamruimten.

Zie Principes van de pijler kostenoptimalisatie en Kosten optimaliseren in Azure Kubernetes Service voor meer suggesties.

Beleidsdefinities

Hoewel er geen ingebouwd beleid is dat is gerelateerd aan kostenoptimalisatie, kan aangepast beleid worden gemaakt voor zowel de AKS-resource als voor de Azure Policy-invoegtoepassing voor Kubernetes. Hiermee kunt u extra beperkingen voor kostenoptimalisatie toevoegen die u wilt afdwingen in uw cluster- en workloadarchitectuur.

Cloudefficiëntie

Om workloads duurzamer en cloudefficiënter te maken, moeten de inspanningen rond kostenoptimalisatie, het verminderen van koolstofuitstoot en het optimaliseren van het energieverbruik worden gecombineerd. Het optimaliseren van de kosten van de toepassing is de eerste stap in het verduurzamen van workloads.

Meer informatie over het bouwen van duurzame en efficiënte AKS-workloads in duurzame software-engineeringprincipes in Azure Kubernetes Service (AKS).

Operationele uitmuntendheid

Controle en diagnose zijn essentieel. U kunt niet alleen prestatiestatistieken meten, maar ook metrische gegevens gebruiken om problemen snel op te lossen. We raden u aan de ontwerpprincipes voor operationele uitmuntendheid en de dag-2-handleiding voor bewerkingen door te nemen.

Bij het bespreken van operationele uitmuntendheid met Azure Kubernetes Service is het belangrijk om onderscheid te maken tussen operationele uitmuntendheid van clusters en operationele excellentie van workloads. Clusterbewerkingen zijn een gedeelde verantwoordelijkheid tussen de clusterbeheerder en hun resourceprovider, terwijl workloadbewerkingen het domein van een ontwikkelaar zijn. Azure Kubernetes Service heeft overwegingen en aanbevelingen voor beide rollen.

In de ontwerpcontrolelijst en de lijst met aanbevelingen hieronder worden bijschriften gedaan om aan te geven of elke keuze van toepassing is op clusterarchitectuur, workloadarchitectuur of beide.

Controlelijst voor ontwerp

  • Clusterarchitectuur: Gebruik een implementatie op basis van sjablonen met Bicep, Terraform of andere. Zorg ervoor dat alle implementaties herhaalbaar, traceerbaar en opgeslagen zijn in een broncodeopslagplaats.
  • Clusterarchitectuur: Bouw een geautomatiseerd proces om ervoor te zorgen dat uw clusters worden opgestart met de benodigde configuraties en implementaties voor het hele cluster. Dit wordt vaak uitgevoerd met behulp van GitOps.
  • Workloadarchitectuur: Gebruik een herhaalbare en geautomatiseerde implementatieprocessen voor uw workload binnen de levenscyclus van uw softwareontwikkeling.
  • Clusterarchitectuur: Schakel diagnostische instellingen in om ervoor te zorgen dat interacties met het besturingsvlak of de belangrijkste API-server worden geregistreerd.
  • Cluster- en workloadarchitecturen:Schakel Container Insights in om metrische gegevens, logboeken en diagnostische gegevens te verzamelen om de beschikbaarheid en prestaties te bewaken van het cluster en de workloads die erop worden uitgevoerd.
  • Workloadarchitectuur: De workload moet zijn ontworpen om telemetrie te verzenden die kan worden verzameld, waaronder ook levendigheid en gereedheidsstatussen.
  • Cluster- en workloadarchitecturen: Gebruik chaos-engineeringprocedures die gericht zijn op Kubernetes om problemen met de betrouwbaarheid van toepassingen of platforms te identificeren.
  • Workloadarchitectuur: Optimaliseer uw workload om efficiënt te werken en te implementeren in een container.
  • Cluster- en workloadarchitecturen: Cluster- en workloadbeheer afdwingen met behulp van Azure Policy.

Aanbevelingen

Bekijk de volgende tabel met aanbevelingen om uw AKS-configuratie te optimaliseren voor bewerkingen.

Aanbeveling Voordeel
Cluster- en workloadarchitecturen: Raadpleeg de documentatie over best practices voor AKS . Als u toepassingen wilt bouwen en uitvoeren in AKS, zijn er belangrijke overwegingen die u moet begrijpen en implementeren. Deze gebieden omvatten multitenancy- en scheduler-functies, cluster- en podbeveiliging, of bedrijfscontinuïteit en herstel na noodgevallen.
Cluster- en workloadarchitecturen: Bekijk Azure Chaos Studio. Azure Chaos Studio kan helpen fouten te simuleren en herstel na noodgevallen te activeren.
Cluster- en workloadarchitecturen: Configureer de bewaking van het cluster met Container Insights. Met Container Insights kunt u de prestaties van containers bewaken door metrische gegevens over geheugen en processor te verzamelen van controllers, knooppunten en containers die beschikbaar zijn in Kubernetes via de Api voor metrische gegevens en containerlogboeken.
Workloadarchitectuur: Bewaak de prestaties van toepassingen met Azure Monitor. Configureer Application Insights voor bewaking op basis van code van toepassingen die worden uitgevoerd in een AKS-cluster.
Workloadarchitectuur: Scraping van metrische Prometheus-gegevens configureren met Container Insights. Container insights, die deel uitmaken van Azure Monitor, bieden een naadloze onboarding-ervaring voor het verzamelen van metrische prometheus-gegevens. Naslaginformatie Scraping van metrische Prometheus-gegevens configureren voor meer informatie.
Clusterarchitectuur: Implementeer een strategie voor meerdere regio's door AKS-clusters te implementeren die zijn geïmplementeerd in verschillende Azure-regio's om de beschikbaarheid te maximaliseren en bedrijfscontinuïteit te bieden. Internetgerichte workloads moeten gebruikmaken van Azure Front Door of Azure Traffic Manager om verkeer wereldwijd te routeren tussen AKS-clusters.
Clusterarchitectuur: Implementeer configuratiestandaarden voor clusters en pods met Azure Policy. Azure Policy kunt u helpen om op een gecentraliseerde, consistente manier afdwinging en beveiliging op schaal toe te passen op uw clusters. Het kan ook bepalen welke functiepods worden verleend en of er iets wordt uitgevoerd in strijd met het bedrijfsbeleid.
Workloadarchitectuur: Gebruik platformmogelijkheden in uw release-engineeringproces. Kubernetes en toegangsbeheerobjectcontrollers ondersteunen veel geavanceerde implementatiepatronen voor opname in uw release-engineeringproces. Denk aan patronen zoals blauw-groene implementaties of canary-releases.
Cluster- en workloadarchitecturen: Gebruik blauw/groen-implementaties op stempelniveau voor bedrijfskritieke workloads. Automatiseer uw bedrijfskritieke ontwerpgebieden, inclusief implementatie en testen.

Zie Principes van de pijler operationele uitmuntendheid voor meer suggesties.

Azure Advisor doet ook aanbevelingen voor een subset van de items die worden vermeld in de onderstaande beleidssectie, zoals niet-ondersteunde AKS-versies en niet-geconfigureerde diagnostische instellingen. Op dezelfde manier doet het aanbevelingen voor de workload rond het gebruik van de standaardnaamruimte.

Beleidsdefinities

Azure Policy biedt verschillende ingebouwde beleidsdefinities die van toepassing zijn op zowel de Azure-resource als AKS, zoals standaardbeleidsdefinities, en het gebruik van de Azure Policy-invoegtoepassing voor Kubernetes, ook binnen het cluster. Veel van de Azure-resourcebeleidsregels zijn beschikbaar in zowel Audit/Deny, als in een variant Deploy If Not Exists .

Er is een groot aantal beleidsregels en de belangrijkste beleidsregels met betrekking tot deze pijler worden hier samengevat. Zie ingebouwde beleidsdefinities voor Kubernetes voor een gedetailleerdere weergave.

Clusterarchitectuur

  • Azure Policy-invoegtoepassing voor Kubernetes
  • GitOps-configuratiebeleid
  • Beleid voor diagnostische instellingen
  • AKS-versiebeperkingen
  • Aanroepen van opdracht voorkomen

Cluster- en workloadarchitectuur

  • Implementatiebeperkingen voor naamruimten

Naast het ingebouwde beleid kan aangepaste beleidsregels worden gemaakt voor zowel de AKS-resource als voor de Azure Policy-invoegtoepassing voor Kubernetes. Hiermee kunt u aanvullende beveiligingsbeperkingen toevoegen die u wilt afdwingen in uw cluster- en workloadarchitectuur.

Prestatie-efficiëntie

Prestatie-efficiëntie is de mogelijkheid om op efficiënte wijze uw werkbelasting te schalen om te voldoen aan de vereisten die gebruikers eraan stellen. We raden u aan de principes voor efficiëntie van prestaties te bekijken.

Bij het bespreken van prestaties met Azure Kubernetes Service is het belangrijk om onderscheid te maken tussen clusterprestaties en workloadprestaties. Clusterprestaties zijn een gedeelde verantwoordelijkheid tussen de clusterbeheerder en hun resourceprovider, terwijl workloadprestaties het domein van een ontwikkelaar zijn. Azure Kubernetes Service heeft overwegingen en aanbevelingen voor beide rollen.

In de ontwerpcontrolelijst en de lijst met aanbevelingen hieronder worden bijschriften gedaan om aan te geven of elke keuze van toepassing is op clusterarchitectuur, workloadarchitectuur of beide.

Controlelijst voor ontwerp

Als u ontwerpkeuzen maakt voor Azure Kubernetes Service, raadpleegt u de principes voor prestatie-efficiëntie.

  • Cluster- en workloadarchitecturen: Voer een gedetailleerde oefening voor capaciteitsplannen uit en voer deze uit, waaronder SKU, instellingen voor automatische schaalaanpassing, IP-adressering en failover-overwegingen.
  • Clusterarchitectuur: Schakel automatische schaalaanpassing van clusters in om automatisch het aantal agentknooppunten aan te passen in reactie op workloadvereisten.
  • Clusterarchitectuur: Gebruik de horizontale automatische schaalaanpassing van pods om het aantal pods in een implementatie aan te passen, afhankelijk van HET CPU-gebruik of andere geselecteerde metrische gegevens.
  • Cluster- en workloadarchitecturen: Voer doorlopende belastingstests uit waarbij zowel de automatische schaalaanpassing van pods als clusters wordt uitgevoerd.
  • Cluster- en workloadarchitecturen: Scheid workloads op in verschillende knooppuntgroepen, zodat onafhankelijke aanroep mogelijk is.

Aanbevelingen

Bekijk de volgende tabel met aanbevelingen om uw Azure Kubernetes Service configuratie voor prestaties te optimaliseren.

Aanbeveling Voordeel
Cluster- en workloadarchitecturen: Een gedetailleerd capaciteitsplan ontwikkelen en voortdurend controleren en herzien. Nadat u uw capaciteitsplan hebt geformaliseerd, moet deze regelmatig worden bijgewerkt door continu het resourcegebruik van het cluster te observeren.
Clusterarchitectuur: Schakel automatische schaalaanpassing van clusters in om het aantal agentknooppunten automatisch aan te passen als reactie op resourcebeperkingen. Met de mogelijkheid om het aantal knooppunten in uw AKS-cluster automatisch omhoog of omlaag te schalen, kunt u een efficiënt, rendabel cluster uitvoeren.
Cluster- en workloadarchitecturen: Scheid workloads op in verschillende knooppuntgroepen en overweeg om gebruikersknooppuntgroepen te schalen . In tegenstelling tot systeemknooppuntgroepen waarvoor altijd actieve knooppunten nodig zijn, kunt u met gebruikersknooppuntgroepen omhoog of omlaag schalen.
Workloadarchitectuur: Geavanceerde AKS-plannerfuncties gebruiken. Helpt bij het beheren van de verdeling van resources voor workloads waarvoor deze zijn vereist.
Workloadarchitectuur: Gebruik zinvolle metrische gegevens voor het schalen van workloads. Niet alle schaalbeslissingen kunnen worden afgeleid van metrische gegevens over CPU of geheugen. Vaak zijn schaaloverwegingen afkomstig van complexere of zelfs externe gegevenspunten. Gebruik KEDA om een zinvolle regelset voor automatisch schalen te maken op basis van signalen die specifiek zijn voor uw workload.

Zie Principes van de prestatie-efficiëntiepijler voor meer suggesties.

Beleidsdefinities

Azure Policy biedt verschillende ingebouwde beleidsdefinities die van toepassing zijn op zowel de Azure-resource als AKS, zoals standaardbeleidsdefinities, en het gebruik van de Azure Policy-invoegtoepassing voor Kubernetes, ook binnen het cluster. Veel van de Azure-resourcebeleidsregels zijn beschikbaar in zowel Audit/Deny, als in een variant Deploy If Not Exists .

Er is een groot aantal beleidsregels en de belangrijkste beleidsregels met betrekking tot deze pijler worden hier samengevat. Zie ingebouwde beleidsdefinities voor Kubernetes voor een gedetailleerdere weergave.

Cluster- en workloadarchitectuur

  • Limieten voor CPU- en geheugenresources

Naast het ingebouwde beleid kan aangepaste beleidsregels worden gemaakt voor zowel de AKS-resource als voor de Azure Policy-invoegtoepassing voor Kubernetes. Hiermee kunt u aanvullende beveiligingsbeperkingen toevoegen die u wilt afdwingen in uw cluster- en workloadarchitectuur.

Aanvullende resources

Richtlijnen voor Azure Architecture Center

Richtlijn voor Cloud Adoption Framework

Volgende stappen