Deze referentiearchitectuur laat zien hoe Azure Arc Kubernetes-clusterbeheer en -configuratie uitbreidt in datacenters van klanten, edge-locaties en meerdere cloudomgevingen.
Architectuur
Een Visio-bestand van deze architectuur downloaden.
Workflow
De architectuur bestaat uit de volgende aspecten:
- Kubernetes met Azure Arc. Koppel en configureer Kubernetes-clusters binnen of buiten Azure met behulp van Kubernetes met Azure Arc. Wanneer een Kubernetes-cluster is gekoppeld aan Azure Arc, wordt er een Azure Resource Manager-id en een beheerde identiteit toegewezen.
- Azure Kubernetes Service. Host Kubernetes-clusters in Azure om de complexiteit en operationele overhead van Kubernetes-clusterbeheer te verminderen.
- On-premises Kubernetes-cluster. Koppel Cloud Native Computing Foundation (CNCF)-gecertificeerde Kubernetes-clusters die worden gehost in on-premises of cloudomgevingen van derden.
- Azure Policy. Beleid implementeren en beheren voor Kubernetes-clusters met Arc.
- Azure Monitor. Kubernetes-clusters met Arc bekijken en bewaken.
Onderdelen
- Azure Arc is een brug die het Azure-platform uitbreidt, waardoor toepassingen en services kunnen worden gebouwd die kunnen worden uitgevoerd in datacenters, aan de rand en in omgevingen met meerdere clouds.
- Azure Kubernetes Service (AKS) is een beheerde service voor het implementeren en schalen van Kubernetes-clusters.
- Met Azure Policy kunt u realtime cloudcompatibiliteit op schaal bereiken met consistente resourcebeheer.
- Azure Monitor biedt end-to-end waarneembaarheid voor uw toepassingen, infrastructuur en netwerk.
Scenariodetails
U kunt Azure Arc gebruiken om Kubernetes-clusters te registreren die buiten Microsoft Azure worden gehost. Vervolgens kunt u Azure-hulpprogramma's gebruiken om deze clusters te beheren, samen met clusters die worden gehost in Azure Kubernetes Service (AKS).
Potentiële gebruikscases
Deze architectuur wordt doorgaans gebruikt voor:
- On-premises Kubernetes-clusters en -clusters beheren die worden gehost in AKS voor inventarisatie, groepering en taggen.
- Azure Monitor gebruiken om Kubernetes-clusters in hybride omgevingen te bewaken.
- Azure Policy gebruiken om beleid voor Kubernetes-clusters in hybride omgevingen te implementeren en af te dwingen.
- Azure Policy gebruiken om GitOps te implementeren en af te dwingen.
Aanbevelingen
De volgende secties bieden aanbevelingen die van toepassing zijn op de meeste scenario's. Microsoft raadt u aan ze te volgen, tenzij u een vereiste hebt die ze overschrijft.
Clusterregistratie
U kunt elk actief CNCF Kubernetes-cluster registreren. U hebt een kubeconfig-bestand nodig om toegang te krijgen tot het cluster en een clusterbeheerderrol in het cluster om Kubernetes-agents met Arc te implementeren. U gebruikt de Azure-opdrachtregelinterface (CLI) om clusterregistratietaken uit te voeren. De gebruiker of service-principal die u gebruikt voor de az login en az connectedk8s connect-opdrachten vereist lees- en schrijfmachtigingen voor het resourcetype Microsoft.Kubernetes/connectedClusters. De Kubernetes-cluster - Azure Arc-onboardingrol heeft deze machtigingen en kan worden gebruikt voor roltoewijzingen op de gebruikers-principal of de service-principal. Helm 3 is vereist voor het onboarden van het cluster dat gebruikmaakt van de connectedk8s-extensie. Azure CLI versie 2.3 of hoger is vereist voor het installeren van de kubernetes-opdrachtregelinterface-extensies met Azure Arc.
Azure Arc-agents voor Kubernetes
Kubernetes met Azure Arc bestaat uit enkele agents (ook wel operators genoemd) die worden uitgevoerd in het cluster dat is geïmplementeerd in de azure-arc-naamruimte:
- deployment.apps/config-agent. Controleert het verbonden cluster voor bronbeheerconfiguratiebronnen die op het cluster worden toegepast en werkt de nalevingsstatus bij.
- deployment.apps/controller-manager. Een operator van operators die interacties tussen Azure Arc-onderdelen indelen.
- deployment.apps/metrics-agent. Verzamelt metrische gegevens van andere Arc-agents om ervoor te zorgen dat deze agents optimale prestaties vertonen.
- deployment.apps/cluster-metadata-operator. Verzamelt de clustermetagegevens, de clusterversie, het aantal knooppunten en de versie van de Azure Arc-agent.
- deployment.apps/resource-sync-agent. Synchroniseert de eerder genoemde clustermetagegevens naar Azure.
- deployment.apps/clusteridentityoperator. Onderhoudt het MSI-certificaat (Managed Service Identity) dat door andere agents wordt gebruikt om te communiceren met Azure.
- deployment.apps/flux-logs-agent. Verzamelt logboeken van de fluxoperators die worden geïmplementeerd als onderdeel van de configuratie van broncodebeheer.
- deployment.apps/extension-manager. Hiermee installeert en beheert u de levenscyclus van Extensie Helm-grafieken.
- deployment.apps/kube-azure-ad-proxy. Wordt gebruikt voor de verificatie van de aanvragen die naar het cluster worden verzonden met behulp van Cluster Connect.
- deployment.apps/clusterconnect-agent. Een omgekeerde proxyagent waarmee de functie voor clusterverbinding toegang kan bieden tot de API-server van het cluster. Het is een optioneel onderdeel dat alleen wordt geïmplementeerd als de functie clusterverbinding is ingeschakeld op het cluster.
- deployment.apps/guard. Een verificatie- en autorisatiewebhookserver die wordt gebruikt voor op rollen gebaseerd toegangsbeheer (RBAC) van Microsoft Entra. Het is een optioneel onderdeel dat alleen wordt geïmplementeerd als de azure-rbac-functie is ingeschakeld op het cluster.
Zie Een Kubernetes-cluster met Azure Arc verbinden voor meer informatie.
Clusters bewaken met behulp van Azure Monitor Container Insights
Het bewaken van uw containers is essentieel. Azure Monitor Container Insights biedt een uitgebreide bewakingservaring voor de AKS- en AKS-engineclusters. U kunt Azure Monitor Container Insights ook configureren om Kubernetes-clusters met Azure Arc te bewaken die buiten Azure worden gehost. Dit biedt uitgebreide bewaking van uw Kubernetes-clusters in Azure, on-premises en cloudomgevingen van derden.
Azure Monitor Container Insights biedt u inzicht in prestaties door metrische gegevens over geheugen en processor te verzamelen van controllers, knooppunten en containers, metrische gegevens die beschikbaar zijn in Kubernetes via de Api (Metrics Application Programming Interface). Er worden ook containerlogboeken verzameld. Nadat u bewaking vanuit Kubernetes-clusters hebt ingeschakeld, worden metrische gegevens en logboeken automatisch voor u verzameld door een containerversie van de Log Analytics-agent. Metrische gegevens worden naar het archief met metrische gegevens geschreven en logboekgegevens worden geschreven naar het logboekarchief dat is gekoppeld aan uw Log Analytics-werkruimte. Zie het overzicht van Azure Monitor Container Insights voor meer informatie over Azure Monitor Container Insights.
U kunt Azure Monitor Container Insights inschakelen voor een of meer implementaties van Kubernetes met behulp van een PowerShell-script of een Bash-script.
Azure Policy gebruiken om implementatie van gitOps-toepassingen in te schakelen
Gebruik Azure Policy om af te dwingen dat voor elke Microsoft.Kubernetes-/connectedclusters-resource of Microsoft.ContainerService/managedClusters-resource specifieke Microsoft.KubernetesConfiguration/fluxConfigurations zijn toegepast. U kunt bijvoorbeeld een basislijnconfiguratie toepassen op een of meer clusters of specifieke toepassingen implementeren op meerdere clusters. Als u Azure Policy wilt gebruiken, selecteert u een definitie in de ingebouwde Azure Policy-definities voor Kubernetes met Azure Arc en maakt u vervolgens een beleidstoewijzing.
Wanneer u de beleidstoewijzing maakt, stelt u het bereik in op een Azure-resourcegroep of -abonnement. Stel ook de parameters in voor de fluxConfiguration die wordt gemaakt. Wanneer de toewijzing wordt gemaakt, identificeert de beleidsengine alle connectedCluster - of managedCluster-resources die zich binnen het bereik bevinden en past u de fluxConfiguration vervolgens toe op elke resource.
Als u meerdere bronopslagplaatsen gebruikt voor elk cluster (bijvoorbeeld één opslagplaats voor de centrale IT-/clusteroperator en andere opslagplaatsen voor toepassingsteams), activeert u dit met behulp van meerdere beleidstoewijzingen en configureert u elke beleidstoewijzing om een andere bronopslagplaats te gebruiken.
Zie Toepassingen consistent op schaal implementeren met flux v2-configuraties en Azure Policy voor meer informatie.
Toepassingen implementeren met GitOps
GitOps is de praktijk van het declareren van de gewenste status van de Kubernetes-configuratie (implementaties, naamruimten, enzovoort) in een bronopslagplaats, zoals een Git- of Helm-opslagplaats, Buckets of Azure Blob Storage. Dit wordt gevolgd door een polling- en pull-gebaseerde implementatie van deze configuraties naar het cluster met behulp van een operator.
De verbinding tussen uw cluster en een of meer bronopslagplaatsen wordt ingeschakeld door de extensie microsoft.flux in uw cluster te implementeren. De eigenschappen van fluxConfiguration-resources geven aan waar en hoe Kubernetes-resources moeten stromen van de bronopslagplaats naar uw cluster. De fluxConfiguration-gegevens worden versleuteld at-rest opgeslagen in een Azure Cosmos DB-database om de vertrouwelijkheid van gegevens te waarborgen.
De flux-config-agent die in uw cluster wordt uitgevoerd, is verantwoordelijk voor het controleren op nieuwe of bijgewerkte fluxConfiguration-extensieresources in de Kubernetes-resource met Azure Arc, voor het implementeren van toepassingen vanuit de bronopslagplaats en voor het doorgeven van updates die worden aangebracht in de fluxConfiguration. U kunt zelfs meerdere fluxConfiguration-resources maken met behulp van het naamruimtebereik op hetzelfde Kubernetes-cluster met Azure Arc om multitenancy te bereiken.
De bronopslagplaats kan geldige Kubernetes-resources bevatten, waaronder naamruimten, ConfigMaps, implementaties en DaemonSets. Het kan ook Helm-grafieken bevatten voor het implementeren van toepassingen. Veelvoorkomende scenario's voor de bronopslagplaats omvatten het definiëren van een basislijnconfiguratie voor uw organisatie die algemene RBAC-rollen (Role Base Access Control) en bindingen kunnen bevatten, agents bewaken, agents voor logboekregistratie en clusterbrede services.
U kunt ook een grotere verzameling clusters beheren die zijn geïmplementeerd in heterogene omgevingen. U kunt bijvoorbeeld één opslagplaats hebben die de basislijnconfiguratie voor uw organisatie definieert en die vervolgens toepast op meerdere Kubernetes-clusters tegelijk. U kunt toepassingen ook implementeren in een cluster vanuit meerdere bronopslagplaatsen.
Zie Toepassingen implementeren met GitOps met Flux v2 voor meer informatie.
Topologie, netwerk en routering
Voor Azure Arc-agents zijn de volgende protocollen/poorten/uitgaande URL's vereist om te kunnen functioneren:
Eindpunt (DNS) | Beschrijving |
---|---|
https://management.azure.com:443 |
Vereist dat de agent verbinding maakt met Azure en het cluster registreert. |
https://[region].dp.kubernetesconfiguration.azure.com:443 |
Eindpunt van het gegevensvlak voor de agent om de status te pushen en configuratiegegevens op te halen, waarbij [regio] de Azure-regio vertegenwoordigt die als host fungeert voor het AKS-exemplaar. |
https://docker.io:443 |
Vereist voor het ophalen van containerinstallatiekopieën. |
https://github.com:443 , git://github.com:9418 |
Voorbeeld van GitOps-opslagplaatsen worden gehost op GitHub. De configuratieagent vereist connectiviteit met het git-eindpunt dat u opgeeft. |
https://login.microsoftonline.com:443 |
Vereist om de Azure Resource Manager-tokens op te halen en bij te werken. |
https://azurearcfork8s.azurecr.io:443 |
Vereist voor het ophalen van containerinstallatiekopieën voor Azure Arc-agents. |
Zie azure Arc-netwerkvereisten voor een volledige lijst met URL's in Azure Arc-services.
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
Betrouwbaarheid zorgt ervoor dat uw toepassing kan voldoen aan de toezeggingen die u aan uw klanten hebt gedaan. Zie Overzicht van de betrouwbaarheidspijler voor meer informatie.
- In de meeste gevallen moet de locatie die u selecteert wanneer u het installatiescript maakt, de Azure-regio zijn die zich geografisch het dichtst bij uw on-premises resources bevindt. De rest van de gegevens wordt opgeslagen in de Azure-geografie die de regio bevat die u opgeeft, een feit dat van invloed kan zijn op uw keuze van de regio als u vereisten voor gegevenslocatie hebt. Als een storing van invloed is op de Azure-regio waarmee uw machine is verbonden, heeft de storing geen invloed op de verbonden machine, maar zijn beheerbewerkingen die gebruikmaken van Azure mogelijk niet voltooid. Voor tolerantie wanneer er sprake is van een regionale storing, kunt u het beste de machines op elke locatie verbinden met een andere Azure-regio als u meerdere locaties hebt die een geografisch redundante service bieden. Raadpleeg ondersteunde regio's voor Kubernetes met Azure Arc voor beschikbare regio's .
- Zorg ervoor dat de services waarnaar wordt verwezen in de sectie Architectuur worden ondersteund in de regio waar Azure Arc wordt geïmplementeerd.
Beveiliging
Beveiliging biedt garanties tegen opzettelijke aanvallen en misbruik van uw waardevolle gegevens en systemen. Zie Overzicht van de beveiligingspijler voor meer informatie.
- U kunt Azure RBAC gebruiken om de toegang tot Kubernetes met Azure Arc te beheren in Azure- en on-premises omgevingen die gebruikmaken van Microsoft Entra-identiteiten. Zie Azure RBAC gebruiken voor Kubernetes-autorisatie voor meer informatie.
- Microsoft raadt u aan een service-principal te gebruiken met beperkte bevoegdheden voor het onboarden van Kubernetes-clusters naar Azure Arc. Deze procedure is handig in CI/CD-pijplijnen, zoals Azure Pipelines en GitHub Actions. Zie Een service-principal voor onboarding met Azure Arc maken voor meer informatie.
- U kunt beheerde identiteiten in AKS gebruiken om het beheer van service-principals te vereenvoudigen. Clusters moeten echter worden gemaakt met behulp van de beheerde identiteit en de bestaande clusters (inclusief Azure- en on-premises clusters) kunnen niet worden gemigreerd naar beheerde identiteiten. Zie Beheerde identiteiten gebruiken in Azure Kubernetes Service voor meer informatie.
Kostenoptimalisatie
Kostenoptimalisatie gaat over manieren om onnodige uitgaven te verminderen en operationele efficiëntie te verbeteren. Zie Overzicht van de pijler kostenoptimalisatie voor meer informatie.
Algemene kostenoverwegingen worden beschreven in de sectie Principes van kostenoptimalisatie in het Microsoft Azure Well-Architected Framework.
Operationele uitmuntendheid
Operationele uitmuntendheid omvat de operationele processen die een toepassing implementeren en deze in productie houden. Zie Overzicht van de operationele uitmuntendheidpijler voor meer informatie.
- Voordat u uw Kubernetes-clusters met Azure Arc configureert, controleert u de limieten van het Azure Resource Manager-abonnement en de resourcegroeplimieten om het aantal clusters te plannen.
- Gebruik Helm, het opensource-pakketprogramma, om de levenscyclus van de Kubernetes-toepassing te installeren en te beheren. Net als Bij Linux-pakketbeheerders, zoals APT en Yum, gebruikt u Helm voor het beheren van Kubernetes-grafieken. Dit zijn pakketten met vooraf geconfigureerde Kubernetes-resources.
Medewerkers
Dit artikel wordt onderhouden door Microsoft. De tekst is oorspronkelijk geschreven door de volgende Inzenders.
Hoofdauteur:
- Pieter de Bruin | Senior Program Manager
Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.
Volgende stappen
- Documentatie voor Azure Arc
- Documentatie voor Kubernetes met Azure Arc
- Documentatie voor Azure Kubernetes Service
- Documentatie voor Azure Policy
- Azure Monitor-documentatie
- Een Kubernetes-cluster met Azure Arc verbinden
Verwante resources
Verwante hybride richtlijnen:
- Hybride architectuurontwerp
- Hybride opties voor Azure
- Overwegingen bij het ontwerpen van hybride apps
Gerelateerde architecturen: