Een Azure Kubernetes Service-cluster maken met API Server VNet Integration (preview)

Een Azure Kubernetes Service (AKS)-cluster dat is geconfigureerd met API Server VNet Integration projecteert het API-servereindpunt rechtstreeks in een gedelegeerd subnet in het VNet waar AKS is geïmplementeerd. Met VNet-integratie van API-server wordt netwerkcommunicatie tussen de API-server en de clusterknooppunten mogelijk zonder dat hiervoor een privékoppeling of tunnel nodig is. De API-server is beschikbaar achter een vip van een interne load balancer in het gedelegeerde subnet, dat door de knooppunten kan worden gebruikt. Met behulp van VNet-integratie van API-server kunt u ervoor zorgen dat netwerkverkeer tussen uw API-server en uw knooppuntgroepen alleen in het particuliere 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 worden geprojecteerd in het gedelegeerde subnet.

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 met VNet geïntegreerde clusters communiceren de agentknooppunten altijd rechtstreeks met het privé-IP-adres van het IP-adres van de INTERNE load balancer (ILB) van de API-server zonder DNS te gebruiken. Al het verkeer van knooppunten naar API-server wordt bewaard op privénetwerken en er is geen tunnel vereist voor verbinding tussen API-servers en knooppunten. Buiten-clusterclients die moeten communiceren met de API-server, kunnen dit normaal doen als openbare netwerktoegang is ingeschakeld. Als openbare netwerktoegang is uitgeschakeld, moet u dezelfde methode voor het instellen van privé-DNS volgen als standaard privéclusters.

Beschikbaarheid in regio’s

VNet-integratie van API-server is beschikbaar in alle wereldwijde 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

Preview-functies van AKS zijn beschikbaar op basis van selfservice, opt-in. Previews worden geleverd 'as is' en 'as available' en ze zijn 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 extensie aks-preview 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

  1. Registreer de EnableAPIServerVnetIntegrationPreview functievlag met behulp van de az feature register opdracht .

    az feature register --namespace "Microsoft.ContainerService" --name "EnableAPIServerVnetIntegrationPreview"
    

    Het duurt enkele minuten voordat de status Geregistreerd wordt weergegeven.

  2. Controleer de registratiestatus met behulp van de az feature show opdracht :

    az feature show --namespace "Microsoft.ContainerService" --name "EnableAPIServerVnetIntegrationPreview"
    
  3. Wanneer de status Geregistreerd is, vernieuwt u de registratie van de resourceprovider Microsoft.ContainerService 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 de beheerde VNet- of bring-your-own VNet-modus. U kunt de 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 uw cluster opnieuw te implementeren.

Een resourcegroep maken

  • Maak een resourcegroep met behulp van de az group create opdracht .

    az group create -l westus2 -n <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 -n <cluster-name> \
        -g <resource-group> \
        -l <location> \
        --network-plugin azure \
        --enable-apiserver-vnet-integration
    

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 vlaggen en --enable-private-cluster .

    az aks create -n <cluster-name> \
        -g <resource-group> \
        -l <location> \
        --network-plugin azure \
        --enable-private-cluster \
        --enable-apiserver-vnet-integration
    

Een privé-AKS-cluster maken met API Server VNet Integration met behulp van bring-your-own VNet

Wanneer u bring-your-own VNet gebruikt, moet u een API-serversubnet maken en delegeren aan 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 wel 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 subnet van het knooppunt. 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 verhinderd en kan de API-server uitvallen.

Een resourcegroep maken

az group create -l <location> -n <resource-group>

Een virtueel netwerk maken

  1. Maak een virtueel netwerk met behulp van de az network vnet create opdracht .

    az network vnet create -n <vnet-name> \
    -g <resource-group> \
    -l <location> \
    --address-prefixes 172.19.0.0/16
    
  2. Maak een API-serversubnet met behulp van de az network vnet subnet create opdracht .

    az network vnet subnet create -g <resource-group> \
    --vnet-name <vnet-name> \
    --name <apiserver-subnet-name> \
    --delegations Microsoft.ContainerService/managedClusters \
    --address-prefixes 172.19.0.0/28
    
  3. Maak een clustersubnet met behulp van de az network vnet subnet create opdracht .

    az network vnet subnet create -g <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

  1. Maak een beheerde identiteit met behulp van de az identity create opdracht .

    az identity create -g <resource-group> -n <managed-identity-name> -l <location>
    
  2. Wijs de rol Netwerkbijdrager 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>
    
  3. Wijs de rol Netwerkbijdrager 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 -n <cluster-name> \
    -g <resource-group> \
    -l <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>
    

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 markeringen en --enable-private-cluster .

    az aks create -n <cluster-name> \
    -g <resource-group> \
    -l <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>
    

Een bestaand AKS-cluster converteren naar API Server VNet-integratie

U kunt bestaande openbare/persoonlijke AKS-clusters converteren naar API Server VNet-integratieclusters 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 en de grootte van 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 de knooppuntinstallatiekopieën uitgevoerd op alle knooppuntgroepen en worden alle workloads opnieuw opgestart terwijl ze een upgrade van de rolling-installatiekopieën ondergaan.

Waarschuwing

Het converteren van een cluster naar VNet-integratie van api-server 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 Integration met behulp van de az aks update opdracht met de --enable-apiserver-vnet-integration vlag.

    az aks update -n <cluster-name> \
    -g <resource-group> \
    --enable-apiserver-vnet-integration \
    --apiserver-subnet-id <apiserver-subnet-resource-id>
    

Privéclustermodus in- of uitschakelen op een bestaand cluster met VNet-integratie van API-server

Voor AKS-clusters die zijn geconfigureerd met VNet-integratie van API Server, kan de modus openbare netwerktoegang/privéclustermodus in- of uitschakelen 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.

Modus voor privéclusters inschakelen

  • Schakel de privéclustermodus in met behulp van de az aks update opdracht met de --enable-private-cluster vlag.

    az aks update -n <cluster-name> \
    -g <resource-group> \
    --enable-private-cluster
    

Privéclustermodus uitschakelen

  • Schakel de privéclustermodus uit met behulp van de az aks update opdracht met de --disable-private-cluster vlag.

    az aks update -n <cluster-name> \
    -g <resource-group> \
    --disable-private-cluster
    

Verbinding maken met cluster met behulp van kubectl

  • Configureer kubectl om verbinding te maken met uw cluster met behulp van de az aks get-credentials opdracht .

    az aks get-credentials -g <resource-group> -n <cluster-name>
    

Volgende stappen

Zie Best practices voor netwerkconnectiviteit en -beveiliging in AKS voor de bijbehorende best practices.