Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Artikel hilft Ihnen bei der Bereitstellung eines auf einer privaten Verbindung basierenden AKS-Clusters. Wenn Sie einen AKS-Cluster ohne erforderlichen privaten Link oder Tunnel erstellen möchten, lesen Sie Erstellen eines Azure Kubernetes Service (AKS)-Clusters mit API Server VNet-Integration.
Übersicht über private Cluster in AKS
In einem privaten Cluster verfügt die Steuerungsebene oder der API-Server über interne IP-Adressen, die im RFC1918 - Adresszuweisung für privates Internetdokument definiert sind. Durch die Verwendung eines privaten Clusters können Sie sicherstellen, dass der Netzwerkdatenverkehr zwischen Ihrem API-Server und den Knotenpools ausschließlich im privaten Netzwerk verbleibt.
Die Steuerungsebene oder der API-Server befindet sich in einer von AKS verwalteten Azure-Ressourcengruppe, und Ihr Cluster oder Knotenpool befindet sich in Ihrer Ressourcengruppe. Der Server und der Cluster- oder Knotenpool können über den Azure Private Link-Dienst im virtuellen API-Servernetzwerk und einen privaten Endpunkt kommunizieren, der im Subnetz Ihres AKS-Clusters verfügbar gemacht wird.
Wenn Sie einen privaten AKS-Cluster erstellen, erstellt AKS standardmäßig private und öffentliche vollqualifizierte Domänennamen (FQDNs) mit entsprechenden DNS-Zonen. Ausführliche DNS-Konfigurationsoptionen finden Sie unter Konfigurieren einer privaten DNS-Zone, einer privaten DNS-Unterzone oder einer benutzerdefinierten Unterdomäne.
Regionale Verfügbarkeit
Private Cluster sind in öffentlichen Regionen, Azure Government und Microsoft Azure verfügbar, betrieben von 21Vianet-Regionen, in denen AKS unterstützt wird.
Voraussetzungen für private AKS-Cluster
- Die Azure CLI Version 2.28.0 oder höher. Führen Sie
az --versionaus, um die Version zu finden, und führen Sieaz upgradeaus, um ein Upgrade für die Version durchzuführen. Wenn Sie Azure CLI installieren oder aktualisieren müssen, lesen Sie " Installieren von Azure CLI". - Wenn Sie Azure Resource Manager (ARM) oder die Azure REST-API verwenden, muss die AKS-API-Version 2021-05-01 oder höher sein.
- Um einen benutzerdefinierten DNS-Server zu verwenden, fügen Sie die öffentliche Azure-IP-Adresse 168.63.129.16 als upstream-DNS-Server im benutzerdefinierten DNS-Server hinzu, und stellen Sie sicher, dass Sie diese öffentliche IP-Adresse als ersten DNS-Server hinzufügen. Weitere Informationen zur Azure-IP-Adresse finden Sie unter Was ist IP-Adresse 168.63.129.16?
- Die DNS-Zone des Clusters sollte das sein, was Sie an 168.63.129.16 weiterleiten. Weitere Informationen zu Zonennamen finden Sie in der DNS-Zonenkonfiguration von Azure-Diensten.
- Vorhandene AKS-Cluster, die mit der VNet-Integration von API-Servern aktiviert sind, können den privaten Clustermodus aktiviert haben. Weitere Informationen finden Sie unter Aktivieren oder Deaktivieren des privaten Clustermodus für einen vorhandenen Cluster mit API Server-VNet-Integration.
Wichtig
Ab dem 30. November 2025 unterstützt Azure Kubernetes Service (AKS) keine Sicherheitsupdates für Azure Linux 2.0 mehr oder stellt diese bereit. Das Azure Linux 2.0-Knotenimage ist eingefroren bei der Version 202512.06.0. Ab dem 31. März 2026 werden Knotenimages entfernt, und Sie können Ihre Knotenpools nicht skalieren. Migrieren Sie zu einer unterstützten Azure Linux-Version, indem Sie Ihre Knotenpools auf eine unterstützte Kubernetes-Version aktualisieren oder zu osSku AzureLinux3 migrieren. Weitere Informationen finden Sie unter [Stilllegung] von Azure Linux 2.0-Knotenpools in AKS.
Einschränkungen und Überlegungen für private AKS-Cluster
- Sie können keine IP-autorisierten Bereiche auf den Endpunkt des privaten API-Servers anwenden – sie gelten nur für den öffentlichen API-Server.
- Einschränkungen des Azure Private Link-Diensts gelten für private Cluster.
- Azure DevOps Microsoft-gehostete Agents mit privaten Clustern werden nicht unterstützt. Erwägen Sie die Verwendung selbst gehosteter Agents.
- Wenn Sie azure Container Registry für einen privaten AKS-Cluster aktivieren müssen, richten Sie einen privaten Link für die Containerregistrierung im virtuellen Clusternetzwerk (VNet) ein, oder richten Sie Peering zwischen dem virtuellen Netzwerk der Containerregistrierung und dem virtuellen Netzwerk des privaten Clusters ein.
- Das Löschen oder Ändern des privaten Endpunkts im Kundensubnetz bewirkt, dass der Cluster nicht mehr funktioniert.
- Der Azure Private Link-Dienst wird nur von Azure Load Balancer Standard unterstützt. Der Basic Azure Load Balancer wird nicht unterstützt.
Hub and Spoke mit benutzerdefiniertem DNS für private AKS-Cluster
Hub- und Spoke-Architekturen werden häufig zum Bereitstellen von Netzwerken in Azure verwendet. In vielen dieser Bereitstellungen sind die DNS-Einstellungen in den Spoke-VNets so konfiguriert, dass sie auf eine zentrale DNS-Weiterleitung verweisen, um eine lokale und Azure-basierte DNS-Auflösung zu ermöglichen.
Beachten Sie die folgenden Überlegungen beim Bereitstellen privater AKS-Cluster in Hub- und Speichenarchitekturen mit benutzerdefiniertem DNS:
Wenn ein privater Cluster erstellt wird, werden standardmäßig ein privater Endpunkt (1) und eine private DNS-Zone (2) in der clusterverwalteten Ressourcengruppe erstellt. Der Cluster verwendet einen
A-Eintrag in der privaten Zone, um die IP-Adresse des privaten Endpunkts für die Kommunikation mit dem API-Server aufzulösen.Die private DNS-Zone ist nur mit dem VNet verknüpft, an das die Clusterknoten angefügt sind (3), was bedeutet, dass der private Endpunkt nur von Hosts in diesem verknüpften VNet aufgelöst werden kann. In Szenarien, in denen kein benutzerdefiniertes DNS im VNet konfiguriert ist (Standard), funktioniert es problemlos, da Hosts auf 168.63.129.16 für DNS zeigen und Einträge in der privaten DNS-Zone aufgrund der Verknüpfung auflösen können.
Wenn Sie das standardmäßige Verhalten von privaten DNS-Zonen beibehalten, versucht AKS, die Zone direkt mit dem Spoke-VNet zu verbinden, das den Cluster hostet, auch wenn die Zone bereits mit einem Hub-VNet verbunden ist.
In Spoke-VNets, die benutzerdefinierte DNS-Server verwenden, kann diese Aktion fehlschlagen, wenn die verwaltete Identität des Clusters Netzwerk-Beitragender im Spoke-VNet fehlt.
Um den Fehler zu verhindern, wählen Sie eine der folgenden unterstützten Konfigurationen aus:
-
Benutzerdefinierte private DNS-Zone: Stellen Sie eine vordefinierte private Zone bereit, und legen Sie sie auf ihre Ressourcen-ID fest
privateDNSZone/--private-dns-zone. Verknüpfen Sie diese Zone mit dem entsprechenden VNet (z. B. dem Hub-VNet), und stellen SiepublicDNSauffalseein / verwenden Sie--disable-public-fqdn. -
Nur öffentliches DNS: Deaktivieren Sie die Erstellung privater Zonen, indem Sie
privateDNSZone/--private-dns-zoneaufnonesetzen undpublicDNSauf dem Standardwert (true) belassen /--disable-public-fqdnnicht verwenden.
-
Benutzerdefinierte private DNS-Zone: Stellen Sie eine vordefinierte private Zone bereit, und legen Sie sie auf ihre Ressourcen-ID fest
Wenn Sie BYO-Routingtabelle (Bring Your Own) mit kubenet und BYO DNS mit privaten Clustern verwenden, schlägt die Erstellung von Clustern fehl. Nach dem Fehler bei der Clustererstellung müssen Sie dem Subnetz die
RouteTablein der Knotenressourcengruppe zuordnen, damit die Erstellung erfolgreich ist.
Beachten Sie die folgenden Einschränkungen bei der Verwendung von benutzerdefiniertem DNS mit privaten AKS-Clustern:
- Die Einstellung
privateDNSZone/--private-dns-zoneaufnoneundpublicDNS: false/--disable-public-fqdngleichzeitig wird nicht unterstützt. - Die bedingte Weiterleitung unterstützt keine Unterdomänen.
Erstellen eines privaten AKS-Clusters mit grundlegender Standardnetzwerkkonfiguration.
Erstellen Sie mit dem Befehl
az group createeine Ressourcengruppe. Sie können auch eine vorhandene Ressourcengruppe für Ihren AKS-Cluster verwenden.az group create \ --name <private-cluster-resource-group> \ --location <location>Erstellen Sie mit dem Befehl „
az aks create“ mit dem--enable-private-cluster-Flag einen privaten Cluster mit Standardnetzwerk.Schlüsselparameter in diesem Befehl:
-
--enable-private-cluster: Aktiviert den privaten Clustermodus.
az aks create \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --load-balancer-sku standard \ --enable-private-cluster \ --generate-ssh-keys-
Konfigurieren Sie kubectl, um eine Verbindung mit dem privaten AKS-Cluster herzustellen.
Erstellen eines privaten AKS-Clusters mit erweiterten Netzwerken
Erstellen Sie mit dem Befehl
az group createeine Ressourcengruppe. Sie können auch eine vorhandene Ressourcengruppe für Ihren AKS-Cluster verwenden.az group create \ --name <private-cluster-resource-group> \ --location <location>Erstellen Sie einen privaten Cluster mit erweiterten Netzwerken mithilfe des
az aks createBefehls.Schlüsselparameter in diesem Befehl:
-
--enable-private-cluster: Aktiviert den privaten Clustermodus. -
--network-plugin azure: Gibt das Azure CNI-Netzwerk-Plug-In an. -
--vnet-subnet-id: Die Ressourcen-ID eines vorhandenen Subnetzes in einem virtuellen Netzwerk. -
--dns-service-ip: Eine verfügbare IP-Adresse im Kubernetes-Dienstadressenbereich, die für den Cluster-DNS-Dienst verwendet werden soll. -
--service-cidr: Ein CIDR-Notations-IP-Bereich, aus dem Dienstcluster-IPs zugewiesen werden sollen.
az aks create \ --resource-group <private-cluster-resource-group> \ --name <private-cluster-name> \ --load-balancer-sku standard \ --enable-private-cluster \ --network-plugin azure \ --vnet-subnet-id <subnet-id> \ --dns-service-ip 10.2.0.10 \ --service-cidr 10.2.0.0/24 --generate-ssh-keys-
Konfigurieren Sie kubectl, um eine Verbindung mit dem privaten AKS-Cluster herzustellen.
Verwenden von benutzerdefinierten Domänen mit privaten AKS-Clustern
Wenn Sie benutzerdefinierte Domänen konfigurieren möchten, die nur intern aufgelöst werden können, lesen Sie "Verwenden von benutzerdefinierten Domänen".
Deaktivieren eines öffentlichen FQDNs in einem privaten AKS-Cluster
Deaktivieren eines öffentlichen FQDN in einem neuen Cluster
Deaktivieren Sie einen öffentlichen FQDN beim Erstellen eines privaten AKS-Clusters mit dem Befehl
az aks createund dem Flag--disable-public-fqdn.az aks create \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --load-balancer-sku standard \ --enable-private-cluster \ --assign-identity <resource-id> \ --private-dns-zone <private-dns-zone-mode> \ --disable-public-fqdn \ --generate-ssh-keys
Deaktivieren eines öffentlichen FQDN in einem vorhandenen Cluster
Deaktivieren Sie einen öffentlichen FQDN in einem vorhandenen AKS-Cluster mit dem Befehl „
az aks update“ mit dem--disable-public-fqdn-Flag.az aks update \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --disable-public-fqdn
Konfigurieren einer privaten DNS-Zone, eines privaten DNS-Unterbereichs oder einer benutzerdefinierten Unterdomäne für einen privaten AKS-Cluster
Sie können private DNS-Einstellungen für einen privaten AKS-Cluster mithilfe der Azure CLI (mit dem --private-dns-zone Parameter) oder einer Azure Resource Manager (ARM)-Vorlage (mit der privateDNSZone Eigenschaft) konfigurieren. In der folgenden Tabelle sind die Optionen aufgeführt, die für den --private-dns-zone Parameter oder die privateDNSZone Eigenschaft verfügbar sind.
| Setting | Description |
|---|---|
system |
Der Standardwert beim Konfigurieren einer privaten DNS-Zone. Wenn Sie weglassen --private-dns-zone / privateDNSZone, erstellt AKS eine private DNS-Zone in der Knotenressourcengruppe. |
none |
Wenn Sie --private-dns-zone / privateDNSZone auf none festlegen, erstellt AKS keine private DNS-Zone. |
<custom-private-dns-zone-resource-id> |
Um diesen Parameter zu verwenden, müssen Sie eine private DNS-Zone im folgenden Format für die globale Azure-Cloud erstellen: privatelink.<region>.azmk8s.io oder <subzone>.privatelink.<region>.azmk8s.io. Sie benötigen die Ressourcen-ID der privaten DNS-Zone für die zukünftige Verwendung. Außerdem benötigen Sie eine vom Benutzer zugewiesene Identität oder einen Dienstprinzipal mit den Rollen " Mitwirkender der privaten DNS-Zone " und " Netzwerkmitwirkender" . Bei Clustern, die die API Server VNet-Integration verwenden, unterstützt eine private DNS-Zone das Benennungsformat von private.<region>.azmk8s.io oder <subzone>.private.<region>.azmk8s.io. Sie können diese Ressource nach dem Erstellen des Clusters nicht ändern oder löschen, da sie Leistungsprobleme und Clusterupgradefehler verursachen kann. Sie können --fqdn-subdomain <subdomain> nur mit <custom-private-dns-zone-resource-id> verwenden, um Unterdomänenfunktionen für privatelink.<region>.azmk8s.io bereitzustellen. Wenn Sie eine Unterzone angeben, gibt es eine Beschränkung von 32 Zeichen für den <subzone> Namen. |
Beachten Sie beim Konfigurieren von privatem DNS für einen privaten AKS-Cluster die folgenden Überlegungen:
- Wenn sich die private DNS-Zone in einem anderen Abonnement als der AKS-Cluster befindet, müssen Sie den Azure-Anbieter
Microsoft.ContainerServicesin beiden Abonnements registrieren. - Wenn Ihr AKS-Cluster mit einem Active Directory-Dienstprinzipal konfiguriert ist, unterstützt AKS keine Verwendung einer systemseitig zugewiesenen verwalteten Identität mit einer benutzerdefinierten privaten DNS-Zone. Der Cluster muss die vom Benutzer zugewiesene verwaltete Identitätsauthentifizierung verwenden.
Erstellen eines privaten AKS-Clusters mit privater DNS-Zone
Erstellen Sie einen privaten AKS-Cluster mit einer privaten DNS-Zone mithilfe des
az aks createBefehls.Schlüsselparameter in diesem Befehl:
-
--enable-private-cluster: Aktiviert den privaten Clustermodus. -
--private-dns-zone [system|none]: Konfiguriert die private DNS-Zone für den Cluster. Der Standardwert istsystem. -
--assign-identity <resource-id>: Die Ressourcen-ID einer vom Benutzer zugewiesenen verwalteten Identität mit den Rollen "Private DNS Zone Contributor " und "Network Contributor" .
az aks create \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --load-balancer-sku standard \ --enable-private-cluster \ --assign-identity <resource-id> \ --private-dns-zone [system|none] \ --generate-ssh-keys-
Konfigurieren Sie kubectl, um eine Verbindung mit dem privaten AKS-Cluster herzustellen.
Erstellen eines privaten AKS-Clusters mit einer benutzerdefinierten privaten DNS-Zone oder einer privaten DNS-Unterzone
Erstellen Sie einen privaten AKS-Cluster mit einer benutzerdefinierten privaten DNS-Zone oder Unterzone mithilfe des
az aks createBefehls.Schlüsselparameter in diesem Befehl:
-
--enable-private-cluster: Aktiviert den privaten Clustermodus. -
--private-dns-zone <custom-private-dns-zone-resource-id>|<custom-private-dns-subzone-resource-id>: Die Ressourcen-ID einer vordefinierten privaten DNS-Zone oder -Unterzone im folgenden Format für die globale Azure-Cloud:privatelink.<region>.azmk8s.iooder<subzone>.privatelink.<region>.azmk8s.io. -
--assign-identity <resource-id>: Die Ressourcen-ID einer vom Benutzer zugewiesenen verwalteten Identität mit den Rollen "Private DNS Zone Contributor " und "Network Contributor" .
# 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 <resource-id> \ --private-dns-zone [<custom-private-dns-zone-resource-id>|<custom-private-dns-subzone-resource-id>] \ --generate-ssh-keys-
Konfigurieren Sie kubectl, um eine Verbindung mit dem privaten AKS-Cluster herzustellen.
Erstellen eines privaten AKS-Clusters mit einer benutzerdefinierten privaten DNS-Zone und einer benutzerdefinierten Unterdomäne
Erstellen Sie einen privaten AKS-Cluster mit einer benutzerdefinierten privaten DNS-Zone und Unterdomäne mithilfe des
az aks createBefehls.Schlüsselparameter in diesem Befehl:
-
--enable-private-cluster: Aktiviert den privaten Clustermodus. -
--private-dns-zone <custom-private-dns-zone-resource-id>: Die Ressourcen-ID einer vordefinierten privaten DNS-Zone im folgenden Format für die globale Azure-Cloud:privatelink.<region>.azmk8s.io. -
--fqdn-subdomain <subdomain>: Die Unterdomäne, die für den Cluster-FQDN innerhalb der benutzerdefinierten privaten DNS-Zone verwendet werden soll. -
--assign-identity <resource-id>: Die Ressourcen-ID einer vom Benutzer zugewiesenen verwalteten Identität mit den Rollen "Private DNS Zone Contributor " und "Network Contributor" .
# 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 <resource-id> \ --private-dns-zone <custom-private-dns-zone-resource-id> \ --fqdn-subdomain <subdomain> \ --generate-ssh-keys-
Konfigurieren Sie kubectl, um eine Verbindung mit dem privaten AKS-Cluster herzustellen.
Aktualisieren eines vorhandenen privaten AKS-Clusters von einer privaten DNS-Zone auf öffentliche
Sie können nur von byo (Bring Your Own) oder system auf none aktualisieren. Es wird keine andere Kombination von Updatewerten unterstützt.
Warnung
Wenn Sie einen privaten Cluster von byo oder system auf none aktualisieren, stellen sich die Agent-Knoten auf die Verwendung eines öffentlichen FQDN um. In einem AKS-Cluster, der Azure Virtual Machine Scale Sets verwendet, wird ein Upgrade des Knotenabbilds durchgeführt, um Ihre Knoten mit dem öffentlichen FQDN zu aktualisieren.
Aktualisieren Sie einen privaten Cluster von
byoodersystemaufnone, indem Sie denaz aks update-Befehl verwenden und den--private-dns-zone-Parameter aufnonefestlegen.az aks update \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --private-dns-zone none
Konfigurieren von kubectl zum Herstellen einer Verbindung mit einem privaten AKS-Cluster
Um einen Kubernetes-Cluster zu verwalten, verwenden Sie den Kubernetes-Befehlszeilenclient kubectl.
kubectl ist bei Verwendung von Azure Cloud Shell bereits installiert. Um kubectl lokal zu installieren, verwenden Sie den Befehl az aks install-cli.
Mit dem Befehl
kubectlkönnen Sieaz aks get-credentialsfür die Verbindungsherstellung mit Ihrem Kubernetes-Cluster konfigurieren. Mit diesem Befehl werden die Anmeldeinformationen heruntergeladen und die Kubernetes-CLI für ihre Verwendung konfiguriert.az aks get-credentials --resource-group <private-cluster-resource-group> --name <private-cluster-name>Überprüfen Sie die Verbindung mit dem Cluster mithilfe des Befehls
kubectl get. Dieser Befehl gibt eine Liste der Clusterknoten zurück.kubectl get nodesDer Befehl gibt die Ausgabe ähnlich der folgenden Beispielausgabe zurück:
NAME STATUS ROLES AGE VERSION aks-nodepool1-12345678-vmss000000 Ready agent 3h6m v1.15.11 aks-nodepool1-12345678-vmss000001 Ready agent 3h6m v1.15.11 aks-nodepool1-12345678-vmss000002 Ready agent 3h6m v1.15.11