Freigeben über


Zugreifen auf einen Azure Kubernetes Service (AKS)-API-Server

Azure Bastion
Azure ExpressRoute
Azure Kubernetes Service (AKS)
Azure Private Link
Azure VPN Gateway

In diesem Artikel werden Optionen zum Herstellen einer Verbindung mit dem API-Server Ihres Azure Kubernetes Service (AKS)-Clusters beschrieben. In einem Standard-AKS-Cluster wird der API-Server über das Internet verfügbar gemacht. In einem privaten AKS-Cluster können Sie nur über ein Gerät mit Netzwerkzugriff auf den privaten Cluster eine Verbindung mit dem Internet herstellen.

Die Planung des API-Serverzugriffs ist eine Day-Zero-Aktivität, und wie Sie auf den Server zugreifen, hängt von Ihrem Bereitstellungsszenario ab.

AKS-API-Serverzugriff

Um einen AKS-Cluster zu verwalten, interagieren Sie mit seinem API-Server. Es ist wichtig, den API-Serverzugriff nur auf die erforderlichen Benutzer zu beschränken. Sie können einen präzisen Zugriff ermöglichen, indem Sie den AKS-Cluster mit Microsoft Entra ID integrieren. Administratoren können den Zugriff mithilfe der rollenbasierten Zugriffssteuerung (RBAC) verwalten. Sie können auch Benutzer und Identitäten in Microsoft Entra-Gruppen platzieren und entsprechende Rollen und Berechtigungen zuweisen. Die Microsoft Entra-Authentifizierung ist in AKS-Clustern über OpenID Connect aktiviert. Weitere Informationen finden Sie in den folgenden Ressourcen:

Anmerkung

Sie können die AKS-Clustersicherheit verbessern, indem Sie nur autorisierten IP-Adressbereiche den Zugriff auf den API-Server zulassen.

Azure DDoS Protection, kombiniert mit bewährten Methoden für den Anwendungsentwurf, bietet erweiterte Entschärfungsfeatures gegen verteilte Denial-of-Service-Angriffe (DDoS). Aktivieren Sie den DDoS-Schutz in jedem virtuellen Umkreisnetzwerk.

Zugreifen auf einen AKS-Cluster über das Internet

Wenn Sie einen nicht privaten Cluster erstellen, der den vollqualifizierten Domänennamen (Fully Qualified Domain Name, FQDN) des API-Servers auflöst, wird standardmäßig eine öffentliche IP-Adresse zugewiesen. Sie können eine Verbindung mit Ihrem Cluster herstellen, indem Sie das Azure-Portal oder eine Shell wie Azure CLI, PowerShell oder Eingabeaufforderung verwenden.

Anmerkung

Sie können den Kubernetes-Befehlszeilenclient kubectl verwenden , um eine Verbindung mit einem Cluster über das Internet herzustellen.

Cloud Shell

Azure Cloud Shell ist eine shell, die in das Azure-Portal integriert ist. Sie können Azure-Ressourcen über Cloud Shell verwalten und eine Verbindung herstellen, z. B. über PowerShell oder Azure CLI.

Zugreifen auf einen privaten AKS-Cluster

