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.
Ein Azure Kubernetes Service-Cluster (AKS) mit konfigurierter API-Server-VNet-Integration projiziert den API-Serverendpunkt direkt in ein delegiertes Subnetz in dem VNet, in dem AKS bereitgestellt wurde. Die API-Server-VNet-Integration ermöglicht die Netzwerkkommunikation zwischen dem API-Server und den Clusterknoten, ohne dass eine private Verbindung oder ein Tunnel erforderlich ist. Der API-Server steht hinter der VIP eines internen Lastenausgleichsmoduls im delegierten Subnetz zur Verfügung, für deren Verwendung die Knoten konfiguriert werden. Durch Verwendung der API-Server-VNet-Integration können Sie sicherstellen, dass der Netzwerkdatenverkehr zwischen Ihrem API-Server und den Knotenpools ausschließlich im privaten Netzwerk verbleibt.
API-Serverkonnektivität
Die Steuerungsebene oder der API-Server befindet sich in einem von AKS verwalteten Azure-Abonnement. Ihr Cluster oder Knotenpool befindet sich in Ihrem Azure-Abonnement. Der Server und die virtuellen Computer, die die Clusterknoten bilden, können miteinander über die API-Server-VIP und die Pod-IPs kommunizieren, die in das delegierte Subnetz projiziert werden.
Die API-Server-VNet-Integration wird für öffentliche oder private Cluster unterstützt. Sie können den öffentlichen Zugriff nach der Clusterbereitstellung hinzufügen oder entfernen. Im Gegensatz zu Clustern ohne VNet-Integration kommunizieren die Agent-Knoten immer direkt ohne DNS mit der privaten IP-Adresse der ILB-IP (Internal Load Balancer) des API-Servers. Der gesamte Datenverkehr von Knoten zum API-Server bleibt im privaten Netzwerk. Es ist kein Tunnel für die Konnektivität zwischen API-Server und Knoten erforderlich. Clients, die außerhalb des Clusters liegen, die mit dem API-Server kommunizieren müssen, können dies normalerweise tun, wenn der öffentliche Netzwerkzugriff aktiviert ist. Wenn der öffentliche Netzwerkzugriff deaktiviert ist, sollten Sie dieselbe private DNS-Einrichtungsmethode wie für standardmäßige private Cluster verwenden.
Voraussetzungen
- Sie müssen Azure CLI, Version 2.73.0 oder höher, installiert haben. Sie können Ihre Version mit dem
az --versionBefehl überprüfen.
Einschränkungen
- Die VNet-Integration des API-Servers unterstützt keine Virtuelle Netzwerkverschlüsselung. Cluster, die auf v3- oder früheren AKS-Knoten-SKUs bereitgestellt werden (die keine VNet-Verschlüsselung unterstützen), sind zulässig, aber der Datenverkehr wird nicht verschlüsselt. Cluster, die auf v4 oder höheren AKS-Knoten-SKUs bereitgestellt werden (die VNet-Verschlüsselung unterstützen), werden blockiert, da verschlüsselte VNets nicht mit der API-Server-VNet-Integration kompatibel sind. Details finden Sie unter AKS unterstützte VM-SKUs .
Verfügbarkeit
- Api Server VNet Integration ist in allen öffentlichen GA-Cloudregionen mit Ausnahme von Eastus2 und katarcentral verfügbar. Wir arbeiten kontinuierlich daran, dieses Feature in diesen Regionen zu aktivieren und diese Seite zu aktualisieren, wenn diese Regionen verfügbar sind.
Erstellen eines AKS-Clusters mit API-Server-VNet-Integration mit verwaltetem VNet
AKS-Cluster mit API-Server-VNet-Integration können entweder im Modus „Verwaltetes VNet“ oder im Modus „Bring-Your-Own-VNet“ konfiguriert werden. Sie können die Cluster entweder als öffentliche Cluster (mit über eine öffentliche IP-Adresse verfügbarem API-Serverzugriff) oder als private Cluster (wobei der API-Server nur über private VNet-Konnektivität zugänglich ist) erstellen. Zudem können Sie zwischen einem öffentlichen und einem privaten Zustand umschalten, ohne Ihren Cluster erneut bereitzustellen.
Erstellen einer Ressourcengruppe
Erstellen Sie mit dem Befehl
az group createeine Ressourcengruppe.az group create --location westus2 --name <resource-group>
Bereitstellen eines öffentlichen Clusters
Stellen Sie einen öffentlichen AKS-Cluster mit API-Server-VNet-Integration für verwaltetes VNet mit dem Befehl
az aks createund dem Flag--enable-api-server-vnet-integrationbereit.az aks create --name <cluster-name> \ --resource-group <resource-group> \ --location <location> \ --network-plugin azure \ --enable-apiserver-vnet-integration \ --generate-ssh-keys
Bereitstellen eines privaten Clusters
Stellen Sie einen privaten AKS-Cluster mit API-Server-VNet-Integration für verwaltetes VNet mit dem Befehl
az aks createsowie den Flags--enable-api-server-vnet-integrationund--enable-private-clusterbereit.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
Erstellen eines privaten AKS-Clusters mit API-Server-VNet-Integration im Modus „Bring-Your-Own-VNet“
Wenn Sie den Modus „Bring-Your-Own-VNet“ verwenden, müssen Sie ein API-Serversubnetz erstellen und an Microsoft.ContainerService/managedClusters delegieren, das dem AKS-Dienst Berechtigungen zum Einfügen der API-Serverpods und des internen Lastenausgleichsmoduls in dieses Subnetz erteilt. Sie können das Subnetz nicht für andere Workloads, jedoch für mehrere AKS-Cluster im selben virtuellen Netzwerk verwenden. Die kleinste unterstützte API-Serversubnetzgröße ist /28.
Die Clusteridentität benötigt Berechtigungen sowohl für das API-Serversubnetz als auch für das Knotensubnetz. Fehlende Berechtigungen im API-Serversubnetz können einen Bereitstellungsfehler verursachen.
Warnung
Ein AKS-Cluster reserviert mindestens 9 IP-Adressen im Subnetzadressraum. Eine unzureichende Anzahl von IP-Adressen kann die Skalierung von API-Servern verhindern, sodass ggf. nicht genügend API-Server vorhanden sind.
Erstellen einer Ressourcengruppe
- Erstellen Sie mit dem Befehl
az group createeine Ressourcengruppe.
az group create --location <location> --name <resource-group>
Erstellen eines virtuellen Netzwerks
Erstellen Sie ein virtuelles Netzwerk mit dem Befehl
az network vnet create.az network vnet create --name <vnet-name> \ --resource-group <resource-group> \ --location <location> \ --address-prefixes 172.19.0.0/16Erstellen Sie mit dem Befehl
az network vnet subnet createein API-Serversubnetz.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/28Erstellen Sie mit dem Befehl
az network vnet subnet createein Clustersubnetz.az network vnet subnet create --resource-group <resource-group> \ --vnet-name <vnet-name> \ --name <cluster-subnet-name> \ --address-prefixes 172.19.1.0/24
Erstellen einer verwalteten Identität und Erteilen von Berechtigungen im virtuellen Netzwerk
Erstellen Sie mithilfe des
az identity create-Befehls eine verwaltete Identität.az identity create --resource-group <resource-group> --name <managed-identity-name> --location <location>Weisen Sie dem API-Serversubnetz mit dem Befehl
az role assignment createdie Rolle „Netzwerkmitwirkender“ zu.az role assignment create --scope <apiserver-subnet-resource-id> \ --role "Network Contributor" \ --assignee <managed-identity-client-id>Weisen Sie dem Clustersubnetz mit dem Befehl
az role assignment createdie Rolle „Netzwerkmitwirkender“ zu.az role assignment create --scope <cluster-subnet-resource-id> \ --role "Network Contributor" \ --assignee <managed-identity-client-id>
Bereitstellen eines öffentlichen Clusters
Stellen Sie einen öffentlichen AKS-Cluster mit API-Server-VNet-Integration mit dem Befehl
az aks createund dem Flag--enable-api-server-vnet-integrationbereit.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
Bereitstellen eines privaten Clusters
Stellen Sie einen privaten AKS-Cluster mit API-Server-VNet-Integration mit dem Befehl
az aks createsowie den Flag--enable-api-server-vnet-integrationund--enable-private-clusterbereit.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
Konvertieren eines vorhandenen AKS-Clusters in API-Server-VNet-Integration
Warnung
Die VNet-Integration von API-Servern ist ein unidirektionales Feature, das kapazitätsempfindlich ist.
Manueller Neustart erforderlich.
Nach dem Aktivieren der API-Server-VNet-Integration mithilfe vonaz aks update --enable-apiserver-vnet-integrationmüssen Sie den Cluster sofort neu starten, damit die Änderung wirksam wird. Dieser Neustart ist nicht automatisiert. Die Verzögerung des Neustarts erhöht das Risiko, dass die Kapazität nicht mehr verfügbar ist, wodurch verhindert werden kann, dass der API-Server gestartet wird.Die Kapazität wird überprüft, aber nicht reserviert.
AKS überprüft regionale Kapazität, wenn Sie das Feature für einen vorhandenen Cluster aktivieren, aber diese Überprüfung reserviert keine Kapazität. Wenn der Neustart verzögert wird und die Kapazität in der Zwischenzeit nicht mehr verfügbar ist, kann der Cluster nach einem Stopp oder Neustart fehlschlagen. Cluster, die dieses Feature vor der allgemeinen Verfügbarkeit (GA) aktiviert haben oder die seit der Aktivierung noch nicht neu gestartet wurden, werden der Kapazitätsüberprüfung nicht unterzogen.Das Feature kann nicht deaktiviert werden.
Nach der Aktivierung ist das Feature dauerhaft. Sie können die API-Server-VNet-Integration nicht deaktivieren.
Dieses Upgrade führt ein Upgrade der Knotenimageversion in allen Knotenpools aus und startet alle Workloads neu, während ein paralleles Imageupgrade durchgeführt wird.
Warnung
Das Konvertieren eines Clusters in einen mit API-Server-VNet-Integration führt zu einer Änderung der IP-Adresse des API-Servers, obwohl der Hostname unverändert bleibt. Wenn die IP-Adresse des API-Servers in Firewalls oder Netzwerksicherheitsgruppenregeln konfiguriert wurde, müssen diese Regeln möglicherweise aktualisiert werden.
Aktualisieren Sie Ihren Cluster mit dem Befehl
az aks updateund dem Flag--enable-apiserver-vnet-integrationzu einem Cluster mit API-Server-VNET-Integration.az aks update --name <cluster-name> \ --resource-group <resource-group> \ --enable-apiserver-vnet-integration \ --apiserver-subnet-id <apiserver-subnet-resource-id>
Aktivieren oder Deaktivieren des privaten Clustermodus auf einem vorhandenen Cluster mit API-Server-VNet-Integration
Für mit API-Server-VNet-Integration konfigurierte AKS-Cluster kann der öffentliche Netzwerkzugriff/private Clustermodus aktiviert oder deaktiviert werden, ohne den Cluster erneut bereitzustellen. Der Hostname des API-Servers ändert sich nicht, öffentliche DNS-Einträge werden aber bei Bedarf geändert oder entfernt.
Hinweis
--disable-private-cluster befindet sich derzeit in der Vorschauphase. Weitere Informationen finden Sie unter Referenz und Supportebenen.
Aktivieren des privaten Clustermodus
Aktivieren Sie den privaten Clustermodus mit dem Befehl
az aks updatemit dem Flag--enable-private-cluster.az aks update --name <cluster-name> \ --resource-group <resource-group> \ --enable-private-cluster
Deaktivieren des privaten Clustermodus
Deaktivieren Sie den privaten Clustermodus mit dem Befehl
az aks updateund dem Flag--disable-private-cluster.az aks update --name <cluster-name> \ --resource-group <resource-group> \ --disable-private-cluster
Herstellen einer Verbindung mit dem Cluster mithilfe von „kubectl“
Konfigurieren Sie
kubectl, um mithilfe des Befehls „az aks get-credentials“ eine Verbindung mit Ihrem Cluster herzustellen.az aks get-credentials --resource-group <resource-group> --name <cluster-name>
Verfügbarmachen des API-Servers über private Verknüpfung
Sie können den API-Serverendpunkt eines privaten Clusters mit API-Server-VNet-Integration mit Azure Private Link verfügbar machen. Die folgenden Schritte zeigen, wie Sie einen privaten Linkdienst (PRIVATE Link Service, PLS) im Cluster-VNet erstellen und eine Verbindung mit diesem über ein anderes VNet oder Abonnement mithilfe eines privaten Endpunkts herstellen.
Erstellen eines privaten API-Server-VNet-Integrationsclusters
Erstellen Sie einen privaten AKS-Cluster mit API-Server-VNet-Integration mithilfe des
az aks create-Befehls und den Flags--enable-api-server-vnet-integrationund--enable-private-cluster.az aks create --name <cluster-name> \ --resource-group <resource-group> \ --location <location> \ --enable-private-cluster \ --enable-apiserver-vnet-integration
Weitere Anleitungen zum Einrichten des privaten Links mit der VNet-Integration von API-Servern finden Sie unter "Private Link with API Server VNet Integration".
NSG-Sicherheitsregeln
Der gesamte Datenverkehr innerhalb des VNet ist standardmäßig zulässig. Wenn Sie jedoch NSG-Regeln zum Einschränken des Datenverkehrs zwischen verschiedenen Subnetzen hinzugefügt haben, stellen Sie sicher, dass die NSG-Sicherheitsregeln die folgenden Kommunikationsarten zulassen:
| Bestimmungsort | `Source` | Protokoll | Hafen | Zweck |
|---|---|---|---|---|
| APIServer-Subnetz-CIDR | Clustersubnetz | TCP | 443 und 4443 | Erforderlich, um die Kommunikation zwischen Knoten und dem API-Server zu aktivieren. |
| APIServer-Subnetz-CIDR | Azure-Lastenausgleich | TCP | 9988 | Erforderlich, um die Kommunikation zwischen Azure Load Balancer und dem API-Server zu aktivieren. Sie können auch die gesamte Kommunikation zwischen dem Azure Load Balancer und dem API Server Subnet CIDR aktivieren. |
Nächste Schritte
- Entsprechende bewährte Methoden finden Sie unter Best Practices für Netzwerkkonnektivität und Sicherheit in AKS.
- Anleitungen zum Einrichten eines privaten Links mit der VNet-Integration von API-Servern finden Sie unter "Privater Link zur VNet-Integration von API-Servern".