Anslut till Azure Operator Nexus Kubernetes-kluster
Under hela livscykeln för ditt Azure Operator Nexus Kubernetes-kluster måste du så småningom komma åt en klusternod direkt. Den här åtkomsten kan vara för underhåll, logginsamling eller felsökningsåtgärder. Du får åtkomst till en nod via autentisering, vilka metoder som varierar beroende på din anslutningsmetod. Du autentiserar säkert mot klusternoder via två alternativ som beskrivs i den här artikeln. Av säkerhetsskäl exponeras inte klusternoder för Internet. Om du i stället vill ansluta direkt till klusternoder måste du använda antingen kubectl debug
eller värdens IP-adress från en jumpbox.
Förutsättningar
- Ett Azure Operator Nexus Kubernetes-kluster som distribuerats i en resursgrupp i din Azure-prenumeration.
- Privat SSH-nyckel för klusternoderna.
- Till SSH med nodens IP-adress måste du distribuera en virtuell jumpbox-dator i samma CNI-nätverk (Container Network Interface) som klusternoderna.
Åtkomst till klusternoder via Azure Arc för servrar
Med az ssh arc
kommandot kan användare fjärransluta till en virtuell klusterdator som har anslutits till Azure Arc. Den här metoden är ett säkert sätt att SSH till klusternoden direkt från kommandoraden, vilket gör den till en snabb och effektiv metod för fjärrhantering.
Kommentar
Operatorn Nexus Kubernetes-klusternoder är Arc-anslutna servrar som standard.
Ange de variabler som krävs. Ersätt platshållarna med de faktiska värden som är relevanta för azure-miljön och Nexus Kubernetes-klustret.
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)
Hämta de tillgängliga klusternodnamnen.
az networkcloud kubernetescluster show --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID -o json | jq '.nodes[].name'
Exempel på utdata:
"mynexusk8scluster-0b32128d-agentpool1-md-7h9t4" "mynexusk8scluster-0b32128d-agentpool1-md-c6xbs" "mynexusk8scluster-0b32128d-control-plane-qq5jm"
Ange namnet på klusternoden till variabeln VM_NAME.
VM_NAME="mynexusk8scluster-0b32128d-agentpool1-md-7h9t4"
Kör följande kommando till SSH till klusternoden.
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
Komma åt noder med kubernetes-API:et
Den här metoden kräver användning av kubectl debug
kommando. Den här metoden är begränsad till containrar och kan missa bredare systemproblem, till skillnad från SSH (med hjälp av "az ssh arc" eller direkt IP), som erbjuder fullständig nodåtkomst och kontroll.
Åtkomst till Kubernetes API via Azure Arc för Kubernetes
Kommentar
När du skapar ett Nexus Kubernetes-kluster skapar Nexus automatiskt en hanterad resursgrupp som är dedikerad till att lagra klusterresurserna. Inom den här gruppen upprättas den Arc-anslutna klusterresursen.
För att få åtkomst till klustret måste du konfigurera klustret att ansluta kubeconfig
. När du har loggat in på Azure CLI med relevant Microsoft Entra-entitet kan du få de kubeconfig
nödvändiga för att kommunicera med klustret var som helst, även utanför brandväggen som omger det.
Ange
CLUSTER_NAME
ochRESOURCE_GROUP
SUBSCRIPTION_ID
variabler.CLUSTER_NAME="myNexusK8sCluster" RESOURCE_GROUP="myResourceGroup" SUBSCRIPTION_ID=<set the correct subscription_id>
Fråga hanterad resursgrupp med
az
och lagra iMANAGED_RESOURCE_GROUP
az account set -s $SUBSCRIPTION_ID MANAGED_RESOURCE_GROUP=$(az networkcloud kubernetescluster show -n $CLUSTER_NAME -g $RESOURCE_GROUP --output tsv --query managedResourceGroupConfiguration.name)
Följande kommando startar en connectedk8s-proxy som gör att du kan ansluta till Kubernetes API-servern för det angivna Nexus Kubernetes-klustret.
az connectedk8s proxy -n $CLUSTER_NAME -g $MANAGED_RESOURCE_GROUP &
Använd
kubectl
för att skicka begäranden till klustret:kubectl get pods -A
Nu bör du se ett svar från klustret som innehåller listan över alla noder.
Kommentar
Om du ser felmeddelandet "Det gick inte att publicera åtkomsttoken till klientproxyFailed för att ansluta till MSI" kan du behöva utföra en az login
för att autentisera igen med Azure.
Åtkomst till klusternoder via Azure Arc för Kubernetes
När du är ansluten till ett kluster via Arc för Kubernetes kan du ansluta till en enskild Kubernetes-nod med kommandot kubectl debug
för att köra en privilegierad container på noden.
Visa en lista över noderna i Nexus Kubernetes-klustret:
$> 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.9
Starta en privilegierad container på noden och anslut till den:
$> 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 [ / ]#
Den här privilegierade containern ger åtkomst till noden. Kör kommandon på klusternoden genom att köra
chroot /host
på kommandoraden.När du är klar med en felsökningspodd anger du
exit
kommandot för att avsluta den interaktiva gränssnittssessionen. När du har avslutat gränssnittet måste du ta bort podden:kubectl delete pod node-debugger-mynexusk8scluster-0b32128d-agentpool1-md-7h9t4-694gg
Skapa en interaktiv gränssnittsanslutning till en nod med ip-adressen
Anslut till klusternoden från Azure Jumpbox
Ett annat alternativ för säker anslutning till en Azure Operator Nexus Kubernetes-klusternod är att konfigurera en direkt åtkomst till klustrets CNI-nätverk från en virtuell Azure-jumpbox-dator. Med den här metoden kan du SSH till klusternoderna, även köra kubectl
kommandon mot klustret med hjälp av kubeconfig
filen.
Kontakta nätverksadministratören för att konfigurera en direktanslutning från en virtuell Azure-jumpbox-dator till klustrets CNI-nätverk.
Anslut till klusternoden från den lokala jumpboxen
Upprätta direkt åtkomst till klustrets CNI (Container Network Interface) inifrån din lokala jumpbox. Med den här direktåtkomsten kan du SSH till klusternoderna och köra kubectl
kommandon med hjälp av kubeconfig
filen.
Kontakta nätverksadministratören för att konfigurera den här direktanslutningen till klustrets CNI-nätverk.
IP-adressen för klusternoderna
Innan du kan ansluta till klusternoderna måste du hitta nodernas IP-adress. IP-adressen för noderna finns i Azure-portalen eller Azure CLI.
Använda Azure CLI
Ange variablerna RESOURCE_GROUP, CLUSTER_NAME och SUBSCRIPTION_ID så att de matchar din miljö.
RESOURCE_GROUP="myResourceGroup" CLUSTER_NAME="myNexusK8sCluster" SUBSCRIPTION_ID="<Subscription ID>"
Kör följande kommando för att hämta IP-adressen för noderna.
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)}'
Här är exempelutdata för kommandot.
{ "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" }
Använda Azure Portal
Följ dessa steg för att hitta IP-adressen för den virtuella datorn för SSH:
- Gå till Azure-portalen och logga in med ditt användarnamn och lösenord.
- Skriv "Kubernetes Cluster (Operator Nexus)" i sökrutan och välj tjänsten Kubernetes Cluster i listan med resultat.
- Leta efter den specifika Nexus Kubernetes-klusterresursen som du behöver för att använda sökningen.
- När du har hittat rätt resurs genom att matcha dess namn med klusternamnet väljer du resursen för att gå till startsidan för Kubernetes-klustret.
- När du har hittat rätt resurs genom att matcha dess namn med klusternamnet går du till avsnittet Kubernetes-klusternoder på den vänstra menyn.
- Välj det Kubernetes-nodnamn som du är intresserad av för att se dess information.
- Kontrollera fliken Anslutna nätverk för att hitta IP-adressen för nodens Layer 3-nätverk som används som CNI-nätverk.
Nästa steg
Prova följande artiklar om du vill veta mer om Azure Operator Nexus Kubernetes-kluster.