Es gibt mehrere Möglichkeiten, eine Verbindung mit einem privaten AKS-Cluster herzustellen. Die Planung des Zugriffs ist eine Tägliche-Null-Aktivität, die auf den Anforderungen und Einschränkungen Ihres Szenarios basiert. Sie können eine Verbindung mit Ihrem privaten Cluster herstellen, indem Sie die folgenden Komponenten und Dienste verwenden:

  • Ein Sprungfeld, das in einem Subnetz als Arbeitsstation bereitgestellt wird: Diese Einrichtung kann eigenständige, persistente virtuelle Computer (VMs) in einem Verfügbarkeitssatz oder Azure Virtual Machine Scale Setssein.

  • Azure-Containerinstanzen und ein OpenSSH-kompatibler Client: Bereitstellen einer Containerinstanz, die einen Ssh-Server (Secure Shell) ausführt, und verwenden Sie dann Ihren openSSH-kompatiblen Client, um auf den Container zuzugreifen. Dieser Container dient als Sprungfeld in Ihrem Netzwerk, um Ihren privaten Cluster zu erreichen.

  • Azure Bastion: Verwenden Sie Azure Bastion, um einen sichereren, browserbasierten Remotezugriff auf Ihre virtuellen Computer oder Sprungfelder in Ihrem virtuellen Azure-Netzwerk einzurichten. Mit diesem Zugriff können Sie eine sicherere Verbindung mit privaten Endpunkten wie Ihrem AKS-API-Server herstellen.

  • VPN(Virtual Private Network): Erstellen Einer sicheren VPN-Verbindung, die Ihr lokales oder Remotenetzwerk in Ihr virtuelles Netzwerk erweitert. Mit dieser Verbindung können Sie auf Ihren privaten Cluster zugreifen, z. B. lokal verbunden.

  • Azure ExpressRoute: Verwenden von ExpressRoute, um eine dedizierte private Verbindung zwischen Ihrem lokalen Netzwerk und Azure zu erstellen. Diese Verbindung trägt dazu bei, einen sichereren und zuverlässigeren Zugriff auf Ihren privaten Cluster zu gewährleisten, ohne das öffentliche Internet zu verwenden.

  • Azure CLI Azks-Befehl ruft Befehl auf: Ausführen von Befehlen direkt auf Ihrem AKS-Cluster mithilfe der Azure CLI mit dem Befehl az aks command invoke. Dieser Befehl interagiert mit dem Cluster, ohne weitere Netzwerkendpunkte verfügbar zu geben.

  • Cloud Shell Instanz, die in einem Subnetz bereitgestellt wird, das mit dem API-Server für den Cluster verbunden ist: Bereitstellen von Cloud Shell in einem Subnetz, das mit dem API-Server Ihres Clusters verknüpft ist. Dieser Ansatz bietet eine sicherere, verwaltete Befehlszeilenumgebung zum Verwalten Ihres privaten Clusters.

  • Azure Virtual Desktop: auf Azure Virtual Desktop zugreifen, um Windows- oder Linux-Desktops als Sprungfelder zu verwenden, um Ihren privaten Cluster von praktisch überall aus sicherer zu verwalten.

Anmerkung

Der gesamte Datenverkehr an den API-Server wird über das Übertragungssteuerungsprotokoll an Port 443 über HTTPS übertragen. Netzwerksicherheitsgruppen (NSGs) oder andere Netzwerkfirewalls müssen Datenverkehr vom Ursprung zum FQDN des API-Servers an Port 443 für HTTPS zulassen. Datenverkehrszertifikate sollten speziell auf den FQDN für den API-Server des Clusters beschränkt werden.

Azure Bastion

Azure Bastion ist eine Plattform als Dienst, die sichere Remotedesktopprotokoll (RDP) oder SSH-Verbindungen zu einer VM in Ihrem virtuellen Netzwerk ermöglicht, die keine öffentliche IP-Adresse auf dem virtuellen Computer erfordert. Wenn Sie eine Verbindung mit einem privaten AKS-Cluster herstellen, verwenden Sie Azure Bastion, um auf ein Sprungfeld im virtuellen Hubnetzwerk zuzugreifen.

Alternativ können Sie SSH, RDP und Remotedesktopdienste verwenden, um Sprungfelder remote zu steuern. Der AKS-Cluster befindet sich in einem Speichennetzwerk, das ihn vom Sprungfeld trennt. Virtuelles Netzwerk-Peering verbindet die Hub- und Speichennetzwerke. Das Sprungfeld kann den FQDN des AKS-API-Servers mithilfe von Azure Private Endpoint, einer privaten DNS-Zone und einem DNS-A-Eintrag auflösen. Mit diesem Setup wird sichergestellt, dass der FQDN des API-Servers nur innerhalb des virtuellen Netzwerks aufgelöst werden kann. Diese Konfiguration stellt eine vertrauenswürdige Verbindung mit dem privaten AKS-Cluster bereit.

Anmerkung

Für den kontinuierlichen Zugriff auf Ihren privaten AKS-Cluster sind die Verfügbarkeit und Redundanz Ihrer Sprungfelder von entscheidender Bedeutung. Um diese Zuverlässigkeit zu gewährleisten, platzieren Sie Ihre Sprungfelder in Verfügbarkeitsgruppen, und verwenden Sie Skalierungssätze für virtuelle Computer, die nur wenige VM-Instanzen haben. Weitere Informationen finden Sie in den folgenden Ressourcen:

