Kommentar
Å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.
Gäller för: ✔️ AKS Automatic ✔️ AKS Standard
Ett Azure Kubernetes Service (AKS) kluster 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.
För de flesta produktionsarbetsbelastningar är AKS Automatic den rekommenderade STANDARD-AKS-upplevelsen. AKS Automatic är produktionsklart som standard och innehåller API Server VNet-integrering som en förkonfigurerad klustersäkerhetsfunktion. I AKS Standard är API Server VNet-integrering valfritt och du aktiverar det när klustret skapas eller genom att uppdatera ett befintligt kluster.
Mer information om AKS Automatic finns i Vad är Azure Kubernetes Service (AKS) Automatisk?
API Server VNet-integrering i AKS Automatic och AKS Standard
API Server VNet-integrering är tillgänglig i båda AKS-klusterlägena, men konfigurationen skiljer sig åt:
- AKS Automatisk: API Server VNet-integrering är förkonfigurerad.
- AKS Standard: API Server VNet-integrering är valfritt och måste aktiveras explicit.
I de flesta produktionsscenarier börjar du med AKS Automatic för att använda produktionsklara standardvärden och minska driftkostnaderna.
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 installerad. Du kan kontrollera din version med hjälp av
az --versionkommandot . - Om du tar med ditt eget virtuella nätverk granskar du kraven för det virtuella nätverket.
Begränsningar
Följande begränsningar gäller för API Server VNet-integrering, oavsett om det är förkonfigurerat på AKS Automatic eller uttryckligen aktiverat på AKS Standard:
- API Server VNet-integrering har inte stöd för kryptering av virtuellt nätverk. Kluster som distribueras på v3 eller tidigare AKS-nod-SKU:er (som inte stöder VNet-kryptering) tillåts, men trafiken krypteras inte. Kluster som distribueras på v4 eller senare AKS-nod-SKU:er (som stöder VNet-kryptering) blockeras eftersom krypterade virtuella nätverk inte är kompatibla med API Server VNet-integrering. Mer information finns i AKS-stödda VM-SKU:er.
- Om du vill använda nätverk med dubbla staplar behöver klustret Kubernetes version 1.26.3 eller senare, nätverks-plugin-program
azureoch nätverks-plugin-lägeoverlay. Mer information finns i Azure CNI-kluster med dubbla stacknätverk.
Availability
- API Server VNet-integrering är tillgänglig i alla de offentliga GA-molnregionerna utom QatarCentral.
Skapa ett kluster med API Server VNet-integrering
AKS Automatisk (rekommenderat standardval för produktion)
I AKS Automatic är API Server VNet-integrering förkonfigurerad. Ingen explicit --enable-apiserver-vnet-integration flagga krävs.
Skapa ett AKS-automatiskt kluster genom att följa snabbstarten:
AKS Standard: hanterat virtuellt nätverk
Du kan konfigurera AKS Standard-kluster med API Server VNet-integrering i hanterat VNet-läge som offentliga eller privata kluster.
Kommentar
API Server VNet-integrering är inte tillgängligt i qatarcentral.
Skapa en resursgrupp
Skapa en resursgrupp med kommandot az group create .
az group create --location <location> --name <resource-group>
Distribuera ett offentligt kluster
Distribuera ett offentligt AKS Standard-kluster med API-server-VNet-integrering för ett hanterat VNet med kommandot az aks create och flaggan --enable-apiserver-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 Standard-kluster med API Server VNet-integrering för hanterat VNet med kommandot az aks create med flaggorna --enable-apiserver-vnet-integration och --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
AKS Standard: ta med eget VNet
När du använder bring-your-own VNet måste du skapa och delegera ett API-serverundernät till Microsoft.ContainerService/managedClusters. Den här delegeringen ger AKS-tjänsten behörighet att placera API-serverpoddarna och den interna lastbalanseraren i det 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 nio IP-adresser i undernätets adressutrymme. Slut på IP-adresser kan förhindra API-serverskalning och orsaka ett API-serverstopp.
Kommentar
API Server VNet-integrering är inte tillgängligt i qatarcentral.
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 create och flaggan --enable-apiserver-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 create kommandot med flaggorna --enable-apiserver-vnet-integration och --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 Standard-kluster till API Server VNet-integrering
Varning
API Server VNet-integrering är en enkelriktad kapacitetskänslig funktion. När du aktiverar API Server VNet-integrering i ett befintligt AKS Standard-kluster gäller följande begränsningar:
-
Manuell omstart krävs: När du har aktiverat API Server VNet-integrering med ,
az aks update --enable-apiserver-vnet-integrationpå grund av kontrollplanets resursövergång, må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. Omstarten av klustret säkerställer också att alla noder på ett tillförlitligt sätt återansluter till den nya API-serverslutpunkten. - Kapaciteten verifieras, men är inte reserverad: AKS validerar regional kapacitet när du aktiverar funktionen i ett befintligt kluster, men den här verifieringen reserverar inte kapacitet. Om du fördröjer omstarten 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 du konfigurerar IP-adressen för API-servern i brandväggar eller regler för nätverkssäkerhetsgrupp kan du behöva uppdatera dessa regler.
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>Starta om klustret med hjälp av kommandona [
az aks stop][az-aks-stop] och [az aks start][az-aks-start].az aks stop --name <cluster-name> --resource-group <resource-group> az aks start --name <cluster-name> --resource-group <resource-group>
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 update med --enable-private-cluster flaggan .
az aks update --name <cluster-name> \
--resource-group <resource-group> \
--enable-private-cluster \
--enable-apiserver-vnet-integration \
--apiserver-subnet-id <apiserver-subnet-resource-id>
Inaktivera privat klusterläge
Inaktivera privat klusterläge med kommandot az aks update med --disable-private-cluster flaggan .
az aks update --name <cluster-name> \
--resource-group <resource-group> \
--disable-private-cluster
Ansluta till klustret med kubectl
Konfigurera kubectl för att ansluta till klustret med hjälp av az aks get-credentials kommandot .
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 hjälp av Azure Private Link. Följande steg visar hur du skapar en Private Link-tjänst (PLS) i klustrets virtuella nätverk och ansluter till det från ett annat virtuellt nätverk eller en prenumeration med hjälp av en privat slutpunkt.
Kommentar
API Server VNet-integrering är inte tillgängligt i qatarcentral.
Skapa ett privat kluster för API Server VNet-integrering
Skapa ett privat AKS-kluster med API Server VNet-integrering med az aks create kommandot med flaggorna --enable-apiserver-vnet-integration och --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 Integration.
Säkerhetsregler för nätverkssäkerhetsgrupp (NSG)
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 | 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-undernätets CIDR. |
Relaterat innehåll
- Skapa ett AKS-automatiskt kluster
- Rekommenderade metoder finns i Metodtips för nätverksanslutning och säkerhet i AKS.
- Information om hur du konfigurerar private link med API Server VNet-integrering finns i Private Link med API Server VNet Integration.