Een Azure Kubernetes Service-cluster maken met API Server VNet-integratie (preview)
Een AKS-cluster (Azure Kubernetes Service) dat is geconfigureerd met API Server VNet Integration projecteert het API-servereindpunt rechtstreeks in een gedelegeerd subnet in het VNet waar AKS wordt geïmplementeerd. VNet-integratie van API Server maakt netwerkcommunicatie mogelijk tussen de API-server en de clusterknooppunten zonder een privékoppeling of tunnel. De API-server is beschikbaar achter een interne load balancer VIP in het gedelegeerde subnet, dat de knooppunten zijn geconfigureerd voor gebruik. Door VNet-integratie van API Server te gebruiken, kunt u ervoor zorgen dat netwerkverkeer tussen uw API-server en uw knooppuntgroepen alleen in het privénetwerk blijft.
API-serverconnectiviteit
Het besturingsvlak of de API-server bevindt zich in een door AKS beheerd Azure-abonnement. Uw cluster- of knooppuntgroep bevindt zich in uw Azure-abonnement. De server en de virtuele machines waaruit de clusterknooppunten bestaan, kunnen met elkaar communiceren via de VIP- en pod-IP-adressen van de API-server die in het gedelegeerde subnet worden geprojecteerd.
VNet-integratie van API Server wordt ondersteund voor openbare of privéclusters. U kunt openbare toegang toevoegen of verwijderen na het inrichten van het cluster. In tegenstelling tot niet-VNet-geïntegreerde clusters communiceren de agentknooppunten altijd rechtstreeks met het privé-IP-adres van het INTERNE IP-adres van de API-server (ILB) zonder DNS. Al het verkeer van knooppunten naar API-server wordt bewaard op privénetwerken en er is geen tunnel vereist voor api-server-naar-knooppuntconnectiviteit. Out-of-cluster-clients die moeten communiceren met de API-server kunnen dit normaal doen als openbare netwerktoegang is ingeschakeld. Als openbare netwerktoegang is uitgeschakeld, moet u dezelfde privé-DNS-instellingsmethode volgen als standaard privéclusters.
Regionale beschikbaarheid
VNet-integratie van API Server is beschikbaar in alle globale Azure-regio's.
Vereisten
- Azure CLI met aks-preview-extensie 0.5.97 of hoger.
- Als u ARM of de REST API gebruikt, moet de AKS-API-versie 2022-04-02-preview of hoger zijn.
De Azure CLI-extensie aks-preview installeren
Belangrijk
AKS preview-functies zijn beschikbaar op selfservice, opt-in basis. Previews worden geleverd 'zoals is' en 'als beschikbaar' en ze worden uitgesloten van de serviceovereenkomsten en beperkte garantie. AKS-previews worden gedeeltelijk gedekt door klantondersteuning op basis van best effort. Daarom zijn deze functies niet bedoeld voor productiegebruik. Zie de volgende ondersteuningsartikelen voor meer informatie:
Installeer de aks-preview-extensie met behulp van de
az extension add
opdracht.az extension add --name aks-preview
Werk bij naar de nieuwste versie van de extensie die is uitgebracht met behulp van de
az extension update
opdracht.az extension update --name aks-preview
De functievlag EnableAPIServerVnetIntegrationPreview registreren
Registreer de
EnableAPIServerVnetIntegrationPreview
functievlag met behulp van deaz feature register
opdracht.az feature register --namespace "Microsoft.ContainerService" --name "EnableAPIServerVnetIntegrationPreview"
Het duurt enkele minuten voordat de status Geregistreerd wordt weergegeven.
Controleer de registratiestatus met behulp van de
az feature show
opdracht:az feature show --namespace "Microsoft.ContainerService" --name "EnableAPIServerVnetIntegrationPreview"
Wanneer de status Geregistreerd weergeeft, vernieuwt u de registratie van de Microsoft.ContainerService-resourceprovider met behulp van de
az provider register
opdracht.az provider register --namespace Microsoft.ContainerService
Een AKS-cluster maken met API Server VNet-integratie met behulp van een beheerd VNet
U kunt uw AKS-clusters configureren met API Server VNet-integratie in een beheerd VNet of uw eigen VNet-modus. U kunt ze maken als openbare clusters (met API-servertoegang die beschikbaar is via een openbaar IP-adres) of privéclusters (waarbij de API-server alleen toegankelijk is via privé-VNet-connectiviteit). U kunt ook schakelen tussen een openbare en persoonlijke status zonder het cluster opnieuw te implementeren.
Een brongroep maken
Maak een resourcegroep met behulp van de
az group create
opdracht.az group create --location westus2 --name <resource-group>
Een openbaar cluster implementeren
Implementeer een openbaar AKS-cluster met API Server VNet-integratie voor beheerd VNet met behulp van de
az aks create
opdracht met de--enable-api-server-vnet-integration
vlag.az aks create --name <cluster-name> \ --resource-group <resource-group> \ --location <location> \ --network-plugin azure \ --enable-apiserver-vnet-integration \ --generate-ssh-keys
Een privécluster implementeren
Implementeer een privé-AKS-cluster met API Server VNet-integratie voor beheerd VNet met behulp van de
az aks create
opdracht met de--enable-api-server-vnet-integration
en--enable-private-cluster
vlaggen.az aks create --name <cluster-name> \ --resource-group <resource-group> \ --location <location> \ --network-plugin azure \ --enable-private-cluster \ --enable-apiserver-vnet-integration \ --generate-ssh-keys
Een privé-AKS-cluster maken met API Server VNet-integratie met behulp van bring-your-own VNet
Wanneer u bring-your-own VNet gebruikt, moet u een SUBnet van de API-server maken en delegeren naar Microsoft.ContainerService/managedClusters
, waarmee de AKS-servicemachtigingen worden verleend om de API-serverpods en interne load balancer in dat subnet te injecteren. U kunt het subnet niet gebruiken voor andere workloads, maar u kunt het gebruiken voor meerdere AKS-clusters die zich in hetzelfde virtuele netwerk bevinden. De minimaal ondersteunde subnetgrootte van de API-server is een /28.
De clusteridentiteit heeft machtigingen nodig voor zowel het subnet van de API-server als het knooppuntsubnet. Gebrek aan machtigingen in het subnet van de API-server kan leiden tot een inrichtingsfout.
Waarschuwing
Een AKS-cluster reserveert ten minste 9 IP-adressen in de adresruimte van het subnet. Als er onvoldoende IP-adressen zijn, kan het schalen van DE API-server worden voorkomen en kan dit leiden tot een storing van een API-server.
Een brongroep maken
- Maak een resourcegroep met behulp van de
az group create
opdracht.
az group create --location <location> --name <resource-group>
Een virtueel netwerk maken
Maak een virtueel netwerk met behulp van de
az network vnet create
opdracht.az network vnet create --name <vnet-name> \ --resource-group <resource-group> \ --location <location> \ --address-prefixes 172.19.0.0/16
Maak een SUBnet van de API-server met behulp van de
az network vnet subnet create
opdracht.az network vnet subnet create --resource-group <resource-group> \ --vnet-name <vnet-name> \ --name <apiserver-subnet-name> \ --delegations Microsoft.ContainerService/managedClusters \ --address-prefixes 172.19.0.0/28
Maak een clustersubnet met behulp van de
az network vnet subnet create
opdracht.az network vnet subnet create --resource-group <resource-group> \ --vnet-name <vnet-name> \ --name <cluster-subnet-name> \ --address-prefixes 172.19.1.0/24
Een beheerde identiteit maken en deze machtigingen geven voor het virtuele netwerk
Maak een beheerde identiteit met behulp van de
az identity create
opdracht.az identity create --resource-group <resource-group> --name <managed-identity-name> --location <location>
Wijs de rol Inzender voor het netwerk toe aan het subnet van de API-server met behulp van de
az role assignment create
opdracht.az role assignment create --scope <apiserver-subnet-resource-id> \ --role "Network Contributor" \ --assignee <managed-identity-client-id>
Wijs de rol Inzender voor het netwerk toe aan het clustersubnet met behulp van de
az role assignment create
opdracht.az role assignment create --scope <cluster-subnet-resource-id> \ --role "Network Contributor" \ --assignee <managed-identity-client-id>
Een openbaar cluster implementeren
Implementeer een openbaar AKS-cluster met API Server VNet-integratie met behulp van de
az aks create
opdracht met de--enable-api-server-vnet-integration
vlag.az aks create --name <cluster-name> \ --resource-group <resource-group> \ --location <location> \ --network-plugin azure \ --enable-apiserver-vnet-integration \ --vnet-subnet-id <cluster-subnet-resource-id> \ --apiserver-subnet-id <apiserver-subnet-resource-id> \ --assign-identity <managed-identity-resource-id> \ --generate-ssh-keys
Een privécluster implementeren
Implementeer een privé-AKS-cluster met API Server VNet-integratie met behulp van de
az aks create
opdracht met de--enable-api-server-vnet-integration
en--enable-private-cluster
vlaggen.az aks create --name <cluster-name> \ --resource-group <resource-group> \ --location <location> \ --network-plugin azure \ --enable-private-cluster \ --enable-apiserver-vnet-integration \ --vnet-subnet-id <cluster-subnet-resource-id> \ --apiserver-subnet-id <apiserver-subnet-resource-id> \ --assign-identity <managed-identity-resource-id> \ --generate-ssh-keys
Een bestaand AKS-cluster converteren naar VNet-integratie van API Server
U kunt bestaande openbare/persoonlijke AKS-clusters converteren naar VNet-integratieclusters van API Server door een subnet van de API-server op te geven dat voldoet aan de vereisten die eerder zijn vermeld. Deze vereisten omvatten: in hetzelfde VNet als de clusterknooppunten, machtigingen die zijn verleend voor de AKS-clusteridentiteit, niet gebruikt door andere resources, zoals een privé-eindpunt en ten minste /28. Het converteren van uw cluster is een eenrichtingsmigratie. Voor clusters kan VNet-integratie van API Server niet worden uitgeschakeld nadat deze is ingeschakeld.
Met deze upgrade wordt een upgrade van de versie van een knooppuntinstallatiekopieën uitgevoerd voor alle knooppuntgroepen en worden alle workloads opnieuw opgestart terwijl ze een rolling installatiekopieënupgrade ondergaan.
Waarschuwing
Het converteren van een cluster naar API Server VNet-integratie resulteert in een wijziging van het IP-adres van de API-server, hoewel de hostnaam hetzelfde blijft. Als het IP-adres van de API-server is geconfigureerd in firewalls of regels voor netwerkbeveiligingsgroepen, moeten deze regels mogelijk worden bijgewerkt.
Werk uw cluster bij naar API Server VNet-integratie met behulp van de
az aks update
opdracht met de--enable-apiserver-vnet-integration
vlag.az aks update --name <cluster-name> \ --resource-group <resource-group> \ --enable-apiserver-vnet-integration \ --apiserver-subnet-id <apiserver-subnet-resource-id>
Privéclustermodus in- of uitschakelen op een bestaand cluster met API Server VNet-integratie
AKS-clusters die zijn geconfigureerd met API Server VNet-integratie, kunnen de modus openbaar netwerktoegang/privécluster hebben ingeschakeld of uitgeschakeld zonder het cluster opnieuw te implementeren. De hostnaam van de API-server wordt niet gewijzigd, maar openbare DNS-vermeldingen worden zo nodig gewijzigd of verwijderd.
Notitie
--disable-private-cluster
is momenteel in preview. Zie Referentie- en ondersteuningsniveaus voor meer informatie.
Privéclustermodus inschakelen
Schakel de privéclustermodus in met behulp van de
az aks update
opdracht met de--enable-private-cluster
vlag.az aks update --name <cluster-name> \ --resource-group <resource-group> \ --enable-private-cluster
Modus privécluster uitschakelen
Schakel de privéclustermodus uit met behulp van de
az aks update
opdracht met de--disable-private-cluster
vlag.az aks update --name <cluster-name> \ --resource-group <resource-group> \ --disable-private-cluster
Verbinding maken met cluster met behulp van kubectl
Configureer
kubectl
deze om verbinding te maken met uw cluster met behulp van deaz aks get-credentials
opdracht.az aks get-credentials --resource-group <resource-group> --name <cluster-name>
NSG-beveiligingsregels
Al het verkeer binnen het VNet is standaard toegestaan. Maar als u NSG-regels hebt toegevoegd om verkeer tussen verschillende subnetten te beperken, moet u ervoor zorgen dat de NSG-beveiligingsregels de volgende typen communicatie toestaan:
Bestemming | Bron | Protocol | Port | Gebruik |
---|---|---|---|---|
APIServer Subnet CIDR | Clustersubnet | TCP | 443 en 4443 | Vereist om communicatie tussen knooppunten en de API-server mogelijk te maken. |
APIServer Subnet CIDR | Azure-belastingsverdeling | TCP | 9988 | Vereist om communicatie mogelijk te maken tussen Azure Load Balancer en de API-server. U kunt ook alle communicaties tussen de Azure Load Balancer en de CIDR van het API Server-subnet inschakelen. |
Volgende stappen
Zie Best practices voor netwerkconnectiviteit en -beveiliging in AKS voor de bijbehorende aanbevolen procedures.
Azure Kubernetes Service