AKS-platform: vereisten¶
Deze pagina beschrijft wat er per variant moet bestaan voordat het platformteam kan deployen. In het managed model levert de klant de items die als klant zijn gemarkeerd; in het zelfbeheerde model leveren je eigen teams ze allemaal (Beheermodellen).
Alle varianten¶
| Onderdeel | Detail |
|---|---|
| Azure subscription en regio | Actieve subscription met genoeg quota voor de node pools |
| Terraform state storage | Een storage account en container voor de remote state. De pipeline identity heeft hierop Storage Blob Data Contributor nodig. Eén state key per platform en omgeving |
| Een pipeline identity | Een federated identity (OIDC, geen secrets) met de rollen uit Deployment |
| Entra ID-rechten | Recht om groepen aan te maken: Microsoft Graph application permission Group.ReadWrite.All met admin consent, of de Entra-rol Groups Administrator voor de pipeline identity |
| Pipeline agent | Een agent die de Terraform state storage, management.azure.com en login.microsoftonline.com kan bereiken. Voor een private cluster-API heeft hij ook een netwerkpad naar de API server nodig |
| Cluster admin-groep | Een Entra ID-groep voor de clusterbeheerders (de platform admins-groep wordt aan het cluster doorgegeven) |
| Configuratie- en variabelenrepositories | De configuratiebestanden per omgeving en de authenticatievariabelen die de pipeline tijdens runtime laadt |
AKS in Azure¶
| Onderdeel | Standalone | Hub-integrated |
|---|---|---|
| Adresplan | VNet-CIDR plus de vier subnet-CIDR's, een service-CIDR en een pod-CIDR | De vier subnets en ranges van de hub, plus service- en pod-CIDR's |
| Spoke-VNet en subnets | Aangemaakt | Aangemaakt door de hub: nodes, ingress, private endpoints, API server (delegated) |
| Peering en firewallregels voor AKS-egress | Niet van toepassing | Vereist. Ontbrekende regels laten de cluster-bootstrap falen |
| Private DNS-zones voor Key Vault en container registry | Aangemaakt (Key Vault) | Geleverd en gelinkt door de hub |
| Rechten op de spoke subscription | Contributor op de subscription | Het VNet en de subnets lezen, en roltoewijzingen aanmaken op het spoke-VNet |
| Container registry (optioneel) | ID's in aks_acr_ids krijgen AcrPull voor de kubelet |
Hetzelfde |
| Log Analytics workspace (optioneel) | Nodig voor monitoring, diagnostics, alerts en Defender | Hetzelfde |
AKS op Azure Local¶
Dit zijn infrastructuurresources die niet op afstand kunnen worden aangemaakt.
| Onderdeel | Geleverd door |
|---|---|
| Azure Local-cluster, geregistreerd en gezond | Klant |
| Arc Resource Bridge, gedeployd en gezond | Klant |
| Custom location (resource-ID) | Klant |
| Logical network voor de nodenetwerking (resource-ID) | Klant |
| Subscription-ID, tenant-ID en regio waar Azure Local is geregistreerd | Klant |
| Geregistreerde resource providers (de bootstrap controleert en registreert de belangrijkste) | Pipeline of klant |
| Agent pool op Linux met bash en PowerShell, met toegang tot het privénetwerk | Klant |
| Terraform state storage bereikbaar vanaf de agent | Klant |
| Object-ID('s) van de Entra ID-groep(en) voor de clusterbeheerders | Klant |
| IP-range voor MetalLB, niet overlappend met bestaande netwerken | Klant |
MetalLB advertise mode: ARP (standaard), BGP of Both. BGP heeft de peernaam, beide AS-nummers en het peeradres nodig |
Klant |
| DNS-servers die vanaf het cluster bereikbaar zijn | Klant |
Firewallpad vanaf de Arc Resource Bridge¶
Controleer dit vóór de bootstrap
De Arc Resource Bridge staat op het managementnetwerk. Hij moet TCP-poort 6443 (de Kubernetes API server) kunnen bereiken op het
control plane-IP van het nieuwe cluster, op de VLAN van het logical network. Een standaard firewallregel in het
on-premises netwerk van de klant blokkeerde dit pad bij een eerdere deployment, en het aanmaken van het cluster mislukte met APIServerNotOnline.
Laat het netwerkteam het pad openen en test het voordat je de bootstrap draait, bijvoorbeeld met
Test-NetConnection <control-plane-ip> -Port 6443 vanaf het managementnetwerk, of met de Microsoft-diagnose voor een
onbereikbare AKS Arc API server.
Wat de pipeline aanmaakt¶
Je hoeft het volgende niet voor te bereiden. De bootstrap en Terraform maken het aan:
| Resource | Aangemaakt door |
|---|---|
| Resource group voor het cluster, AKS Arc-cluster, OIDC issuer en workload identity | Bootstrap |
| MetalLB load balancer | Bootstrap |
| Registraties van resource providers | Bootstrap |
| Arc-extensies (Argo CD, Azure Policy, Arc Networking), Entra ID-groepen, managed identities, Key Vault, Azure Policy-toewijzing | Terraform |
Pipeline identity voor Azure Local (Azure DevOps)¶
| Rol | Scope | Doel |
|---|---|---|
| Contributor | Subscription of de resource group van het cluster | Resource groups, cluster, extensies, Key Vault |
| Storage Blob Data Contributor | State storage account | De state lezen en schrijven |
| User Access Administrator | Resource group van het cluster | Alleen als de identity-module Azure-rollen toewijst |
De Azure DevOps-pipeline leest twee waarden uit een variable group (AZURE_SERVICE_CONNECTION en AGENT_POOL_NAME), omdat
Azure DevOps ze nodig heeft voordat een stap draait. Al het andere wordt gelezen uit een configuratiebestand in de repository
(<environment>.pipeline-vars.yml). Goedkeuringsgates voor apply en destroy worden ingesteld op een Azure DevOps environment.
Volgorde¶
- Lever de waarden uit de bovenstaande tabellen aan.
- Het platformteam maakt de pipeline, de variable group en de environment aan.
- Draai een
planom connectiviteit en configuratie te controleren. - Deploy: bootstrap (alleen Azure Local), daarna Terraform.