Architekturdiagramm, das die Datenverkehrsroute von einem Benutzer zu einem privaten AKS-Cluster zeigt. Der Datenverkehr fließt durch Azure Bastion und eine Sprungbox.

Laden Sie eine Visio-Datei dieser Architektur herunter.

Datenfluss

  1. Ein Benutzer versucht, mithilfe von Azure Bastion und einem HTML5-Browser mit Transport Layer Security-Verschlüsselung eine Verbindung mit einem Sprungfeld herzustellen.

  2. Der Benutzer wählt aus dem Portal aus, ob RDP oder SSH zum Herstellen einer Verbindung mit dem Sprungfeld verwendet werden soll.

  3. Der Benutzer meldet sich über Azure Bastion beim Sprungfeld an. Der Versuch, eine Verbindung mit dem privaten AKS-Cluster herzustellen, erfolgt über dieses Sprungfeld. Das virtuelle Hubnetzwerk verfügt über eine virtuelle Netzwerkverbindung mit der privaten AKS-DNS-Zone, um den FQDN des privaten Clusters aufzulösen.

  4. Das virtuelle Hubnetzwerk und das speichen virtuelle Netzwerk kommunizieren miteinander, indem virtuelles Netzwerk-Peering verwendet wird.

  5. Um den privaten AKS-Cluster zu erreichen, wechselt der Datenverkehr in das Azure-Backbone. Ein privater Endpunkt stellt eine private, isolierte Verbindung mit dem privaten AKS-Cluster her.

  6. Der Datenverkehr erreicht den API-Server des privaten AKS-Clusters. Der Benutzer kann dann Pods, Knoten und Anwendungen verwalten.

Anmerkung

Der FQDN Ihres privaten Clusters kann von außerhalb Ihres virtuellen Netzwerks aufgelöst werden, wenn Sie öffentlichen FQDN nicht direkt für einen vorhandenen Clusterdeaktivieren.

Beheben von Verbindungsproblemen

Wenn Sie keine Verbindung mit Ihrem privaten Cluster herstellen können:

  • Überprüfen Sie das virtuelle Netzwerk-Peering. Dieser Mechanismus bietet Netzwerk-zu-Netzwerkkonnektivität zwischen zwei virtuellen Netzwerken. Damit der Datenverkehr zwischen diesen beiden Netzwerken fließt, müssen Sie das virtuelle Netzwerk-Peering zwischen ihnen einrichten. Wenn Sie ein virtuelles Netzwerk-Peering einrichten, wird eine Route in der Systemroutentabelle des virtuellen Netzwerks platziert. Diese Route stellt einen Pfad zum Erreichen des Zieladressraums bereit. Weitere Informationen zur Problembehandlung für virtuelle Netzwerk-Peerings finden Sie unter Erstellen, Ändern oder Löschen eines virtuellen Netzwerk-Peerings.

    Anmerkung

    Sie benötigen kein virtuelles Netzwerk-Peering, wenn sich Ihr Sprungfeld im selben virtuellen Netzwerk wie der private Endpunkt und der private AKS-Cluster befindet.

  • Überprüfen Sie die Virtuelle Netzwerkverbindung mit der privaten DNS-Zone. Virtuelle Netzwerkverbindungen bieten eine Möglichkeit für virtuelle Computer, die sich in virtuellen Netzwerken befinden, um eine Verbindung mit einer privaten DNS-Zone herzustellen und die DNS-Einträge innerhalb der Zone aufzulösen. Wenn Sie keine Verbindung mit Ihrem privaten AKS-Cluster herstellen oder den FQDN des privaten Clusters nicht auflösen können, überprüfen Sie, ob Ihr virtuelles Netzwerk über eine Verbindung mit Ihrer privaten DNS-Zone verfügt. Der Name der privaten DNS-Zone sollte das privatelink.<region>.azmk8s.io Format aufweisen.

    Weitere Informationen zum Behandeln von Problemen mit virtuellen Netzwerkverbindungen finden Sie in den folgenden Ressourcen:

    Anmerkung

    Wenn Sie einen privaten AKS-Cluster erstellen, wird eine private DNS-Zone erstellt, die über eine virtuelle Netzwerkverbindung mit dem virtuellen Netzwerk verfügt, in dem der private AKS-Cluster gehostet wird.

