Zum Inhalt

AKS Platform: Voraussetzungen

Diese Seite listet auf, was pro Variante existieren muss, bevor das Plattform-Team deployen kann. Im managed Modell liefert der Kunde die als Kunde markierten Punkte; im Eigenbetrieb liefern deine eigenen Teams alle davon (Betriebsmodelle).

Alle Varianten

Element Detail
Azure subscription und Region Aktive subscription mit ausreichend Quota für die Node Pools
Storage für den Terraform-state Ein Storage Account und Container für den Remote-state. Die pipeline-Identität braucht darauf Storage Blob Data Contributor. Ein state-Key pro Plattform und Umgebung
Eine pipeline-Identität Eine Federated Identity (OIDC, keine Secrets) mit den Rollen aus Deployment
Entra-ID-Berechtigungen Berechtigung, Gruppen anzulegen: Microsoft-Graph-Anwendungsberechtigung Group.ReadWrite.All mit Admin Consent oder die Entra-Rolle Groups Administrator für die pipeline-Identität
Pipeline-Agent Ein Agent, der den Storage für den Terraform-state, management.azure.com und login.microsoftonline.com erreichen kann. Für eine private Cluster-API braucht er außerdem einen Netzwerkpfad zum API-Server
Cluster-Admin-Gruppe Eine Entra-ID-Gruppe für die Cluster-Admins (die Plattform-Admin-Gruppe wird an den Cluster übergeben)
Konfigurations- und Variablen-Repositories Die Konfigurationsdateien pro Umgebung und die Authentifizierungsvariablen, die die pipeline zur Laufzeit lädt

AKS in Azure

Element Standalone Hub-integriert
Adressplan VNet-CIDR plus die vier Subnet-CIDRs, ein Service-CIDR und ein Pod-CIDR Die vier Subnets und Bereiche vom hub, plus Service- und Pod-CIDRs
Spoke-VNet und Subnets Werden angelegt Vom hub angelegt: Nodes, Ingress, private endpoints, API-Server (delegiert)
Peering und Firewallregeln für den AKS-Egress Nicht zutreffend Erforderlich. Fehlende Regeln lassen den Cluster-Bootstrap scheitern
Private DNS zones für Key Vault und Container Registry Werden angelegt (Key Vault) Vom hub bereitgestellt und verknüpft
Berechtigungen auf der Spoke-subscription Contributor auf der subscription VNet und Subnets lesen und Rollenzuweisungen auf dem Spoke-VNet anlegen
Container Registry (optional) IDs in aks_acr_ids bekommen AcrPull für das kubelet Dasselbe
Log-Analytics-workspace (optional) Nötig für Monitoring, Diagnose, Alerts und Defender Dasselbe

AKS auf Azure Local

Das sind Infrastrukturressourcen, die nicht remote angelegt werden können.

Element Geliefert von
Azure-Local-Cluster, registriert und gesund Kunde
Arc Resource Bridge, deployt und gesund Kunde
Custom location (Resource-ID) Kunde
Logical network für das Node-Networking (Resource-ID) Kunde
Subscription-ID, Tenant-ID, Region, in der Azure Local registriert ist Kunde
Registrierte Resource Provider (der Bootstrap prüft und registriert die wichtigsten) pipeline oder Kunde
Agent-Pool unter Linux mit bash und PowerShell, mit Zugriff auf das private Netzwerk Kunde
Vom Agent erreichbarer Storage für den Terraform-state Kunde
Objekt-ID(s) der Entra-ID-Gruppe(n) für die Cluster-Admins Kunde
IP-Bereich für MetalLB, ohne Überschneidung mit bestehenden Netzwerken Kunde
MetalLB-Advertise-Modus: ARP (Standard), BGP oder Both. BGP braucht Peer-Namen, beide AS-Nummern und die Peer-Adresse Kunde
Vom Cluster erreichbare DNS-Server Kunde

Firewallpfad von der Arc Resource Bridge

Vor dem Bootstrap prüfen

Die Arc Resource Bridge sitzt im Management-Netzwerk. Sie muss TCP-Port 6443 (den Kubernetes-API-Server) auf der Control-Plane-IP des neuen Clusters erreichen, im VLAN des Logical Network. Eine Standard-Firewallregel im On-Premises-Netzwerk des Kunden hat diesen Pfad bei einem früheren Deployment blockiert, und die Cluster-Erstellung scheiterte mit APIServerNotOnline. Lass das Netzwerk-Team den Pfad öffnen und teste ihn vor dem Bootstrap, zum Beispiel mit Test-NetConnection <control-plane-ip> -Port 6443 aus dem Management-Netzwerk oder mit der Microsoft-Diagnose für einen nicht erreichbaren AKS-Arc-API-Server.

Was die pipeline anlegt

Das Folgende musst du nicht vorbereiten. Der Bootstrap und Terraform legen es an:

Ressource Angelegt von
Resource group für den Cluster, AKS-Arc-Cluster, OIDC-Issuer und Workload Identity Bootstrap
MetalLB-Load-Balancer Bootstrap
Registrierungen der Resource Provider Bootstrap
Arc-Extensions (Argo CD, Azure Policy, Arc Networking), Entra-ID-Gruppen, managed identities, Key Vault, Azure-Policy-Zuweisung Terraform

pipeline-Identität für Azure Local (Azure DevOps)

Rolle Scope Zweck
Contributor Subscription oder die Cluster-resource-group Resource groups, Cluster, Extensions, Key Vault
Storage Blob Data Contributor Storage Account für den state state lesen und schreiben
User Access Administrator Cluster-resource-group Nur wenn das Identity-Modul Azure-Rollen zuweist

Die Azure-DevOps-pipeline liest zwei Werte aus einer Variable Group (AZURE_SERVICE_CONNECTION und AGENT_POOL_NAME), weil Azure DevOps sie braucht, bevor irgendein Schritt läuft. Alles andere wird aus einer Konfigurationsdatei im Repository gelesen (<environment>.pipeline-vars.yml). Genehmigungen für apply und destroy werden an einem Azure-DevOps-Environment gesetzt.

Ablauf

  1. Liefere die Werte in den Tabellen oben.
  2. Das Plattform-Team legt die pipeline, die Variable Group und das Environment an.
  3. Führe einen plan aus, um Konnektivität und Konfiguration zu prüfen.
  4. Deploye: Bootstrap (nur Azure Local), dann Terraform.