Share via


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

  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 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 de als openbare clusters maken (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
    

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
    

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

az group create --location <location> --name <resource-group>

Een virtueel netwerk maken

  1. 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
    
  2. 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
    
  3. 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

  1. 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>
    
  2. 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>
    
  3. 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>
    

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>
    

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 de az aks get-credentials opdracht.

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

Volgende stappen

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