Verbessern der Sicherheit

Um AKS-Workloads und Ihre Sprungfelder zu sichern, verwenden Sie just-in-time (JIT)-Zugriff und eine Privileged Access Workstation (PAW). JIT-Zugriff ist Teil von Microsoft Defender für Cloud. Dies kann dazu beitragen, die potenzielle Angriffsfläche und Sicherheitsrisiken zu minimieren, indem eingehender Datenverkehr in Ihr Sprungfeld blockiert und nur für einen bestimmten Zeitpunkt bei Bedarf Zugriff gewährt wird. Nach Ablauf der Zeit wird der Zugriff automatisch widerrufen. Weitere Informationen finden Sie unter Just-in-Time-Computerzugriff.

PAWs sind gehärtete Geräte, die eine hohe Sicherheit für Operatoren bieten, indem allgemeine Angriffsvektoren wie E-Mail und Webbrowsen blockiert werden. Weitere Informationen finden Sie unter Sichern von Geräten als Teil desmit privilegiertem Zugriff.

VPN

Eine VPN-Verbindung bietet hybride Konnektivität von Ihrer lokalen Umgebung zu Azure. Diese Konnektivität ermöglicht den Zugriff auf einen privaten AKS-Cluster. Der API-Server des privaten Clusters ist außerhalb Ihrer virtuellen Netzwerke nicht erreichbar. Mit einem VPN können Sie eine Verbindung mit Ihrem virtuellen Netzwerk in Azure über einen verschlüsselten Tunnel herstellen, auf Ihr Sprungfeld zugreifen und dann eine Verbindung mit dem API-Server des privaten Clusters herstellen.

Architekturdiagramm, das den Datenverkehrsfluss von einem Benutzer zu einem privaten AKS-Cluster zeigt. Die Route umfasst ein VPN-Gateway, einen Internetprotokollsicherheitstunnel und ein Sprungfeld.

Laden Sie eine Visio-Datei dieser Architektur herunter.

Datenfluss

  1. Ein Benutzer initiiert RDP- oder SSH-Datenverkehr an das Sprungfeld von einer lokalen Arbeitsstation.

  2. Der Jumpbox-Datenverkehr verlässt die Edgerouter und die VPN-Appliance des Kunden. Der Datenverkehr verwendet einen verschlüsselten Internetprotokollsicherheitstunnel, um das Internet zu durchlaufen.

  3. Der Jump Box-Datenverkehr erreicht das virtuelle Netzwerkgateway in Azure, das sowohl der Eingangs- als auch der Ausgangspunkt der virtuellen Azure-Netzwerkinfrastruktur ist.

  4. Nachdem der Datenverkehr über das virtuelle Netzwerkgateway verschoben wurde, erreicht er das Sprungfeld. Der Versuch, eine Verbindung mit dem privaten AKS-Cluster herzustellen, erfolgt über das Sprungfeld. Das virtuelle Hubnetzwerk verfügt über eine virtuelle Netzwerkverbindung mit der privaten AKS-DNS-Zone, um den FQDN des privaten Clusters aufzulösen.

  5. Das virtuelle Hubnetzwerk und das speichen virtuelle Netzwerk kommunizieren miteinander mithilfe eines virtuellen Netzwerk-Peerings.

  6. Um den privaten AKS-Cluster zu erreichen, wechselt der Datenverkehr in das Azure-Backbone. Ein privater Endpunkt stellt eine private, isolierte Verbindung mit dem privaten AKS-Cluster her.

  7. Der Datenverkehr erreicht den API-Server des privaten AKS-Clusters. Der Benutzer kann dann Pods, Knoten und Anwendungen verwalten.

ExpressRoute

