Freigeben über


Einrichten der Netzwerkkonnektivität mit einem privaten Azure Kubernetes Service (AKS)-Cluster

In privaten AKS-Clustern hat der API-Serverendpunkt keine öffentliche IP-Adresse. Um den API-Server zu verwalten, müssen Sie einen virtuellen Computer (VM) oder Container verwenden, der Zugriff auf das virtuelle Netzwerk (VNet) des AKS-Clusters hat. Es gibt mehrere Optionen zum Einrichten der Netzwerkkonnektivität mit dem privaten Cluster:

Wählen Sie eine Konnektivitätsoption aus.

Azure Cloud Shell und Azure Bastion (Vorschau) sind die einfachsten Optionen. Express Route und VPNs fügen Kosten hinzu und erfordern zusätzliche Netzwerkkomplexität. Beim Peering virtueller Netzwerke müssen Sie Ihre Netzwerk-CIDR-Bereiche planen, um sicherzustellen, dass es keine überlappenden Bereiche gibt.

In der folgenden Tabelle werden die wichtigsten Unterschiede und Einschränkungen der Verwendung von Azure Cloud Shell und Azure Bastion beschrieben:

Option Azure Cloud Shell Azure Bastion (Vorschau)
Wichtige Unterschiede • Ephemeraler, browserbasierter Zugriff.
• Kostenwirksam.
• Kommt mit vorinstallierten Tools wie az cli und kubectl.
• Beständiger, dauerhafter Zugriff.
• Geeignet für die Verwaltung mehrerer Cluster.
• Verwenden Sie Ihre eigenen systemeigenen Clienttools.
Einschränkungen • Wird nicht unterstützt für AKS Automatic-Cluster oder Cluster mit einer Ressourcengruppe im Netzwerk (NRG)-Lockdown.
• Sie können nicht mehrere Cloud Shell-Sitzungen in verschiedenen VNets gleichzeitig haben.
• Wird nicht unterstützt für AKS Automatic-Cluster oder Cluster mit einer Ressourcengruppe im Netzwerk (NRG)-Lockdown.

Verbinden mit Azure Cloud Shell

Zum Herstellen einer Verbindung mit einem privaten AKS-Cluster über Azure Cloud Shell müssen die folgenden Schritte ausgeführt werden:

  • Bereitstellen erforderlicher Ressourcen: Sie müssen Cloud Shell in einem VNet bereitstellen, das Ihren privaten Cluster erreichen kann. Dieser Schritt stellt die erforderliche Infrastruktur bereit. Während Cloud Shell ein kostenloser Dienst ist, erfordert die Verwendung von Cloud Shell in einem VNet einige Ressourcen, die Kosten verursachen. Weitere Informationen finden Sie unter Bereitstellen von Cloud Shell in einem virtuellen Netzwerk.
  • Konfigurieren Sie die Verbindung: Nachdem Sie die Ressourcen bereitgestellt haben, kann jeder Benutzer im Abonnement, der über entsprechende Berechtigungen für den Cluster verfügt, Cloud Shell so konfigurieren, dass es im VNet bereitgestellt wird, um eine sichere Verbindung mit dem privaten Cluster zu ermöglichen.

Bereitstellen erforderlicher Ressourcen

Um die erforderlichen Ressourcen bereitzustellen und zu konfigurieren, müssen Sie über die Rollenzuweisung " Besitzer " für das Abonnement verfügen. Informationen zum Anzeigen und Zuweisen von Rollen finden Sie unter "Besitzer eines Abonnements auflisten".

Sie können die erforderlichen Ressourcen mithilfe des Azure-Portals oder der bereitgestellten ARM-Vorlage bereitstellen, wenn Sie die Infrastruktur als Code verwalten oder Organisationsrichtlinien besitzen, die bestimmte Ressourcenbenennungskonventionen erfordern.

Optional können Sie die bereitgestellten Ressourcen für zukünftige Verbindungen beibehalten oder nach Bedarf löschen und neu erstellen.

Verwenden des Azure-Portals (Vorschau)

