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.
Während des gesamten Lebenszyklus Ihres Azure Operator Nexus Kubernetes-Clusters müssen Sie schließlich direkt auf einen Clusterknoten zugreifen. Dieser Zugriff kann für Wartungs-, Protokollsammlungs- oder Problembehandlungsvorgänge dienen. Sie greifen über die Authentifizierung auf einen Knoten zu, welche Methoden je nach Verbindungsmethode variieren. Sie authentifizieren sich sicher bei Clusterknoten über zwei optionen, die in diesem Artikel erläutert werden. Aus Sicherheitsgründen werden Clusterknoten nicht im Internet verfügbar gemacht. Um eine direkte Verbindung mit Clusterknoten herzustellen, müssen Sie stattdessen entweder kubectl debug oder die IP-Adresse des Hosts aus einem Jumpbox-Element verwenden.
Voraussetzungen
- Ein Azure Operator Nexus Kubernetes-Cluster, der in einer Ressourcengruppe in Ihrem Azure-Abonnement bereitgestellt wird.
- Privater SSH-Schlüssel für die Clusterknoten.
- Um SSH mit der Knoten-IP-Adresse zu verwenden, müssen Sie eine Jumpbox-VM im gleichen CNI-Netzwerk (Container Network Interface) wie die Clusterknoten bereitstellen.
Zugriff auf Clusterknoten über Azure Arc für Server
Mit dem az ssh arc Befehl können Benutzer remote auf eine Cluster-VM zugreifen, die mit Azure Arc verbunden wurde. Diese Methode ist eine sichere Methode, um SSH direkt über die Befehlszeile in den Clusterknoten zu integrieren, wodurch sie eine schnelle und effiziente Methode für die Remoteverwaltung ist.
Hinweis
Operator Nexus Kubernetes-Clusterknoten sind Arc-verbundene Server standardmäßig.
Legen Sie die erforderlichen Variablen fest. Ersetzen Sie die Platzhalter durch die tatsächlichen Werte, die für Ihre Azure-Umgebung und Den Nexus Kubernetes-Cluster relevant sind.
RESOURCE_GROUP="myResourceGroup" # Resource group where the Nexus Kubernetes cluster is deployed CLUSTER_NAME="myNexusK8sCluster" # Name of the Nexus Kubernetes cluster SUBSCRIPTION_ID="<Subscription ID>" # Azure subscription ID ADMIN_USERNAME="azureuser" # Username for the cluster administrator (--admin-username parameter value used during cluster creation) SSH_PRIVATE_KEY_FILE="<vm_ssh_id_rsa>" # Path to the SSH private key file MANAGED_RESOURCE_GROUP=$(az networkcloud kubernetescluster show -n $CLUSTER_NAME -g $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID --output tsv --query managedResourceGroupConfiguration.name)Rufen Sie die verfügbaren Clusterknotennamen ab.
az networkcloud kubernetescluster show --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID -o json | jq '.nodes[].name'Beispielausgabe:
"mynexusk8scluster-0b32128d-agentpool1-md-7h9t4" "mynexusk8scluster-0b32128d-agentpool1-md-c6xbs" "mynexusk8scluster-0b32128d-control-plane-qq5jm"Legen Sie den Clusterknotennamen auf die variable VM_NAME fest.
VM_NAME="mynexusk8scluster-0b32128d-agentpool1-md-7h9t4"Führen Sie den folgenden Befehl für SSH im Clusterknoten aus.
az ssh arc --subscription $SUBSCRIPTION_ID \ --resource-group $MANAGED_RESOURCE_GROUP \ --name $VM_NAME \ --local-user $ADMIN_USERNAME \ --private-key-file $SSH_PRIVATE_KEY_FILE
Zugreifen auf Knoten mithilfe der Kubernetes-API
Für diese Methode ist die Verwendung des kubectl debug Befehls erforderlich. Diese Methode ist auf Container beschränkt und kann größere Systemprobleme verpassen, im Gegensatz zu SSH (unter Verwendung von "az ssh arc" oder direct IP), die vollständigen Knotenzugriff und -kontrolle bietet.
Zugriff auf die Kubernetes-API über Azure Arc für Kubernetes
Hinweis
Wenn Sie einen Nexus Kubernetes-Cluster erstellen, erstellt Nexus automatisch eine verwaltete Ressourcengruppe, die zum Speichern der Clusterressourcen in dieser Gruppe dient, wird die mit Arc verbundene Clusterressource eingerichtet.
Um auf Ihren Cluster zuzugreifen, müssen Sie die Clusterverbindung kubeconfigeinrichten. Nachdem Sie sich bei Azure CLI mit der relevanten Microsoft Entra-Entität angemeldet haben, können Sie die kubeconfig erforderliche Kommunikation mit dem Cluster von praktisch überall aus abrufen, auch außerhalb der Firewall, die sie umgibt.
Legen Sie die Variablen
CLUSTER_NAME,RESOURCE_GROUPundSUBSCRIPTION_IDfest.CLUSTER_NAME="myNexusK8sCluster" RESOURCE_GROUP="myResourceGroup" SUBSCRIPTION_ID=<set the correct subscription_id>Abfrage verwalteter Ressourcengruppe mit
azund Speichern inMANAGED_RESOURCE_GROUPaz account set -s $SUBSCRIPTION_ID MANAGED_RESOURCE_GROUP=$(az networkcloud kubernetescluster show -n $CLUSTER_NAME -g $RESOURCE_GROUP --output tsv --query managedResourceGroupConfiguration.name)Der folgende Befehl startet einen connectedk8s-Proxy, mit dem Sie eine Verbindung mit dem Kubernetes-API-Server für den angegebenen Nexus Kubernetes-Cluster herstellen können.
az connectedk8s proxy -n $CLUSTER_NAME -g $MANAGED_RESOURCE_GROUP &Wird
kubectlverwendet, um Anforderungen an den Cluster zu senden:kubectl get pods -ANun sollte eine Antwort des Clusters mit der Liste aller Knoten angezeigt werden.
Hinweis
Wenn die Fehlermeldung "Fehler beim Bereitstellen des Zugriffstokens an den Client-Proxy. Verbindung mit MSI konnte nicht hergestellt werden" angezeigt wird, müssen Sie sich möglicherweise bei Azure neu authentifizieren.
Zugriff auf Clusterknoten über Azure Arc für Kubernetes
Sobald Sie über Arc für Kubernetes mit einem Cluster verbunden sind, können Sie eine Verbindung mit einem einzelnen Kubernetes-Knoten herstellen, indem Sie den kubectl debug Befehl verwenden, um einen privilegierten Container auf Ihrem Knoten auszuführen.
Auflisten der Knoten in Ihrem Nexus Kubernetes-Cluster:
$> kubectl get nodes NAME STATUS ROLES AGE VERSION mynexusk8scluster-0b32128d-agentpool1-md-7h9t4 Ready <none> 125m v1.24.9 mynexusk8scluster-0b32128d-agentpool1-md-c6xbs Ready <none> 125m v1.24.9 mynexusk8scluster-0b32128d-control-plane-qq5jm Ready <none> 124m v1.24.9Starten Sie einen privilegierten Container auf Ihrem Knoten, und stellen Sie eine Verbindung mit diesem her:
$> kubectl debug node/mynexusk8scluster-0b32128d-agentpool1-md-7h9t4 -it --image=mcr.microsoft.com/cbl-mariner/base/core:2.0 Creating debugging pod node-debugger-mynexusk8scluster-0b32128d-agentpool1-md-7h9t4-694gg with container debugger on node mynexusk8scluster-0b32128d-agentpool1-md-7h9t4. If you don't see a command prompt, try pressing enter. root [ / ]#Dieser privilegierte Container gewährt Zugriff auf den Knoten. Führen Sie Befehle auf dem Clusterknoten aus, indem Sie
chroot /hostan der Befehlszeile ausführen.Wenn Sie mit einem Debug-Pod fertig sind, geben Sie den
exitBefehl ein, um die interaktive Shellsitzung zu beenden. Stellen Sie nach dem Beenden der Shell sicher, dass Sie den Pod löschen:kubectl delete pod node-debugger-mynexusk8scluster-0b32128d-agentpool1-md-7h9t4-694gg
Erstellen einer interaktiven Shellverbindung mit einem Knoten mithilfe der IP-Adresse
Herstellen einer Verbindung mit dem Clusterknoten über azure jumpbox
Eine weitere Möglichkeit für eine sichere Verbindung mit einem Azure Operator Nexus Kubernetes-Clusterknoten besteht darin, einen direkten Zugriff auf das CNI-Netzwerk des Clusters über azure jumpbox VM einzurichten. Mit diesem Ansatz können Sie sich in die Clusterknoten per SSH einloggen, auch Befehle für den Cluster unter Verwendung der kubectl-Datei ausführenkubeconfig.
Wenden Sie sich an Ihren Netzwerkadministrator, um eine direkte Verbindung von azure jumpbox VM zum CNI-Netzwerk des Clusters einzurichten.
Herstellen einer Verbindung mit dem Clusterknoten über den lokalen Jumpbox
Richten Sie direkten Zugriff auf das CNI (Container Network Interface) des Clusters von Ihrem lokalen Jumpbox-Server ein. Mit diesem direkten Zugriff können Sie sich per SSH in die Clusterknoten einloggen und Befehle mithilfe der kubeconfig-Datei ausführen.
Wenden Sie sich an Ihren Netzwerkadministrator, um diese direkte Verbindung mit dem CNI-Netzwerk des Clusters einzurichten.
IP-Adresse der Clusterknoten
Bevor Sie eine Verbindung mit den Clusterknoten herstellen können, müssen Sie die IP-Adresse der Knoten finden. Die IP-Adresse der Knoten finden Sie über das Azure-Portal oder die Azure CLI.
Verwenden Sie die Azure CLI
Legen Sie die Variablen RESOURCE_GROUP, CLUSTER_NAME und SUBSCRIPTION_ID fest, damit sie zu Ihrer Umgebung passen.
RESOURCE_GROUP="myResourceGroup" CLUSTER_NAME="myNexusK8sCluster" SUBSCRIPTION_ID="<Subscription ID>"Führen Sie den folgenden Befehl aus, um die IP-Adresse der Knoten abzurufen.
az networkcloud kubernetescluster show --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID -o json | jq '.nodes[] | select(any(.networkAttachments[]; .networkAttachmentName == "defaultcni")) | {name: .name, ipv4Address: (.networkAttachments[] | select(.networkAttachmentName == "defaultcni").ipv4Address)}'Hier sehen Sie die Beispielausgabe des Befehls.
{ "name": "mynexusk8scluster-0b32128d-agentpool1-md-7h9t4", "ipv4Address": "10.5.54.47" } { "name": "mynexusk8scluster-0b32128d-agentpool1-md-c6xbs", "ipv4Address": "10.5.54.48" } { "name": "mynexusk8scluster-0b32128d-control-plane-qq5jm", "ipv4Address": "10.5.54.46" }
Verwenden des Azure-Portals
Führen Sie die folgenden Schritte aus, um die IP-Adresse des virtuellen Computers für SSH zu finden:
- Wechseln Sie zum Azure-Portal , und melden Sie sich mit Ihrem Benutzernamen und Kennwort an.
- Geben Sie im Suchfeld "Kubernetes Cluster (Operator Nexus)" ein, und wählen Sie den "Kubernetes Cluster"-Dienst aus der Ergebnisliste aus.
- Suchen Sie nach der spezifischen "Nexus Kubernetes"-Clusterressource, die Sie für die Suche benötigen.
- Nachdem Sie die richtige Ressource gefunden haben, indem Sie ihren Namen mit dem Clusternamen übereinstimmen, wählen Sie die Ressource aus, um zur Startseite "Kubernetes Cluster" zu wechseln.
- Nachdem Sie die richtige Ressource gefunden haben, indem Sie ihren Namen mit dem Clusternamen übereinstimmen, wechseln Sie im linken Menü zum Abschnitt "Kubernetes Clusterknoten".
- Wählen Sie den Namen des Kubernetes-Knotens aus, an dem Sie interessiert sind, um dessen Details anzuzeigen.
- Überprüfen Sie die Registerkarte "Angefügte Netzwerke", um die IP-Adresse des Knotens "Layer 3-Netzwerk" zu finden, das als CNI-Netzwerk verwendet wird.
Abrufen des alternativen Subjektnamens (Subject Alternative Name, SAN) für den Cluster
Führen Sie folgende Befehle aus, um die Liste der Subject Alternative Names (SAN) abzurufen, die vom Kubernetes API-Serverzertifikat akzeptiert werden. Greifen Sie zunächst auf den Steuerebenenknoten entweder mithilfe von Azure Arc für Server oder mithilfe der interaktiven Shell mithilfe der IP-Adresse zu. Dadurch erhalten Sie Zugriff auf das vom API-Server verwendete Zertifikat. Sie können den Inhalt des Zertifikats mithilfe des folgenden Befehls mit sudo-Berechtigungen überprüfen:
sudo openssl x509 -in /etc/kubernetes/pki/apiserver.crt -text -noout
Jeder der SANs wird durch das Präfix "DNS:" identifiziert. Wählen Sie nur die SANs aus, die der angegebenen Benennungskonvention "<clusterName-resourceGroup><>" folgen, da dies im Vergleich zu anderen SANs wie "kubernetes.default.svc.cluster.local" eindeutig ist.
Nächste Schritte
Probieren Sie die folgenden Artikel aus, um mehr über den Azure Operator Nexus Kubernetes-Cluster zu erfahren.