ExpressRoute bietet Verbindungen mit Ihrem privaten AKS-Cluster aus einer lokalen Umgebung. ExpressRoute verwendet das Border Gateway Protocol, um Routen zwischen Ihrem lokalen Netzwerk und Azure auszutauschen. Diese Verbindung erstellt einen sicheren Pfad zwischen der Infrastruktur als Dienstressourcen und lokalen Arbeitsstationen. ExpressRoute bietet eine dedizierte, isolierte Verbindung mit konsistenter Bandbreite und Latenz, was es ideal für Unternehmensumgebungen macht.

Architekturdiagramm, das die Datenverkehrsroute von einem Benutzer zu einem privaten AKS-Cluster zeigt. Die Route umfasst ExpressRoute und ein Sprungfeld.

Laden Sie eine Visio-Datei dieser Architektur herunter.

Datenfluss

  1. Ein Benutzer initiiert RDP- oder SSH-Datenverkehr an das Sprungfeld von einer lokalen Arbeitsstation.

  2. Der Jumpbox-Datenverkehr verlässt die Edgerouter des Kunden und fährt an einer Glasfaserverbindung an den Meet-Me-Standort, an dem sich der ExpressRoute-Schaltkreis befindet. Der Datenverkehr erreicht dort die Microsoft Enterprise Edge (MSEE)-Geräte. Anschließend wechselt es in die Azure-Fabric.

  3. Der Jump Box-Datenverkehr erreicht das ExpressRoute-Gateway, das sowohl der Eingangs- als auch der Ausgangspunkt der virtuellen Azure-Netzwerkinfrastruktur ist.

  4. Der Datenverkehr erreicht das Sprungfeld. Der Versuch, eine Verbindung mit dem privaten AKS-Cluster herzustellen, erfolgt über das Sprungfeld. Das virtuelle Hubnetzwerk verfügt über eine virtuelle Netzwerkverbindung mit der privaten AKS-DNS-Zone, um den FQDN des privaten Clusters aufzulösen.

  5. Das virtuelle Hubnetzwerk und das speichen virtuelle Netzwerk kommunizieren miteinander mithilfe eines virtuellen Netzwerk-Peerings.

  6. Um den privaten AKS-Cluster zu erreichen, wechselt der Datenverkehr in das Azure-Backbone. Ein privater Endpunkt stellt eine private, isolierte Verbindung mit dem privaten AKS-Cluster her.

  7. Der Datenverkehr erreicht den API-Server des privaten AKS-Clusters. Der Benutzer kann dann Pods, Knoten und Anwendungen verwalten.

Anmerkung

ExpressRoute erfordert einen Nicht-Microsoft-Verbindungsanbieter, um eine Peeringverbindung mit den MSEE-Routern bereitzustellen. ExpressRoute-Datenverkehr wird nichtverschlüsselt.

Ausführen des Befehls "aks"

Mit einem privaten AKS-Cluster können Sie eine Verbindung von einem virtuellen Computer herstellen, der Zugriff auf den API-Server hat. Verwenden Sie den Befehl "Azure CLI aks command invoke", um Befehle wie kubectl oder helm remote über die Azure-API auszuführen. Dieser Ansatz erstellt einen vorübergehenden Pod im Cluster, der nur während des Befehls dauert. Der befehl aks command invoke dient als alternative Verbindungsmethode, wenn Sie kein VPN, ExpressRoute oder peered virtuelles Netzwerk besitzen. Stellen Sie sicher, dass Ihr Cluster- und Knotenpool über ausreichende Ressourcen zum Erstellen des vorübergehenden Pods verfügen.

Weitere Informationen finden Sie unter Verwenden des Befehls aufrufen, um auf einen privaten AKS-Clusterzuzugreifen.

Verbinden von Cloud Shell mit einem Subnetz

Wenn Sie Cloud Shell in einem virtuellen Netzwerk bereitstellen, das Sie steuern, können Sie mit Ressourcen innerhalb dieses Netzwerks interagieren. Die Bereitstellung von Cloud Shell in einem Subnetz, das Sie verwalten, ermöglicht die Konnektivität mit dem API-Server eines privaten AKS-Clusters. Mit dieser Bereitstellung können Sie eine Verbindung mit dem privaten Cluster herstellen. Weitere Informationen finden Sie unter Bereitstellen von Cloud Shell in einem virtuellen Azure-Netzwerk.

Verwenden von SSH und Visual Studio Code zum Testen