Diese Option erstellt ein separates VNet mit den erforderlichen Ressourcen für Cloud Shell und konfiguriert das VNet-Peering für Sie.

  1. Navigieren Sie im Azure-Portal zu Ihrer privaten Clusterressource.
  2. Wählen Sie auf der Seite "Übersicht " die Option "Verbinden" aus.
  3. Wählen Sie auf der Registerkarte "Cloud Shell " unter "Voraussetzungen für private Clusterverbindung" die Option "Konfigurieren" aus, um die erforderlichen Ressourcen bereitzustellen.
    • Die Bereitstellung erstellt eine neue Ressourcengruppe mit dem Namen RG-CloudShell-PrivateClusterConnection-{RANDOM_ID}.
  4. Nachdem die Bereitstellung erfolgreich war, wählen Sie unter "Clusterkontext festlegen" die Option "Cloud Shell öffnen" aus.

Screenshot des Azure-Portals auf der Ressourcenseite eines privaten Clusters mit der Schaltfläche

Hinweis

Wenn Sie Cloud Shell bereits in einem VNet für einen bestimmten Cluster konfiguriert haben, stellen Sie durch Wiederholen dieser Schritte sicher, dass Ihre Cloud Shell-Benutzereinstellungen ordnungsgemäß an diesem VNet ausgerichtet sind.

Verwenden einer ARM-Vorlage

Um mehr Kontrolle über die Bereitstellungskonfiguration zu haben, verwenden Sie die bereitgestellte ARM-Vorlage.

Sie können Cloud Shell im selben VNet wie Ihr privater AKS-Cluster mit einem dedizierten Subnetz bereitstellen oder in einem neuen VNet bereitstellen und über VNet-Peering eine Verbindung herstellen.

Konfigurieren der Verbindung mit dem privaten Cluster

Nachdem Sie die erforderlichen Ressourcen bereitgestellt haben, kann jeder Benutzer im Abonnement seine Cloud Shell so konfigurieren, dass er in dem angegebenen VNet bereitgestellt wird, indem er die Schritte in " Cloud Shell konfigurieren" für die Verwendung eines virtuellen Netzwerks verwendet.

Stellen Sie sicher, dass der Benutzer über den entsprechenden Zugriff auf Kubernetes-Ebene verfügt, um erfolgreich eine Verbindung mit dem privaten Cluster herzustellen. Weitere Informationen finden Sie unter Access- und Identitätsoptionen für Azure Kubernetes Service (AKS).For more information, see Access and identity options for Azure Kubernetes Service (AKS).

Verbinden mit Azure Bastion (Vorschau)

Azure Bastion ist ein vollständig verwalteter PaaS-Dienst, den Sie bereitstellen, um eine sichere Verbindung mit privaten Ressourcen über private IP-Adressen herzustellen. Verwenden Sie das native Client-Tunnel-Feature von Bastion und siehe Verbinden mit dem privaten AKS-Cluster mit Azure Bastion.

Verbinden über VNet-Peering (Virtual Network)

Um VNet-Peering zu verwenden, müssen Sie eine Verbindung zwischen dem VNet und der privaten DNS-Zone einrichten. Sie können das VNet-Peering entweder über das Azure-Portal oder die Azure CLI einrichten.

Verwenden des Azure-Portals

  1. Navigieren Sie im Azure-Portal zu Ihrer Knotenressourcengruppe, und wählen Sie Ihre private DNS-Zonenressource aus.

  2. Wählen Sie im Dienstmenü unter DNS-Verwaltung die Option "Virtuelle Netzwerklinks>hinzufügen" aus.

  3. Konfigurieren Sie auf der Seite " Virtuelle Netzwerkverbindung hinzufügen " die folgenden Einstellungen:

    • Linkname: Geben Sie einen Namen für die virtuelle Netzwerkverbindung ein.
    • Virtuelles Netzwerk: Wählen Sie das virtuelle Netzwerk aus, das den virtuellen Computer enthält.
  4. Wählen Sie "Erstellen" aus, um die virtuelle Netzwerkverbindung zu erstellen.

  5. Navigieren Sie zu der Ressourcengruppe, die das virtuelle Netzwerk Ihres AKS-Clusters enthält, und wählen Sie Ihre virtuelle Netzwerkressource aus.

  6. Wählen Sie im Dienstmenü unter "Einstellungen" die Option "Peerings>Hinzufügen" aus.

  7. Konfigurieren Sie auf der Seite " Peering hinzufügen " die folgenden Einstellungen:

    • Name des Peeringlinks: Geben Sie einen Namen für den Peeringlink ein.
    • Virtuelles Netzwerk: Wählen Sie das virtuelle Netzwerk der VM aus.
  8. Wählen Sie "Hinzufügen" aus, um den Peeringlink zu erstellen.

