In dit scenario ziet u hoe u een basislijnarchitectuur ontwerpt en implementeert voor Microsoft Azure Kubernetes Service (AKS) die wordt uitgevoerd op Azure Local.
Dit artikel bevat aanbevelingen voor netwerken, beveiliging, identiteit, beheer en bewaking van het cluster op basis van de bedrijfsvereisten van een organisatie. Het maakt deel uit van een richtlijnenset voor architectuurbasislijnen van twee artikelen. Bekijk hier de aanbevelingen voor het netwerkontwerp.
Belangrijk
De informatie in dit artikel is van toepassing op AKS op Azure Stack HCI, versie 22H2 en AKS-HCI op Windows Server. De meest recente versie van AKS wordt uitgevoerd op Het besturingssysteem Azure Stack HCI, versie 23H2. Zie de documentatie AKS op Azure Stack HCI OS, versie 23H2voor meer informatie over de nieuwste versie.
Architectuur
In de volgende afbeelding ziet u de basislijnarchitectuur voor Azure Kubernetes Service in Azure Local of Windows Server 2019/2022 datacenterfailoverclusters:
Een Visio-bestand van deze architectuur downloaden.
De architectuur bestaat uit de volgende onderdelen en mogelijkheden:
- Azure Stack HCI, versie 22H2. Een hypergeconvergeerde infrastructuurclusteroplossing (HCI) die als host fungeert voor gevirtualiseerde Windows- en Linux-workloads en hun opslag in een hybride on-premises omgeving. Een lokaal Azure-exemplaar wordt geïmplementeerd als een cluster met 2-8 knooppunten.
- Azure Kubernetes Service (AKS) op Azure Local. Een on-premises implementatie van AKS, waarmee containertoepassingen op schaal worden uitgevoerd.
- Azure Arc. Een cloudservice die het beheermodel op basis van Azure Resource Manager uitbreidt naar niet-Azure-resources, waaronder niet-Azure-VM's (virtuele machines), Kubernetes-clusters en in containers geplaatste databases.
- Azure Policy. Een cloudservice die helpt bij het afdwingen van organisatiestandaarden en het beoordelen van naleving op schaal door Azure-resources (inclusief Arc)-resources te evalueren op de eigenschappen van deze resources voor bedrijfsregels. Deze standaarden omvatten ook Azure Policy voor Kubernetes, dat beleid toepast op de workloads die in het cluster worden uitgevoerd.
- Azure Monitor. Een cloudservice die de beschikbaarheid en prestaties van uw toepassingen en services maximaliseert door een uitgebreide oplossing te bieden voor het verzamelen, analyseren en uitvoeren van telemetrie vanuit uw cloud- en on-premises omgevingen.
- Microsoft Defender voor Cloud. Een geïntegreerd beveiligingsbeheersysteem voor infrastructuur dat de beveiligingsstatus van uw datacenters versterkt en geavanceerde bedreigingsbeveiliging biedt voor uw hybride workloads in de cloud en on-premises.
- Azure Automation. Biedt een cloudgebaseerde automatiserings- en configuratieservice die consistent beheer in uw Azure- en niet-Azure-omgevingen ondersteunt.
- Velero. Een opensource-hulpprogramma dat back-up op aanvraag en geplande back-up ondersteunt en alle objecten in het Kubernetes-cluster herstelt.
- Azure Blob Storage. Zeer schaalbare en veilige objectopslag voor cloudeigen workloads, archieven, data lakes, high-performance computing en machine learning.
Onderdelen
- Azure Stack HCI, versie 22H2
- Azure Kubernetes Service (AKS) in Azure Local
- Windows-beheercentrum
- Een Azure-abonnement
- Azure Arc
- Azure RBAC (op rollen gebaseerd toegangsbeheer van Azure)
- Azure Monitor
- Microsoft Defender voor Cloud
Scenariodetails
Potentiële gebruikscases
- Implementeer maximaal beschikbare workloads op basis van containers in een on-premises Kubernetes-implementatie van AKS.
- Automatiseer het uitvoeren van toepassingen in containers op schaal.
- Lagere totale eigendomskosten (TCO) via door Microsoft gecertificeerde oplossingen, cloudautomatisering, gecentraliseerd beheer en gecentraliseerde bewaking.
Gecertificeerde hardware
Gebruik lokaal gecertificeerde Azure-hardware, die standaard beveiligde opstart-, UEFI-instellingen (Extensible Firmware Interface) en TPM-instellingen (Trusted Platform Module) biedt. Rekenvereisten zijn afhankelijk van de toepassing en het aantal werkknooppunten dat wordt uitgevoerd in AKS op het cluster. Gebruik meerdere fysieke knooppunten voor de implementatie van Azure Local of ten minste een windows Server Datacenter-failovercluster met twee knooppunten om hoge beschikbaarheid te bereiken. Het is vereist dat alle servers dezelfde fabrikant en hetzelfde model hebben, met behulp van 64-bits Intel Nehalem-cijfer, AMD EPYC-cijfer of hoger compatibele processors met SLAT (Address Translation) op het tweede niveau.
Strategieën voor clusterimplementatie
AKS vereenvoudigt de on-premises Kubernetes-implementatie door wizards of PowerShell-cmdlets te bieden die u kunt gebruiken om Kubernetes en essentiële Azure Local-invoegtoepassingen in te stellen. Een AKS-cluster heeft de volgende onderdelen in Azure Local:
- Beheercluster. Implementeer het beheercluster op een maximaal beschikbare virtuele machine (VM) die wordt uitgevoerd op Azure Local of een Failovercluster van Windows Server 2019/2022 Datacenter. Het beheercluster is verantwoordelijk voor het implementeren en beheren van meerdere workloadclusters en bevat de volgende onderdelen:
- API-server. Communiceert met de beheerhulpprogramma's.
- Load balancer. Beheert taakverdelingsregels voor de API-server van het beheercluster.
- Workloadclusters. Implementeer maximaal beschikbare besturingsvlakonderdelen en werkknooppuntonderdelen. Toepassingen in containers worden uitgevoerd op een workloadcluster. Als u toepassingsisolatie wilt bereiken, kunt u maximaal acht workloadclusters implementeren. Het workloadcluster bestaat uit de volgende onderdelen:
- Besturingsvlak. Wordt uitgevoerd op een Linux-distributie en bevat API-serveronderdelen voor interactie met kubernetes-API en een gedistribueerd sleutel-waardearchief, enzovoort, voor het opslaan van alle configuratie en gegevens van het cluster.
- Load balancer. Wordt uitgevoerd op een Virtuele Linux-machine en biedt services met gelijke taakverdeling voor het workloadcluster.
- Werkknooppunten. Uitvoeren op een Windows- of Linux-besturingssysteem dat als host fungeert voor toepassingen in containers.
- Kubernetes-resources. Pods vertegenwoordigen één exemplaar van uw toepassing, die meestal een 1:1-toewijzing met een container hebben, maar bepaalde pods kunnen meerdere containers bevatten. Implementaties vertegenwoordigen een of meer identieke pods. Pods en implementaties worden logisch gegroepeerd in een naamruimte waarmee de toegang tot het beheer van de resources wordt beheerd.
Vereisten voor netwerkfirewall
Kubernetes biedt een abstractielaag voor virtuele netwerken door de Kubernetes-knooppunten te verbinden met het virtuele netwerk. Het biedt ook binnenkomende en uitgaande connectiviteit voor pods via het kube-proxyonderdeel . Het Lokale Azure-platform biedt verdere vereenvoudiging van de implementatie door de HAProxy load balancer-VM te configureren.
Notitie
Zie het tweede artikel in deze reeks, netwerkarchitectuurvoor meer informatie over het ontwerpen en implementeren van netwerkconcepten voor het implementeren van AKS-knooppunten in Lokale Azure- en Windows Server-clusters.
De architectuur maakt gebruik van een virtueel netwerk dat IP-adressen toewijst met behulp van een van de volgende netwerkopties:
- Statisch IP-netwerk. Maakt gebruik van een statische, gedefinieerde adresgroep voor alle objecten in de implementatie. Het voegt extra voordelen toe en garandeert dat de workload en toepassing altijd bereikbaar zijn. Dit is de aanbevolen methode.
- DHCP-netwerken. Wijst dynamische IP-adressen toe aan de Kubernetes-knooppunten, onderliggende VM's en load balancers met behulp van een DHCP-server (Dynamic Host Configuration Protocol).
Een virtuele IP-pool is een reeks gereserveerde IP-adressen die worden gebruikt voor het toewijzen van IP-adressen aan de Kubernetes-cluster-API-server en voor Kubernetes-services.
Gebruik Project Calico voor Kubernetes om andere netwerkfuncties op te halen, zoals netwerkbeleid en stroombeheer.
Opslagvereisten
Gebruik voor elke server in het cluster dezelfde typen stations die dezelfde grootte en hetzelfde model hebben. Azure Local werkt met direct gekoppelde Serial Advanced Technology Attachment (SATA), Serial Attached SCSI (SAS), Non-Volatile Memory Express (NVMe) of permanente geheugenstations die fysiek zijn gekoppeld aan één server. Voor clustervolumes maakt HCI gebruik van softwaregedefinieerde opslagtechnologie (Opslagruimten Direct) om de fysieke schijven in de opslaggroep te combineren voor fouttolerantie, schaalbaarheid en prestaties. Toepassingen die worden uitgevoerd in Kubernetes op Azure Local verwachten vaak dat de volgende opslagopties beschikbaar zijn:
- Volumes. Vertegenwoordig een manier om gegevens op te slaan, op te halen en op te slaan in pods en gedurende de levenscyclus van de toepassing.
- Permanente volumes. Een opslagresource die wordt gemaakt en beheerd door de Kubernetes-API en die kan bestaan na de levensduur van een afzonderlijke pod.
Overweeg om opslagklassen te definiëren voor verschillende lagen en locaties om kosten en prestaties te optimaliseren. De opslagklassen ondersteunen dynamische inrichting van permanente volumes en definiëren de reclaimPolicy om de actie van de onderliggende opslagresource op te geven voor het beheren van permanente volumes wanneer de pod wordt verwijderd.
AKS beheren in Azure Local
U kunt AKS beheren in Azure Local met behulp van de volgende beheeropties:
- Windows-beheercentrum. Biedt een intuïtieve gebruikersinterface voor de Kubernetes-operator voor het beheren van de levenscyclus van Azure Kubernetes Service-clusters in Azure Local.
- PowerShell. Hiermee kunt u AKS eenvoudig downloaden, configureren en implementeren in Azure Local. De PowerShell-module ondersteunt ook het implementeren, configureren van andere workloadclusters en het opnieuw configureren van bestaande clusters.
Vereisten voor Active Directory
Integreer AKS in Azure Local- of Windows Server Datacenter-failoverclusters met een AD DS-omgeving (Active Directory Domain Services) voor optimaal beheer. Gebruik indien mogelijk afzonderlijke organisatie-eenheden voor de servers en services van AKS op Azure Local om gedetailleerdere toegang en machtigingen voor beheer te bieden. Met Active Directory-integratie met Azure Kubernetes Service op Azure Local kan een gebruiker op een Windows-computer die lid is van een domein verbinding maken met de API-server (met kubectl) met behulp van hun referenties voor eenmalige aanmelding (SSO).
Aanbevelingen
De volgende aanbevelingen gelden voor de meeste scenario's. Volg de aanbevelingen, tenzij u een specifieke vereiste hebt die deze overschrijft.
AKS integreren in HCI-implementaties met Azure Arc
Als u de TCO wilt minimaliseren, integreert u AKS-implementaties met Azure Arc. Overweeg het gebruik van de volgende Azure-services:
- Azure Monitor Container Insights. Bewaakt de prestaties van containerworkloads die worden uitgevoerd op linux- en Windows-clusters. Het verzamelt metrische geheugen- en processorgegevens, van controllers, knooppunten en containers via de Metrische API. Met containerinzichten kunt u geheugen- en processorgebruik identificeren, de algehele prestaties van pods detecteren, het gedrag van het cluster begrijpen en waarschuwingen configureren voor proactieve bewaking.
- Automatiseringsmogelijkheden. AKS biedt een breed scala aan automatiseringsmogelijkheden, met besturingssysteemupdates gecombineerd met volledige stack-updates, waaronder firmware en stuurprogramma's van lokale leveranciers en partners van Azure. U kunt Windows PowerShell lokaal uitvoeren vanaf een van de lokale Azure-machines of op afstand vanaf een beheercomputer. Integratie met Azure Automation en Azure Arc vereenvoudigt een breed scala aan automatiseringsscenario's voor gevirtualiseerde en containerworkloads .
- Velero en Azure Blob Storage. Velero is een opensource-hulpprogramma dat back-up op aanvraag, geplande back-up en herstel van alle objecten in het Kubernetes-cluster ondersteunt voor resources die zijn gedefinieerd en opgeslagen in een etcd-database als een Kubernetes Custom Resource Definition (CRD). Het biedt een back-up van Kubernetes-resources en -volumes voor een volledig cluster of een deel van een cluster met behulp van naamruimten of labelkiezers. Sla de back-upset op die is gemaakt met het Hulpprogramma Velero in een Azure Storage-account in een blobcontainer.
- Kubernetes Service met Azure Arc. Biedt Azure Resource Manager-weergave van AKS in een lokaal Azure-exemplaar. Implementeer agents met Azure Arc in een Kubernetes-naamruimte om logboeken en metrische gegevens te verzamelen, om clustermetagegevens, clusterversie en aantal knooppunten te verzamelen en ervoor te zorgen dat agents optimale prestaties vertonen.
- Azure Policy. Ingebouwde beveiligingsbeleidsregels implementeren en afdwingen op een AKS-cluster met behulp van Azure Policy. U kunt ook een aangepaste beleidsdefinitie gebruiken om GitOps af te dwingen. Dit is de procedure voor het declareren van de gewenste status van de Kubernetes-configuratie (implementaties, naamruimten enzovoort) in een Git-opslagplaats.
- Azure Policy voor Kubernetes. Beheer intern clusterbeleid dat door Gatekeeper is geïmplementeerd, implementeert beleidsdefinitie in het cluster als beperkingssjabloon en rapporteert over de nalevingsstatus van uw Kubernetes-clusters vanaf één locatie.
- Azure RBAC. Gebruiken voor roltoewijzing en voor het beheren van de toegang tot Kubernetes met Azure Arc.
Overwegingen
Met deze overwegingen worden de pijlers van het Azure Well-Architected Framework geïmplementeerd. Dit is een set richtlijnen die kunnen worden gebruikt om de kwaliteit van een workload te verbeteren. Zie Microsoft Azure Well-Architected Framework voor meer informatie.
Betrouwbaarheid
- Implementeer een maximaal beschikbare VM voor het beheercluster en meerdere hosts in het Kubernetes-cluster om te voldoen aan het minimale beschikbaarheidsniveau voor workloads.
- Maak een back-up van workloadclusters en herstel deze met behulp van Velero en Azure Blob Storage. Definieer beschikbaarheids- en hersteldoelen om te voldoen aan bedrijfsvereisten.
- AKS-implementaties maken gebruik van failoverclustering en livemigratie voor hoge beschikbaarheid en fouttolerantie. Livemigratie is een Hyper-V-functie waarmee u actieve virtuele machines transparant van de ene Hyper-V-host naar een andere kunt verplaatsen zonder dat er sprake is van downtime.
- Configureer implementaties voor het gebruik van Kubernetes-functies, zoals Implementaties, Affiniteitstoewijzing en ReplicaSets, om ervoor te zorgen dat de pods tolerant zijn in onderbrekingsscenario's.
- Zorg ervoor dat services waarnaar wordt verwezen in de sectie Architectuur worden ondersteund in de regio waarnaar Azure Arc wordt geïmplementeerd.
- Overweeg het gebruik van openbare containerinstallatiekopieën te beperken en alleen pull uit containerregisters waarvoor u controle hebt over de SLA, zoals ACR.
Beveiliging
Richt u op de hele stack door de host en containers te beveiligen.
Beveiligingsinfrastructuur
- Gebruik lokale gecertificeerde Hardware van Azure die standaard beveiligde opstart-, UEFI- en TPM-instellingen biedt. Deze technologieën, gecombineerd met beveiliging op basis van virtualisatie (VBS), helpen bij het beveiligen van beveiligingsgevoelige workloads. Ga naar lokale Azure-oplossingen voor gevalideerde oplossingen.
- Gebruik Beveiligd opstarten om ervoor te zorgen dat de server alleen software opstart die wordt vertrouwd door een Original Equipment Manufacturer.
- Gebruik UEFI om het opstartproces van de server te beheren.
- Gebruik TPM om cryptografische sleutels op te slaan en alle op hardware gebaseerde, beveiligingsgerelateerde functies te isoleren.
- Met BitLocker-stationsversleuteling kunt u Opslagruimten direct-at-rest-volumes versleutelen.
- Configureer Calico-netwerkbeleid om regels voor netwerkisolatie tussen containers te definiëren.
- Voor meer beveiligingsvereisten kunt u overwegen om een workloadcluster te implementeren op een toegewezen Windows-server.
- Gebruik Microsoft Defender voor Cloud, beschikbaar via Het Windows-beheercentrum, om de beveiligingsinstellingen voor servers en clusters centraal te beheren. Het biedt bedreigingsbeveiliging voor uw Kubernetes-clusters met Arc. De Microsoft Defender voor Cloud-extensie verzamelt gegevens van knooppunten in het cluster en verzendt deze naar de back-end van Azure Defender voor Kubernetes in de cloud voor verdere analyse.
- Beveilig communicatie met certificaten.
- Versleutelingssleutels van het Kubernetes-geheime archief (etcd) roteren met behulp van de KMS-invoegtoepassing (Key Management Server).
Toepassingsbeveiliging
- Gebruik Azure Key Vault Secrets-providerextensie op uw AKS op Azure Local om uw geheimen die door verschillende toepassingen worden gebruikt, verder te beveiligen door ze op te slaan in de Azure Key Vault-service.
- Open Service Mesh AKS-invoegtoepassing gebruiken om service-naar-service-communicatie te beveiligen door wederzijdse TLS (mTLS) in te schakelen. U kunt deze invoegtoepassing ook gebruiken voor het definiëren en uitvoeren van fijnmazige beleidsregels voor toegangsbeheer voor services.
- Gebruik Azure Policy voor Kubernetes om clusterbeveiligingsbeleid af te dwingen, zoals geen bevoegde pods.
- Gebruik een Azure Container Registry met scannen op beveiligingsproblemen in de containeropslagplaats.
- Gebruik door groepen beheerde beveiligingsaccounts voor Windows-workloads met een host die geen lid is van een domein. (Alleen van toepassing op Windows Server.)
Beveiliging van de container
- Behard de host- en daemon-omgeving door onnodige services te verwijderen.
- Bewaar geheimen uit de installatiekopieën en koppel ze alleen via de containerindelingsengine.
- Beveilig de installatiekopieën in een Azure Container Registry die ondersteuning biedt voor scannen op beveiligingsproblemen en RBAC.
- Gebruik isolatie van containers en vermijd het uitvoeren van containers in de modus Met bevoegdheden om te voorkomen dat aanvallers de bevoegdheden escaleren als de container wordt aangetast.
Kostenoptimalisatie
- Gebruik de Azure-prijscalculator om de kosten te schatten voor de services die in de architectuur worden gebruikt. In de sectie Kostenoptimalisatie in Microsoft Azure Well-Architected Framework worden andere aanbevolen procedures beschreven. Zie prijsinformatie voor meer informatie.
- Overweeg hyperthreading op uw fysieke computer te implementeren om de kosten te optimaliseren, omdat de AKS-factureringseenheid een virtuele kern is.
Operationele uitmuntendheid
- Wizard Cluster maken. Ervaar een vereenvoudigde inrichtings- en beheerervaring met Het Windows-beheercentrum. De wizard Cluster maken in het Windows-beheercentrum biedt een wizardgestuurde interface die u begeleidt bij het maken van een lokaal Azure-exemplaar. De wizard Cluster maken is een compromis ten opzichte van het maken van implementatiescripts die u kunt gebruiken voor controle en herhaalbaarheid voor meerdere implementaties. Op dezelfde manier vereenvoudigt Windows-beheercentrum het proces van het beheren van lokale azure-VM's.
- Azure Arc. Integreer met Azure Arc of een reeks Azure-services die aanvullende beheer-, onderhouds- en tolerantiemogelijkheden bieden (bijvoorbeeld Azure Monitor en Log Analytics).
- GitOps. In plaats van Kubernetes-onderdelen handmatig te configureren, gebruikt u geautomatiseerde hulpprogramma's om configuraties toe te passen op een Kubernetes-cluster, omdat deze configuraties worden ingecheckt in een bronopslagplaats. Dit proces wordt vaak GitOps genoemd en populaire GitOps-oplossingen voor Kubernetes omvatten Flux en Argo CD. In deze architectuur raden we u aan de door Microsoft geleverde GitOps-extensie te gebruiken, die is gebaseerd op Flux.
- Open Service Mesh (OSM) met Azure Arc. Een lichtgewicht, uitbreidbare, cloudeigen service mesh waarmee gebruikers uniform kunnen beheren, beveiligen en out-of-the-box waarneembaarheidsfuncties kunnen krijgen voor zeer dynamische microserviceomgevingen.
Prestatie-efficiëntie
- Gebruik lokale hardware van Azure voor verbeterde uptime en prestaties van toepassingen, vereenvoudigd beheer en bewerkingen en lagere totale eigendomskosten.
- Inzicht in de AKS in lokale limieten van Azure. Microsoft ondersteunt AKS op Azure Stack-implementaties met maximaal acht fysieke servers per cluster, acht Kubernetes-clusters en 200 VM's.
- Het schalen van AKS op Azure Local is afhankelijk van het aantal werkknooppunten en doelclusters. Als u de hardware voor de werkknooppunten goed wilt indimenseren, moet u anticiperen op het aantal pods, containers en werkknooppunten in een doelcluster. Zorg ervoor dat ten minste 15% lokale Azure-capaciteit is gereserveerd voor geplande en ongeplande fouten. Voor prestatie-efficiëntie worden computerresources efficiënt gebruikt om te voldoen aan systeemvereisten en om die efficiëntie te handhaven naarmate de vraag verandert en technologieën zich ontwikkelen. De algemene regel is dat als één knooppunt offline gaat tijdens onderhoud of tijdens niet-geplande fouten, de resterende knooppunten voldoende capaciteit hebben om de verhoogde belasting te beheren.
- Overweeg om de grootte van de load balancer-VM te vergroten als u veel Kubernetes-services in elk doelcluster uitvoert.
- AKS in Azure Local distribueert de werkknooppunten voor elke knooppuntgroep in een doelcluster met behulp van de lokale plaatsingslogica van Azure.
- Plan IP-adresreserveringen voor het configureren van AKS-hosts, workloadclusters, cluster-API-servers, Kubernetes Services en toepassingsservices. Microsoft raadt aan minimaal 256 IP-adressen te reserveren voor AKS-implementatie in Azure Local.
- Overweeg om een ingangscontroller te implementeren die op Laag 7 werkt en intelligentere regels gebruikt om toepassingsverkeer te distribueren.
- Implementeer netwerkprestatieoptimalisatie voor de toewijzing van verkeersbandbreedte.
- Gebruik GPU-versnelling (Graphics Processing Unit) voor uitgebreide workloads.
Medewerkers
Dit artikel wordt onderhouden door Microsoft. De tekst is oorspronkelijk geschreven door de volgende Inzenders.
Belangrijkste auteurs:
- Lisa DenBeste | ProjectManagement Program Manager
- Kenny Harder | Projectmanager
- Mike Kostersitz | Principal Program Manager Lead
- Meg Olsen | Voornaamste
- Nate Waters | Product Marketing Manager
Andere Inzenders:
- Walter Oliver | Senior Program Manager