SSH verwaltet und greift auf Dateien auf einem Remotehost mithilfe von public-private Schlüsselpaaren sicher zu. Von Ihrem lokalen Computer aus können Sie SSH mit der Visual Studio Code Remote - SSH-Erweiterung verwenden, um eine Verbindung mit einem Sprungfeld in Ihrem virtuellen Netzwerk herzustellen. Der verschlüsselte SSH-Tunnel wird an der öffentlichen IP-Adresse des Sprungfelds beendet, wodurch es einfach ist, Kubernetes-Manifestdateien zu ändern.

Informationen zum Herstellen einer Verbindung mit Ihrem Sprungfeld über SSH finden Sie unter Remoteentwicklung über SSH-.

Wenn Sie keine Verbindung mit Ihrer VM über SSH herstellen können, um Ihren privaten Cluster zu verwalten:

  • Überprüfen Sie die eingehende NSG-Regel für das VM-Subnetz. Die Standardmäßige NSG-Regel blockiert den gesamten eingehenden Datenverkehr von außerhalb von Azure. Erstellen Sie daher eine neue Regel, die SSH-Datenverkehr von der öffentlichen IP-Adresse Ihres lokalen Computers zulässt.

  • Überprüfen Sie den Speicherort des Zertifikats, und überprüfen Sie die richtige Platzierung der Zertifikate. Stellen Sie sicher, dass sich der private Schlüssel im verzeichnis C:\Users\User\.ssh\id_rsa auf Ihrem lokalen Computer befindet und dass sich der öffentliche Schlüssel in der datei ~/.ssh/id_rsa.pub auf dem virtuellen Computer in Azure befindet.

Anmerkung

Wir empfehlen Folgendes:

  • Vermeiden Sie die Verwendung einer öffentlichen IP-Adresse zum Herstellen einer Verbindung mit Ressourcen in Produktionsumgebungen. Verwenden Sie öffentliche IP-Adressen nur in Entwicklungs- oder Testumgebungen. Erstellen Sie in diesen Szenarien eine eingehende NSG-Regel, um Datenverkehr von der öffentlichen IP-Adresse Ihres lokalen Computers zuzulassen. Weitere Informationen zu NSG-Regeln finden Sie unter Erstellen, Ändern oder Löschen eines NSG-.

  • Vermeiden Sie die Verwendung von SSH, um eine direkte Verbindung mit AKS-Knoten oder -Containern herzustellen. Verwenden Sie stattdessen eine dedizierte externe Verwaltungslösung. Diese Vorgehensweise ist besonders wichtig, wenn Sie den aks command invoke-Befehl verwenden, der einen vorübergehenden Pod innerhalb Ihres Clusters für den zugriffsfreundlichen Zugriff erstellt.

Schlussfolgerung

  • Sie können über das Internet auf den API-Server Ihres AKS-Clusters zugreifen, wenn der öffentliche FQDN aktiviert ist.

  • Cloud Shell ist eine integrierte Befehlszeilenshell im Azure-Portal, mit der Sie eine Verbindung mit einem AKS-Cluster herstellen können.

  • Verwenden Sie Azure Bastion und einen privaten Endpunkt, um einen sichereren Zugriff zu erhalten.

  • VPNs und ExpressRoute bieten Hybridkonnektivität mit Ihrem privaten AKS-Cluster.

  • Wenn keine externe Konnektivitätslösung verfügbar ist, können Sie aks command invoke remote verwenden.

  • Sie können Cloud Shell direkt in einem virtuellen Netzwerk bereitstellen, das Sie für den Zugriff auf den privaten Cluster verwalten.

  • Sie können Visual Studio Code mit SSH auf einem Sprungfeld verwenden, um die Verbindung zu verschlüsseln und die Manifestdateiänderung zu vereinfachen. Dieser Ansatz macht jedoch eine öffentliche IP-Adresse in Ihrer Umgebung verfügbar.

Beitragende

Microsoft verwaltet diesen Artikel. Die folgenden Mitwirkenden haben diesen Artikel geschrieben.

Hauptautoren:

Andere Mitwirkende:

Um nichtublic LinkedIn-Profile anzuzeigen, melden Sie sich bei LinkedIn an.

Nächste Schritte