Weitere Informationen finden Sie unter Virtual Network Peering.

Verwenden Sie die Azure CLI

  1. Erstellen Sie mit dem az network private-dns link vnet create-Befehl eine neue Verknüpfung, um das virtuelle Netzwerk des virtuellen Computers der privaten DNS-Zone hinzuzufügen.

    az network private-dns link vnet create \
        --name <new-link-name> \
        --resource-group <node-resource-group-name> \
        --zone-name <private-dns-zone-name> \
        --virtual-network <vm-virtual-network-resource-id> \
        --registration-enabled false
    
  2. Erstellen Sie mit dem az network vnet peering create-Befehl ein Peering zwischen dem virtuellen Netzwerk des virtuellen Computers und dem virtuellen Netzwerk der Knotenressourcengruppe.

    az network vnet peering create \
        --name <new-peering-name-1> \
        --resource-group <vm-virtual-network-resource-group-name> \
        --vnet-name <vm-virtual-network-name> \
        --remote-vnet <node-resource-group-virtual-network-resource-id> \
        --allow-vnet-access
    
  3. Erstellen Sie mit dem az network vnet peering create-Befehl ein zweites Peering zwischen dem virtuellen Netzwerk der Knotenressourcengruppe und dem virtuellen Netzwerk des virtuellen Computers.

    az network vnet peering create \
        --name <new-peering-name-2> \
        --resource-group <node-resource-group-name> \
        --vnet-name <node-resource-group-virtual-network-name> \
        --remote-vnet <vm-virtual-network-resource-id> \
        --allow-vnet-access
    
  4. Listen Sie die Peerings für virtuelle Netzwerke auf, die Sie mit dem az network vnet peering list-Befehl erstellt haben.

    az network vnet peering list \
        --resource-group <node-resource-group-name> \
        --vnet-name <private-dns-zone-name>
    

Verwenden einer privaten Endpunktverbindung

Sie können einen privaten Endpunkt einrichten, sodass ein VNet nicht mit dem privaten Cluster verbunden sein muss, um mit diesem zu kommunizieren. Um eine private Endpunktverbindung einzurichten, erstellen Sie zuerst einen neuen privaten Endpunkt im virtuellen Netzwerk, der die verbrauchten Ressourcen enthält, und erstellen dann eine Verbindung zwischen Ihrem virtuellen Netzwerk und einer neuen privaten DNS-Zone im selben Netzwerk.

Von Bedeutung

Wenn das virtuelle Netzwerk mit benutzerdefinierten DNS-Servern konfiguriert ist, müssen Sie privates DNS entsprechend für die Umgebung einrichten. Weitere Informationen finden Sie in der Dokumentation zur Namensauflösung für virtuelle Netzwerke.

