Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Ett AkS-kluster (Azure Kubernetes Service) som konfigurerats med API Server VNet-integrering projicerar API-serverslutpunkten direkt till ett delegerat undernät i det virtuella nätverk där AKS distribueras. Api Server VNet-integrering möjliggör nätverkskommunikation mellan API-servern och klusternoderna utan att en privat länk eller tunnel krävs. API-servern är tillgänglig bakom en intern lastbalanserares VIP i det delegerade undernätet, som noderna är konfigurerade att använda. Genom att använda API Server VNet-integrering kan du se till att nätverkstrafiken mellan DIN API-server och dina nodpooler endast finns kvar i det privata nätverket.
API-serveranslutning
Kontrollplanet eller API-servern finns i en AKS-hanterad Azure-prenumeration. Klustret eller nodpoolen finns i din Azure-prenumeration. Servern och de virtuella datorer som utgör klusternoderna kan kommunicera med varandra via API-serverns VIP- och podd-IP-adresser som projiceras i det delegerade undernätet.
API Server VNet-integrering stöds för offentliga eller privata kluster. Du kan lägga till eller ta bort offentlig åtkomst efter klusteretablering. Till skillnad från icke-VNet-integrerade kluster kommunicerar agentnoderna alltid direkt med den privata IP-adressen för IP-adressen för API-serverns interna lastbalanserare (ILB) utan att använda DNS. All trafik från nod till API-server sker på privata nätverk och ingen tunnel behövs för anslutning från API-server till nod. Out-of-cluster-klienter som behöver kommunicera med API-servern kan göra det normalt om offentlig nätverksåtkomst är aktiverad. Om åtkomsten till det offentliga nätverket är inaktiverad bör du följa samma privata DNS-konfigurationsmetod som privata standardkluster.
Förutsättningar
- Du måste ha Azure CLI version 2.73.0 eller senare installerat. Du kan kontrollera din version med hjälp av
az --versionkommandot .
Begränsningar
- API Server VNet-integrering stöder inte krypterade virtuella nätverk.
Availability
- API Server VNet-integrering är tillgänglig i alla ga offentliga molnregioner förutom eastus2 och qatarcentral. Vi arbetar kontinuerligt med att aktivera den här funktionen i dessa regioner och uppdaterar den här sidan när dessa regioner blir tillgängliga.
Skapa ett AKS-kluster med API Server VNet-integrering med hanterat VNet
Du kan konfigurera dina AKS-kluster med API Server VNet-integrering i hanterat VNet eller bring-your-own VNet-läge. Du kan skapa dem som offentliga kluster (med API-serveråtkomst tillgänglig via en offentlig IP-adress) eller privata kluster (där API-servern endast är tillgänglig via privat VNet-anslutning). Du kan också växla mellan ett offentligt och privat läge utan att återdistribuera klustret.
Skapa en resursgrupp
Skapa en resursgrupp med kommandot
az group create.az group create --location westus2 --name <resource-group>
Distribuera ett offentligt kluster
Distribuera ett offentligt AKS-kluster med API Server VNet-integrering för hanterade virtuella nätverk genom att använda kommandot
az aks createoch flaggan--enable-api-server-vnet-integration.az aks create --name <cluster-name> \ --resource-group <resource-group> \ --location <location> \ --network-plugin azure \ --enable-apiserver-vnet-integration \ --generate-ssh-keys
Distribuera ett privat kluster
Distribuera ett privat AKS-kluster med API Server VNet-integrering för hanterat VNet med kommandot
az aks createmed flaggorna--enable-api-server-vnet-integrationoch--enable-private-cluster.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
Skapa ett privat AKS-kluster med API Server VNet-integrering med bring-your-own VNet
När du använder bring-your-own VNet måste du skapa och delegera ett API-serverundernät till Microsoft.ContainerService/managedClusters, vilket ger AKS-tjänsten behörighet att mata in API-serverpoddarna och den interna lastbalanseraren i undernätet. Du kan inte använda undernätet för andra arbetsbelastningar, men du kan använda det för flera AKS-kluster som finns i samma virtuella nätverk. Den minsta api-serverundernätsstorlek som stöds är / 28.
Klusteridentiteten behöver behörigheter till både API-serverundernätet och nodundernätet. Brist på behörigheter i API-serverundernätet kan orsaka ett etableringsfel.
Varning
Ett AKS-kluster reserverar minst 9 IP-adresser i undernätets adressutrymme. Slut på IP-adresser kan förhindra API-serverskalning och orsaka ett API-serverstopp.
Skapa en resursgrupp
- Skapa en resursgrupp med kommandot
az group create.
az group create --location <location> --name <resource-group>
Skapa ett virtuellt nätverk
Skapa ett virtuellt nätverk med kommandot
az network vnet create.az network vnet create --name <vnet-name> \ --resource-group <resource-group> \ --location <location> \ --address-prefixes 172.19.0.0/16Skapa ett API-serverundernät med kommandot
az network vnet subnet create.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/28Skapa ett klusterundernät med kommandot
az network vnet subnet create.az network vnet subnet create --resource-group <resource-group> \ --vnet-name <vnet-name> \ --name <cluster-subnet-name> \ --address-prefixes 172.19.1.0/24
Skapa en hanterad identitet och ge den behörighet i det virtuella nätverket
Skapa en hanterad identitet med kommandot
az identity create.az identity create --resource-group <resource-group> --name <managed-identity-name> --location <location>Tilldela rollen Nätverksdeltagare till API-serverundernätet med hjälp av
az role assignment createkommandot .az role assignment create --scope <apiserver-subnet-resource-id> \ --role "Network Contributor" \ --assignee <managed-identity-client-id>Tilldela rollen Nätverksdeltagare till klustrets undernät med hjälp av
az role assignment createkommandot .az role assignment create --scope <cluster-subnet-resource-id> \ --role "Network Contributor" \ --assignee <managed-identity-client-id>
Distribuera ett offentligt kluster
Distribuera en publik AKS-kluster med API-server VNet-integrering med kommandot
az aks createoch flaggan--enable-api-server-vnet-integration.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
Distribuera ett privat kluster
Distribuera ett privat AKS-kluster med API Server VNet-integrering med
az aks createkommandot med flaggorna--enable-api-server-vnet-integrationoch--enable-private-cluster.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
Konvertera ett befintligt AKS-kluster till API Server VNet-integrering
Varning
API Server VNet-integrering är en enkelriktad kapacitetskänslig funktion.
Manuell omstart krävs.
När du har aktiverat API Server VNet-integrering medaz aks update --enable-apiserver-vnet-integrationmåste du omedelbart starta om klustret för att ändringen ska börja gälla. Den här omstarten är inte automatiserad. Om omstarten fördröjs ökar risken för att kapaciteten blir otillgänglig, vilket kan hindra API-servern från att starta.Kapaciteten verifieras, men är inte reserverad.
AKS verifierar regional kapacitet när du aktiverar funktionen i ett befintligt kluster, men den här verifieringen reserverar inte kapacitet. Om omstarten är fördröjd och kapaciteten blir otillgänglig under tiden kan klustret misslyckas med att starta efter ett stopp eller en omstart. Kluster som aktiverade den här funktionen före allmän tillgänglighet (GA), eller som ännu inte har startats om sedan aktiveringen, genomgår inte kapacitetsvalidering.Funktionen kan inte inaktiveras.
När funktionen är aktiverad är den permanent. Du kan inte inaktivera API Server VNet-integrering.
Den här uppgraderingen utför en versionsuppgradering av nod-avbildning på alla nodpooler och startar om alla arbetsbelastningar medan de genomgår en löpande avbildningsuppgradering.
Varning
Konvertering av ett kluster till API Server VNet-integrering resulterar i en ändring av API Server IP-adressen, även om värdnamnet förblir detsamma. Om API-serverns IP-adress har konfigurerats i brandväggar eller regler för nätverkssäkerhetsgrupp kan dessa regler behöva uppdateras.
Uppdatera klustret till API Server VNet-integrering med hjälp av
az aks updatekommandot med--enable-apiserver-vnet-integrationflaggan .az aks update --name <cluster-name> \ --resource-group <resource-group> \ --enable-apiserver-vnet-integration \ --apiserver-subnet-id <apiserver-subnet-resource-id>
Aktivera eller inaktivera privat klusterläge i ett befintligt kluster med API Server VNet-integrering
AKS-kluster som konfigurerats med API Server VNet-integrering kan ha offentlig nätverksåtkomst/privat klusterläge aktiverat eller inaktiverat utan att distribuera klustret igen. API-serverns värdnamn ändras inte, men offentliga DNS-poster ändras eller tas bort om det behövs.
Kommentar
--disable-private-cluster finns för tillfället som förhandsversion. Mer information finns i Referens- och supportnivåer.
Aktivera privat klusterläge
Aktivera privat klusterläge med kommandot
az aks updatemed--enable-private-clusterflaggan .az aks update --name <cluster-name> \ --resource-group <resource-group> \ --enable-private-cluster
Inaktivera privat klusterläge
Inaktivera privat klusterläge med kommandot
az aks updatemed--disable-private-clusterflaggan .az aks update --name <cluster-name> \ --resource-group <resource-group> \ --disable-private-cluster
Ansluta till klustret med kubectl
Konfigurera
kubectlför att ansluta till klustret med hjälp avaz aks get-credentialskommandot .az aks get-credentials --resource-group <resource-group> --name <cluster-name>
Exponera API-servern via Private Link
Du kan exponera API-serverslutpunkten för ett privat kluster med API Server VNet-integrering med Azure Private Link. Följande steg visar hur du skapar en Private Link-tjänst (PLS) i klustrets virtuella nätverk och ansluter till den från ett annat virtuellt nätverk eller en prenumeration med hjälp av en privat slutpunkt.
Skapa ett privat kluster för API Server VNet-integrering
Skapa ett privat AKS-kluster med API Server VNet-integrering med
az aks createkommandot med flaggorna--enable-api-server-vnet-integrationoch--enable-private-cluster.az aks create --name <cluster-name> \ --resource-group <resource-group> \ --location <location> \ --enable-private-cluster \ --enable-apiserver-vnet-integration
Mer information om hur du konfigurerar Private Link med API Server VNet-integrering finns i Private Link med API Server VNet-integrering.
NSG-säkerhetsregler
All trafik i det virtuella nätverket tillåts som standard. Men om du har lagt till NSG-regler för att begränsa trafiken mellan olika undernät kontrollerar du att NSG-säkerhetsreglerna tillåter följande typer av kommunikation:
| Resmål | Källa | Protokoll | Hamn | Använd |
|---|---|---|---|---|
| APIServer-undernät CIDR | Klusterundernät | TCP | 443 och 4443 | Krävs för att aktivera kommunikation mellan noder och API-servern. |
| APIServer-undernät CIDR | Azure Load Balancer (belastningsutjämnare) | TCP | 9988 | Krävs för att aktivera kommunikation mellan Azure Load Balancer och API-servern. Du kan också aktivera all kommunikation mellan Azure Load Balancer och API Server Subnet CIDR. |
Nästa steg
- Rekommenderade metoder finns i Metodtips för nätverksanslutning och säkerhet i AKS.
- Mer information om hur du konfigurerar privat länk med API Server VNet-integrering finns i Private Link med API Server VNet-integrering.
Azure Kubernetes Service