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.
Denna artikel hjälper dig att distribuera en privat länkbaserad AKS-kluster. Om du är intresserad av att skapa ett AKS-kluster utan nödvändig privat länk eller tunnel kan du läsa Skapa ett Azure Kubernetes Service-kluster med API Server VNet-integrering (förhandsversion).
Översikt
I ett privat kluster har kontrollplanet eller API-servern interna IP-adresser som definieras i dokumentet RFC1918 – Adressallokering för privat Internet . Genom att använda en privat kluster kan du säkerställa att nätverkstrafiken mellan din API-server och dina nodpooler förblir endast på det privata nätverket.
Kontrollplanet eller API-servern finns i en Azure-resursgrupp som hanteras av AKS, och ditt kluster eller nodgrupp finns i din resursgrupp. Servern och klustret eller nodpoolen kan kommunicera med varandra via Azure Private Link-tjänsten i det virtuella API-servernätverket och en privat slutpunkt som exponeras i undernätet för ditt AKS-kluster.
När du provisionerar en privat AKS-kluster, skapar AKS som standard en privat FQDN med en privat DNS-zon och en ytterligare offentlig FQDN med en motsvarande A
post i Azures offentliga DNS. Agentnoderna fortsätter att använda A
posten i den privata DNS-zonen för att lösa den privata IP-adressen för den privata slutpunkten för att kommunicera med API-servern.
Tillgänglighet i regionen
Privata kluster är tillgängliga i offentliga regioner, Azure Government och Microsoft Azure som drivs av 21Vianet-regioner där AKS stöds.
Förutsättningar
- Azure CLI version 2.28.0 eller senare. Kör
az --version
för att hitta versionen, och köraz upgrade
för att uppgradera versionen. Om du behöver installera eller uppgradera kan du läsa Installera Azure CLI. - Om du använder Azure Resource Manager (ARM) eller Azure REST API, måste AKS API-versionen vara 2021-05-01 eller högre.
- Om du vill använda en anpassad DNS-server lägger du till azures offentliga IP-adress 168.63.129.16 som den överordnade DNS-servern i den anpassade DNS-servern och ser till att lägga till den här offentliga IP-adressen som den första DNS-servern. Mer information om Azure IP-adressen finns i Vad är IP-adress 168.63.129.16?
- Klusterets DNS-zon ska vara den du vidarebefordrar till 168.63.129.16. Mer information om zonnamn finns i DNS-zonkonfigurationen för Azure-tjänster.
- Befintliga AKS-kluster som är aktiverade med API Server VNet-integrering kan ha aktiverat privat klusterläge. Mer information finns i Aktivera eller inaktivera privat klusterläge i ett befintligt kluster med API Server VNet-integrering.
Anmärkning
Azure Linux nodpool är nu allmänt tillgänglig (generell tillgänglighet). Mer information om fördelarna och distributionsstegen finns i Introduktion till Azure Linux Container Host for AKS.
Begränsningar
- IP-auktoriserade intervall kan inte tillämpas på den privata API-serverns slutpunkt, de gäller endast den offentliga API-servern.
- Begränsningar för Azure Private Link-tjänsten gäller privata kluster.
- Det finns inget stöd för Azure DevOps Microsoft-värdade agenter med privata kluster. Överväg att använda lokalt installerade agenter.
- Om du behöver göra så att Azure Container Registry fungerar med ett privat AKS-kluster konfigurerar du en privat länk för containerregistret i det virtuella klustrets virtuella nätverk eller konfigurerar peering mellan containerregistrets virtuella nätverk och det privata klustrets virtuella nätverk.
- Att ta bort eller ändra den privata slutpunkten i kundens delnät kommer att orsaka att klustret slutar fungera.
- Azure Private Link-tjänsten stöds endast på Standard Azure Load Balancer. Basisk Azure Load Balancer stöds inte.
Skapa en privat AKS-kluster
Skapa en resursgrupp med kommandot
az group create
. Du kan också använda en befintlig resursgrupp för din AKS-kluster.az group create \ --name <private-cluster-resource-group> \ --location <location>
Skapa ett privat kluster med grundläggande nätverk som standard genom att använda kommandot
az aks create
med flaggan--enable-private-cluster
.az aks create \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --load-balancer-sku standard \ --enable-private-cluster \ --generate-ssh-keys
Anslut till den privata klustern
Om du vill hantera ett Kubernetes-kluster använder du Kubernetes-kommandoradsklienten kubectl.
kubectl
är redan installerat om du använder Azure Cloud Shell. Om du vill installera kubectl
lokalt använder du kommandot az aks install-cli
.
Konfigurera
kubectl
för att ansluta till kubernetes-klustret med hjälp avaz aks get-credentials
kommandot . Det här kommandot laddar ned autentiseringsuppgifter och konfigurerar Kubernetes CLI för att använda dem.az aks get-credentials --resource-group <private-cluster-resource-group> --name <private-cluster-name>
Kontrollera anslutningen till klustret med hjälp av
kubectl get
kommandot . Det här kommandot returnerar en lista över klusternoderna.kubectl get nodes
Använd anpassade domäner
Om du vill konfigurera anpassade domäner som bara kan lösas internt kan du läsa Använda anpassade domäner.
Inaktivera en offentlig FQDN.
Inaktivera en offentlig FQDN på ett nytt kluster
Inaktivera en offentlig FQDN när du skapar ett privat AKS-kluster med hjälp av
az aks create
-kommandot med--disable-public-fqdn
-flaggan.az aks create \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --load-balancer-sku standard \ --enable-private-cluster \ --assign-identity <resourceID> \ --private-dns-zone <private-dns-zone-mode> \ --disable-public-fqdn \ --generate-ssh-keys
Inaktivera en offentlig FQDN på en befintlig kluster
Inaktivera ett offentligt FQDN på ett befintligt AKS-kluster med kommandot
az aks update
med--disable-public-fqdn
flaggan .az aks update \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --disable-public-fqdn
Konfigurera en privat DNS-zon
Du kan konfigurera privata DNS-zoner med hjälp av följande parametrar:
-
system
: Detta är standardvärdet. Om argumentet--private-dns-zone
utelämnas skapar AKS en privat DNS-zon i nodresursgruppen. -
none
: Standardinställningen är offentlig DNS. AKS skapar ingen privat DNS-zon. -
CUSTOM_PRIVATE_DNS_ZONE_RESOURCE_ID
: Detta kräver att du skapar en privat DNS-zon i följande format för det globala Azure-molnet:privatelink.<region>.azmk8s.io
eller<subzone>.privatelink.<region>.azmk8s.io
. Du behöver resurs-ID:t för den privata DNS-zonen för framtida bruk. Du behöver också en användartilldelad identitet eller tjänstens huvudkonto med rollerna Privat DNS-zonbidragsgivare och Nätverksbidragsgivare. När man distribuerar med hjälp av API-server VNet-integration, stöder en privat DNS-zon namngivningsformatetprivate.<region>.azmk8s.io
eller<subzone>.private.<region>.azmk8s.io
. Du kan inte ändra eller ta bort den här resursen när du har skapat klustret eftersom det kan orsaka prestandaproblem och klusteruppgraderingsfel.- Om den privata DNS-zonen finns i en annan prenumeration än AKS-klustret måste du registrera
Microsoft.ContainerServices
Azure-providern i båda prenumerationerna. - Du kan använda
fqdn-subdomain
tillsammans medCUSTOM_PRIVATE_DNS_ZONE_RESOURCE_ID
endast för att ge underdomänfunktioner tillprivatelink.<region>.azmk8s.io
. - Om din AKS-kluster är konfigurerad med en Active Directory-tjänstpartner, stödjer AKS inte användning av en systemtilldelad hanterad identitet med anpassad privat DNS-zon. Klustret måste använda användartilldelad hanterad identitetsautentisering.
- Om du specificerar en
<subzone>
, finns det en gräns på 32 tecken för namnet på<subzone>
.
- Om den privata DNS-zonen finns i en annan prenumeration än AKS-klustret måste du registrera
Anmärkning
Du kan konfigurera CUSTOM_PRIVATE_DNS_ZONE_RESOURCE_ID
med hjälp av en ARM-mall eller Azure CLI.
privateDNSZone
accepterar den privata DNZ-zonen resourceID
som visas i följande exempel:
properties.apiServerAccessProfile.privateDNSZone.
"apiServerAccessProfile": {
"enablePrivateCluster": true,
"privateDNSZone": "system|none|[resourceId(..., 'Microsoft.Network/privateDnsZones', 'privatelink.<region>.azmk8s.io']"
}
Skapa ett privat AKS-kluster med en privat DNS-zon
Skapa ett privat AKS-kluster med en privat DNS-zon med kommandot
az aks create
med följande flaggor:az aks create \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --load-balancer-sku standard \ --enable-private-cluster \ --assign-identity <resourceID> \ --private-dns-zone [system|none] \ --generate-ssh-keys
Skapa ett privat AKS-kluster med en anpassad privat DNS-zon eller privat DNS-underdelzon
Skapa ett privat AKS-kluster med en anpassad privat DNS-zon eller underzon med hjälp av
az aks create
kommandot med följande flaggor:# The custom private DNS zone name should be in the following format: "<subzone>.privatelink.<region>.azmk8s.io" az aks create \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --load-balancer-sku standard \ --enable-private-cluster \ --assign-identity <resourceID> \ --private-dns-zone <custom private dns zone or custom private dns subzone resourceID> \ --generate-ssh-keys
Skapa en privat AKS-kluster med en anpassad privat DNS-zon och anpassad underdomän.
Skapa en privat AKS-kluster med en anpassad privat DNS-zon och underdomän med
az aks create
kommandot med följande flaggor:# The custom private DNS zone name should be in one of the following formats: "privatelink.<region>.azmk8s.io" or "<subzone>.privatelink.<region>.azmk8s.io" az aks create \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --load-balancer-sku standard \ --enable-private-cluster \ --assign-identity <resourceID> \ --private-dns-zone <custom private dns zone resourceID> \ --fqdn-subdomain <subdomain> \ --generate-ssh-keys
Uppdatera ett privat kluster från en privat DNS-zon till offentlig
Du kan bara uppdatera från byo
eller system
till none
. Ingen annan kombination av uppdateringsvärden stöds. Innan du uppdaterar kontrollerar du att du ansluter till det privata klustret.
Varning
När du uppdaterar ett privat kluster från byo
eller system
till none
ändras agentnoderna till att använda ett offentligt FQDN. I ett AKS-kluster som använder Azure Virtual Machine Scale Sets utförs en nodavbildningsuppgradering för att uppdatera noderna med det offentliga FQDN.
Uppdatera ett privat kluster från
byo
ellersystem
tillnone
med kommandotaz aks update
med följande flaggor:az aks update \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --private-dns-zone none
Alternativ för att ansluta till den privata klustern
API-serverns slutpunkt har ingen publik IP-adress. För att hantera API-servern behöver du använda en virtuell maskin (VM) som har åtkomst till AKS-klustrets Azure Virtual Network (VNet). Det finns flera alternativ för att etablera nätverksanslutning till den privata klustern.
- Skapa en VM i samma VNet som AKS-klustret med hjälp av
az vm create
-kommandot med--vnet-name
-flaggan. - Använd en virtuell dator i ett separat nätverk och konfigurera peering för virtuella nätverk.
- Använd en Express Route- eller VPN-anslutning .
- Använd AKS-funktionen
command invoke
. - Använd en privat slutpunktanslutning.
- Använd en Cloud Shell-instans som distribuerats till ett undernät som är anslutet till API-servern för klustret.
Att skapa en VM i samma VNet som AKS-klustret är det enklaste alternativet. Expressroute och VPN:er medför kostnader och kräver ytterligare nätverkskomplexitet. Virtuell nätverkskoppling kräver att du planerar dina nätverks CIDR-intervall för att säkerställa att det inte finns några överlappande intervall.
Virtuellt nätverksparning
För att använda virtuell nätverkskoppling behöver du skapa en länk mellan det virtuella nätverket och den privata DNS-zonen.
- I Azure-portalen går du till din nodresursgrupp och väljer din privata DNS-zonresurs.
- I tjänstmenyn går du till DNS-hantering och väljer Läggtill>.
- På sidan Lägg till virtuell nätverkslänk konfigurerar du följande inställningar:
- Länknamn: Ange ett namn för länken för det virtuella nätverket.
- Virtuellt nätverk: Välj det virtuella nätverk som innehåller den virtuella datorn.
- Välj Skapa för att skapa länken för det virtuella nätverket.
- Gå till den resursgrupp som innehåller klustrets virtuella nätverk och välj din virtuella nätverksresurs.
- I tjänstmenyn går du till Inställningar och väljer Peerings>Lägg till.
- På sidan Lägg till peering konfigurerar du följande inställningar:
- Peeringlänknamn: Ange ett namn för peeringlänken.
- Virtuellt nätverk: Välj det virtuella nätverket för den virtuella datorn.
- Välj Lägg till för att skapa peering-länken.
Mer information finns i Peering för virtuella nätverk.
Nav och ekrar med anpassad DNS
Hubb- och ekerarkitekturer används ofta för att distribuera nätverk i Azure. I många av dessa distributioner är DNS-inställningarna i de förgrenade VNet:erna konfigurerade för att hänvisa till en central DNS-forwarder för att möjliggöra DNS-upplösning på plats och i Azure.
När du distribuerar ett AKS-kluster till en sådan nätverksmiljö finns det några särskilda överväganden:
När ett privat kluster etableras skapas som standard en privat slutpunkt (1) och en privat DNS-zon (2) i den klusterhanterade resursgruppen. Klustret använder en
A
-post i den privata zonen för att lösa IP-adressen till den privata slutpunkten för kommunikation med API-servern.Den privata DNS-zonen är endast kopplad till det VNet som klusternoderna är anslutna till (3). Detta betyder att den privata slutpunkten endast kan lösas av värdar i det kopplade virtuella nätverket. I scenarier där ingen anpassad DNS har konfigurerats på det virtuella nätverket (standard) fungerar detta utan problem eftersom värdar pekar på 168.63.129.16 för DNS som kan lösa poster i den privata DNS-zonen tack vare länken.
Om du behåller standardbeteendet för "privat-DNS-zon", försöker AKS länka zonen direkt till det virtuella ekernätverket som är värd för klustret, även när zonen redan är länkad till det virtuella hubbnätverket.
I virtuella ekernätverk som använder anpassade DNS-servrar kan den här åtgärden misslyckas om klustrets hanterade identitet saknar Network Contributor på det virtuella ekernätverket.
Om du vill förhindra felet väljer du någon av följande konfigurationer som stöds:Anpassad privat DNS-zon – Ange en fördefinierad privat zon och ange
privateDNSZone
dess resurs-ID. Länka zonen till lämpligt VNet (till exempel det virtuella hubbnätverket) och angepublicDNS
tillfalse
.Endast offentlig DNS – Inaktivera skapande av privat zon genom att ange
privateDNSZone
tillnone
och lämnapublicDNS
som standardvärde (true
).
Inställning
privateDNSZone: none
ochpublicDNS: false
på samma gång stöds inte.
Anmärkning
Villkorsstyrd vidarebefordran stöder inte underdomäner.
Anmärkning
Om du använder ta med din egen routningstabell med kubenet och tar med din egen DNS med privata kluster misslyckas klustrets skapande. För att göra klusterskapandet framgångsrikt behöver du associera RouteTable
i nodresursgruppen till subnettet efter det att klusterskapandet misslyckades.
Använd en privat slutpunktsanslutning
En privat slutpunkt kan ställas in så att ett VNet inte behöver vara peered för att kommunicera med den privata klustern. Skapa en ny privat slutpunkt i det virtuella nätverket som innehåller de konsumerande resurserna, och skapa sedan en länk mellan ditt virtuella nätverk och en ny privat DNS-zon i samma nätverk.
Viktigt
Om det virtuella nätverket är konfigurerat med anpassade DNS-servrar, behöver privat DNS ställas in korrekt för miljön. Mer information finns i dokumentationen om namnmatchning för virtuella nätverk .
Skapa en privat slutpunktresurs
Skapa en privat slutpunktresurs i ditt VNet:
- På startsidan för Azure-portalen väljer du Skapa en resurs.
- Sök efter privat slutpunkt och välj Skapa>privat slutpunkt.
- Välj Skapa.
- På fliken Grundläggande konfigurerar du följande inställningar:
-
Projektinformation
- Prenumeration: Välj den prenumeration där det privata klustret finns.
- Resursgrupp: Välj den resursgrupp som innehåller ditt virtuella nätverk.
-
Instansinformation
- Namn: Ange ett namn för din privata slutpunkt, till exempel myPrivateEndpoint.
- Region: Välj samma region som ditt virtuella nätverk.
-
Projektinformation
- Välj Nästa: Resurs och konfigurera följande inställningar:
- Anslutningsmetod: Välj Anslut till en Azure-resurs i min katalog.
- Prenumeration: Välj den prenumeration där det privata klustret finns.
- Resurstyp: Välj Microsoft.ContainerService/managedClusters.
- Resurs: Välj ditt privata kluster.
- Underresurs för mål: Välj hantering.
- Välj Nästa: Virtuellt nätverk och konfigurera följande inställningar:
-
Nätverkande
- Virtuellt nätverk: Välj ditt virtuella nätverk.
- Undernät: Välj ditt undernät.
-
Nätverkande
- Välj Nästa: DNS>Nästa: Taggar och (valfritt) konfigurera nyckelvärden efter behov.
- Välj Nästa: Granska + skapa>Skapa.
När resursen har skapats, notera den privata IP-adressen för den privata slutpunkten för framtida bruk.
Skapa en privat DNS-zon
När du har skapat den privata slutpunkten, skapa en ny privat DNS-zon med samma namn som den privata DNS-zonen som skapades av den privata klustret. Kom ihåg att skapa den här DNS-zonen i det virtuella nätverket som innehåller de förbrukande resurserna.
- I Azure-portalen går du till din nodresursgrupp och väljer din privata DNS-zonresurs.
- I tjänstmenyn går du till DNS-hantering och väljer Postuppsättningar och noterar följande:
- Namnet på den privata DNS-zonen, som följer mönstret
*.privatelink.<region>.azmk8s.io
. - Namnet på
A
-posten (exklusive det privata DNS-namnet). - Livstid (TTL).
- Namnet på den privata DNS-zonen, som följer mönstret
- På startsidan för Azure-portalen väljer du Skapa en resurs.
- Sök efter privat DNS-zon och välj Skapa>privat DNS-zon.
- På fliken Grundläggande konfigurerar du följande inställningar:
-
Projektinformation:
- Välj din prenumeration.
- Välj den resursgrupp där du skapade den privata slutpunkten.
-
Instansinformation
- Namn: Ange namnet på DNS-zonen som hämtades från föregående steg.
- Regionen är som standard platsen för resursgruppen.
-
Projektinformation:
- Välj Granska och skapa>Skapa.
Skapa en A
record
När den privata DNS-zonen har skapats, skapa en A
-post som kopplar den privata slutpunkten till den privata klustret:
- Gå till den privata DNS-zon som du skapade i föregående steg.
- På tjänstmenyn går du till DNS-hantering och väljer Postuppsättningar>Lägg till.
- På sidan Lägg till postuppsättning konfigurerar du följande inställningar:
-
Namn: Ange namnet som hämtats från
A
posten i det privata klustrets DNS-zon. - Typ: Välj A – Adressregister.
-
TTL: Ange numret från
A
posten i det privata klustrets DNS-zon. -
TTL-enhet: Ändra listrutevärdet så att det matchar det i posten
A
från den privata klustrets DNS-zon. - IP-adress: Ange IP-adressen för den privata slutpunkt som du skapade.
-
Namn: Ange namnet som hämtats från
- Välj Lägg till för att skapa posten
A
.
Viktigt
När du skapar posten A
använder du bara namnet och inte det fullständigt kvalificerade domännamnet (FQDN).
Länka den privata DNS-zonen till det virtuella nätverket
När posten A
har skapats länkar du den privata DNS-zonen till det virtuella nätverk som ska komma åt det privata klustret:
- Gå till den privata DNS-zon som du skapade i föregående steg.
- I tjänstmenyn går du till DNS-hantering och väljer Läggtill>.
- På sidan Lägg till virtuell nätverkslänk konfigurerar du följande inställningar:
- Länknamn: Ange ett namn på länken för det virtuella nätverket.
- Prenumeration: Välj den prenumeration där det privata klustret finns.
- Virtuellt nätverk: Välj det virtuella nätverket för ditt privata kluster.
- Välj Skapa för att skapa länken.
Det kan ta några minuter innan åtgärden har slutförts. När länken för det virtuella nätverket har skapats kan du komma åt den från fliken Länkar till virtuellt nätverk som du använde i steg 2.
Varning
- Om den privata klustern stängs av och startas om, tas den privata klusterns ursprungliga privata länktjänst bort och återskapas, vilket bryter anslutningen mellan din privata slutpunkt och den privata klustern. För att lösa detta problem, ta bort och återskapa eventuella användarskapade privata ändpunkter kopplade till den privata klustern. Om de återskapade privata slutpunkterna har nya IP-adresser måste du också uppdatera DNS-poster.
- Om du uppdaterar DNS-posterna i den privata DNS-zonen, säkerställer du att värden som du försöker ansluta från använder de uppdaterade DNS-posterna. Du kan verifiera detta med kommandot
nslookup
. Om du märker att uppdateringarna inte återspeglas i utdata kan du behöva tömma DNS-cachen på datorn och försöka igen.
Nästa steg
Rekommenderade metoder finns i Metodtips för nätverksanslutning och säkerhet i AKS.
Azure Kubernetes Service