Privaten Endpunktressource erstellen

  1. Wählen Sie auf der Startseite des Azure-Portals die Option "Ressource erstellen" aus.

  2. Suchen Sie nach privatem Endpunkt, und wählen Sie "Privaten Endpunkt> aus.

  3. Wählen Sie "Erstellen" aus.

  4. Konfigurieren Sie auf der Registerkarte Grundlegende Einstellungen die folgenden Einstellungen:

    • Projektdetails

      • Abonnement: Wählen Sie das Abonnement aus, in dem sich Ihr privater Cluster befindet.
      • Ressourcengruppe: Wählen Sie die Ressourcengruppe aus, die Ihr virtuelles Netzwerk enthält.
    • Instanzdetails

      • Name: Geben Sie einen Namen für Ihren privaten Endpunkt ein, z. B. myPrivateEndpoint.
      • Region: Wählen Sie dieselbe Region wie Ihr virtuelles Netzwerk aus.
  5. Wählen Sie "Weiter: Ressource" aus und konfigurieren die folgenden Einstellungen:

    • Verbindungsmethode: Wählen Sie in meinem Verzeichnis eine Verbindung mit einer Azure-Ressource aus.
    • Abonnement: Wählen Sie das Abonnement aus, in dem sich Ihr privater Cluster befindet.
    • Ressourcentyp: Wählen Sie "Microsoft.ContainerService/managedClusters" aus.
    • Ressource: Wählen Sie Ihren privaten Cluster aus.
    • Zielunterressource: Verwaltung auswählen.
  6. Wählen Sie "Weiter" aus: Virtuelles Netzwerk und konfigurieren Sie die folgenden Einstellungen:

    • Vernetzung
      • Virtuelles Netzwerk: Wählen Sie Ihr virtuelles Netzwerk aus.
      • Subnetz: Wählen Sie Ihr Subnetz aus.
  7. Wählen Sie Weiter: DNS>Weiter: Tags und (optional) richten Sie Schlüssel-Werte nach Bedarf ein.

  8. Wählen Sie "Weiter" aus: Überprüfen + Erstellen>.

Nachdem die Ressource erstellt wurde, notieren Sie die private IP-Adresse des privaten Endpunkts für die zukünftige Verwendung.

Erstellen einer privaten DNS-Zone

Nachdem Sie den privaten Endpunkt erstellt haben, erstellen Sie eine neue Privates DNS-Zone mit demselben Namen wie die Privates DNS-Zone, die vom privaten Cluster erstellt wurde. Denken Sie daran, diese DNS-Zone im VNet zu erstellen, das die verbrauchten Ressourcen enthält.

  1. Navigieren Sie im Azure-Portal zu Ihrer Knotenressourcengruppe, und wählen Sie Ihre private DNS-Zonenressource aus.

  2. Wählen Sie im Menü "Dienst" unter "DNS-Verwaltung" Recordsets aus, und notieren Sie sich Folgendes:

    • Der Name der privaten DNS-Zone, der dem Muster „*.privatelink.<region>.azmk8s.io“ folgt.
    • Der Name des A-Eintrags (ohne den privaten DNS-Namen).
    • Die Gültigkeitsdauer (Time To Live, TTL).
  3. Wählen Sie auf der Startseite des Azure-Portals die Option "Ressource erstellen" aus.

  4. Suchen Sie nach der Privaten DNS-Zone, und wählen Sie "Private DNS-Zone>" aus.

  5. Konfigurieren Sie auf der Registerkarte Grundlegende Einstellungen die folgenden Einstellungen:

    • Projektdetails

      • Wählen Sie Ihr Abonnement aus.
      • Wählen Sie die Ressourcengruppe aus, in der Sie den privaten Endpunkt erstellt haben.
    • Instanzdetails

      • Name: Geben Sie den Namen der DNS-Zone ein, die aus den vorherigen Schritten abgerufen wurde.
      • Region: Standardmäßig ist dies der Standort Ihrer Ressourcengruppe.
  6. Wählen Sie Bewerten + erstellen>Erstellen aus.

Erstellen eines A-Eintrags

Nachdem die private DNS-Zone erstellt wurde, erstellen Sie einen A Eintrag, der dem privaten Cluster den privaten Endpunkt zuordnet.

  1. Navigieren Sie zu Ihrer privaten DNS-Zonenressource.

  2. Wählen Sie im Menü "Dienst" unter "DNS-Verwaltung" die Option "Recordsets>hinzufügen" aus.

  3. Konfigurieren Sie auf der Seite " Datensatzsatz hinzufügen " die folgenden Einstellungen:

    • Name: Geben Sie den Namen ein, der aus dem A Eintrag in der DNS-Zone des privaten Clusters abgerufen wurde.
    • Typ: Wählen Sie A - Adressdatensatz aus.
    • TTL: Geben Sie die Nummer aus dem A Eintrag in der DNS-Zone des privaten Clusters ein.
    • TTL-Einheit: Ändern Sie den Dropdownwert so, dass er dem Eintrag aus A der DNS-Zone des privaten Clusters entspricht.
    • IP-Adresse: Geben Sie die IP-Adresse des privaten Endpunkts ein, den Sie erstellt haben.
  4. Wählen Sie "Hinzufügen" aus, um den A Datensatz zu erstellen.

Von Bedeutung

Verwenden Sie beim Erstellen des A-Eintrags nur den Namen und nicht den vollständig qualifizierten Domänennamen (FQDN).

Nachdem der A Eintrag erstellt wurde, verknüpfen Sie die private DNS-Zone mit dem virtuellen Netzwerk, das auf den privaten Cluster zugreift.

  1. Navigieren Sie zu Ihrer privaten DNS-Zonenressource.

  2. Wählen Sie im Dienstmenü unter DNS-Verwaltung die Option "Virtuelle Netzwerklinks>hinzufügen" aus.

  3. Konfigurieren Sie auf der Seite " Virtuelle Netzwerkverbindung hinzufügen " die folgenden Einstellungen:

    • Linkname: Geben Sie einen Namen für Ihre virtuelle Netzwerkverbindung ein.
    • Abonnement: Wählen Sie das Abonnement aus, in dem sich Ihr privater Cluster befindet.
    • Virtuelles Netzwerk: Wählen Sie das virtuelle Netzwerk Ihres privaten Clusters aus.
  4. Wählen Sie "Erstellen" aus, um den Link zu erstellen.

    Es kann einige Minuten dauern, bis der Vorgang abgeschlossen ist. Nachdem die virtuelle Netzwerkverbindung erstellt wurde, können Sie über die Registerkarte "Virtuelle Netzwerklinks ", die Sie in Schritt 2 verwendet haben, darauf zugreifen.

Warnung

  • Wenn der private Cluster angehalten und neu gestartet wird, wird der ursprüngliche private Link-Dienst des privaten Clusters entfernt und neu erstellt, wodurch die Verbindung zwischen Ihrem privaten Endpunkt und dem privaten Cluster unterbrochen wird. Um dieses Problem zu beheben, löschen Sie alle vom Benutzer erstellten privaten Endpunkte, die mit dem privaten Cluster verknüpft sind, und erstellen Sie sie neu. Wenn die neu erstellten privaten Endpunkte über neue IP-Adressen verfügen, müssen Sie auch DNS-Einträge aktualisieren.
  • Wenn Sie die DNS-Einträge in der privaten DNS-Zone aktualisieren, stellen Sie sicher, dass der Host, von dem aus eine Verbindung hergestellt werden soll, die aktualisierten DNS-Einträge verwendet. Sie können dies mithilfe des nslookup-Befehls überprüfen. Wenn Sie feststellen, dass die Updates nicht in der Ausgabe widergespiegelt werden, müssen Sie möglicherweise den DNS-Cache auf Ihrem Computer leeren und es erneut versuchen.

Erstellen eines virtuellen Computers im selben virtuellen Netzwerk

Um einen virtuellen Computer im selben VNet wie Ihr privater AKS-Cluster zu erstellen, verwenden Sie den az vm create Befehl mit dem --vnet-name Flag, um das VNet anzugeben.

az vm create \
    --resource-group <resource-group-name> \
    --name <vm-name> \
    --image <image-name> \
    --vnet-name <vm-virtual-network-name> \
    --subnet <subnet-name> \
    --admin-username <admin-username> \
    --admin-password <admin-password>

Verwenden einer Expressroute oder VPN-Verbindung

Informationen zur Verwendung einer Expressroute- oder VPN-Verbindung finden Sie unter "Informationen zu virtuellen ExpressRoute-Netzwerkgateways".

Verwenden Sie die AKS-Funktion command invoke

Informationen zum Verwenden der AKS-Funktion command invoke zum Herstellen einer Verbindung mit einem privaten Cluster finden Sie unter Access a private cluster using command invoke.

Weitere Informationen zu privaten Clustern in AKS finden Sie unter Erstellen eines privaten Azure Kubernetes Service (AKS)-Clusters.