Verbinding maken naar Azure Operator Nexus Kubernetes-cluster
Gedurende de levenscyclus van uw Azure Operator Nexus Kubernetes-cluster moet u uiteindelijk rechtstreeks toegang krijgen tot een clusterknooppunt. Deze toegang kan betrekking hebben op onderhouds-, logboekverzamelings- of probleemoplossingsbewerkingen. U opent een knooppunt via verificatie, welke methoden variëren, afhankelijk van uw verbindingsmethode. U verifieert veilig met clusterknooppunten via twee opties die in dit artikel worden besproken. Om veiligheidsredenen worden clusterknooppunten niet blootgesteld aan internet. Als u in plaats daarvan rechtstreeks verbinding wilt maken met clusterknooppunten, moet u het IP-adres van de host gebruiken kubectl debug
vanuit een jumpbox.
Vereisten
- Een Azure Operator Nexus Kubernetes-cluster dat is geïmplementeerd in een resourcegroep in uw Azure-abonnement.
- Persoonlijke SSH-sleutel voor de clusterknooppunten.
- Als u SSH wilt gebruiken met behulp van het IP-adres van het knooppunt, moet u een jumpbox-VM implementeren in hetzelfde CNI-netwerk (Container Network Interface) als de clusterknooppunten.
Toegang tot clusterknooppunten via Azure Arc voor servers
Met de az ssh arc
opdracht kunnen gebruikers op afstand toegang krijgen tot een cluster-VM die is verbonden met Azure Arc. Deze methode is een veilige manier om SSH rechtstreeks vanaf de opdrachtregel naar het clusterknooppunt te verplaatsen, waardoor het een snelle en efficiënte methode is voor extern beheer.
Notitie
Operator Nexus Kubernetes-clusterknooppunten zijn standaard met Arc verbonden servers.
Stel de vereiste variabelen in. Vervang de tijdelijke aanduidingen door de werkelijke waarden die relevant zijn voor uw Azure-omgeving en Nexus Kubernetes-cluster.
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)
Haal de beschikbare clusterknooppuntnamen op.
az networkcloud kubernetescluster show --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID -o json | jq '.nodes[].name'
Voorbeelduitvoer:
"mynexusk8scluster-0b32128d-agentpool1-md-7h9t4" "mynexusk8scluster-0b32128d-agentpool1-md-c6xbs" "mynexusk8scluster-0b32128d-control-plane-qq5jm"
Stel de naam van het clusterknooppunt in op de variabele VM_NAME.
VM_NAME="mynexusk8scluster-0b32128d-agentpool1-md-7h9t4"
Voer de volgende opdracht uit naar SSH in het clusterknooppunt.
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
Toegang tot knooppunten met behulp van de Kubernetes-API
Voor deze methode is het gebruik van kubectl debug
de opdracht vereist. Deze methode is beperkt tot containers en kan bredere systeemproblemen missen, in tegenstelling tot SSH (met behulp van 'az ssh arc' of direct IP), dat volledige knooppunttoegang en -beheer biedt.
Toegang tot Kubernetes-API via Azure Arc voor Kubernetes
Notitie
Wanneer u een Nexus Kubernetes-cluster maakt, maakt Nexus automatisch een beheerde resourcegroep die is toegewezen aan het opslaan van de clusterresources, binnen deze groep, wordt de met Arc verbonden clusterresource tot stand gebracht.
Voor toegang tot uw cluster moet u de clusterverbinding kubeconfig
instellen. Nadat u zich hebt aangemeld bij Azure CLI met de relevante Microsoft Entra-entiteit, kunt u de kubeconfig
benodigde gegevens verkrijgen om te communiceren met het cluster vanaf elke locatie, zelfs buiten de firewall eromheen.
Stel
CLUSTER_NAME
enRESOURCE_GROUP
SUBSCRIPTION_ID
variabelen in.CLUSTER_NAME="myNexusK8sCluster" RESOURCE_GROUP="myResourceGroup" SUBSCRIPTION_ID=<set the correct subscription_id>
Query's uitvoeren op beheerde resourcegroep met
az
en opslaan inMANAGED_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)
Met de volgende opdracht wordt een connectedk8s-proxy gestart waarmee u verbinding kunt maken met de Kubernetes-API-server voor het opgegeven Nexus Kubernetes-cluster.
az connectedk8s proxy -n $CLUSTER_NAME -g $MANAGED_RESOURCE_GROUP &
Gebruik
kubectl
dit om aanvragen naar het cluster te verzenden:kubectl get pods -A
U ziet nu een antwoord van het cluster met de lijst met alle knooppunten.
Notitie
Als u het foutbericht 'Kan geen toegangstoken posten naar clientproxyFailed om verbinding te maken met MSI' wordt weergegeven, moet u mogelijk een az login
nieuwe verificatie uitvoeren bij Azure.
Toegang tot clusterknooppunten via Azure Arc voor Kubernetes
Nadat u via Arc voor Kubernetes verbinding hebt gemaakt met een cluster, kunt u verbinding maken met afzonderlijke Kubernetes-knooppunten met behulp van de kubectl debug
opdracht om een bevoegde container op uw knooppunt uit te voeren.
Vermeld de knooppunten in uw 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.9
Start een bevoegde container op uw knooppunt en maak er verbinding mee:
$> 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 [ / ]#
Deze bevoegde container biedt toegang tot het knooppunt. Voer opdrachten uit op het clusterknooppunt door deze uit te voeren
chroot /host
op de opdrachtregel.Wanneer u klaar bent met een foutopsporingspod, voert u de
exit
opdracht in om de interactieve shellsessie te beëindigen. Nadat u de shell hebt afgesloten, moet u de pod verwijderen:kubectl delete pod node-debugger-mynexusk8scluster-0b32128d-agentpool1-md-7h9t4-694gg
Een interactieve shellverbinding met een knooppunt maken met behulp van het IP-adres
Verbinding maken naar het clusterknooppunt vanuit Azure Jumpbox
Een andere optie om veilig verbinding te maken met een Azure Operator Nexus Kubernetes-clusterknooppunt is het instellen van een directe toegang tot het CNI-netwerk van het cluster vanaf azure jumpbox-VM. Met deze methode kunt u SSH in de clusterknooppunten uitvoeren, ook opdrachten uitvoeren kubectl
op het cluster met behulp van het kubeconfig
bestand.
Neem contact op met uw netwerkbeheerder om een directe verbinding in te stellen van azure jumpbox-VM naar het CNI-netwerk van het cluster.
Verbinding maken naar het clusterknooppunt vanuit on-premises jumpbox
Maak directe toegang tot de CNI (Container Network Interface) van het cluster vanuit uw on-premises jumpbox. Met deze directe toegang kunt u SSH uitvoeren in de clusterknooppunten en kunt u opdrachten uitvoeren kubectl
met behulp van het kubeconfig
bestand.
Neem contact op met uw netwerkbeheerder om deze directe verbinding met het CNI-netwerk van het cluster in te stellen.
IP-adres van de clusterknooppunten
Voordat u verbinding kunt maken met de clusterknooppunten, moet u het IP-adres van de knooppunten vinden. Het IP-adres van de knooppunten vindt u met behulp van Azure Portal of de Azure CLI.
De Azure CLI gebruiken
Stel de variabelen RESOURCE_GROUP, CLUSTER_NAME en SUBSCRIPTION_ID in zodat deze overeenkomen met uw omgeving.
RESOURCE_GROUP="myResourceGroup" CLUSTER_NAME="myNexusK8sCluster" SUBSCRIPTION_ID="<Subscription ID>"
Voer de volgende opdracht uit om het IP-adres van de knooppunten op te halen.
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 volgt de voorbeelduitvoer van de opdracht.
{ "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" }
De Azure-portal gebruiken
Voer de volgende stappen uit om het IP-adres van de VM voor SSH te vinden:
- Ga naar Azure Portal en meld u aan met uw gebruikersnaam en wachtwoord.
- Typ 'Kubernetes Cluster (Operator Nexus)' in het zoekvak en selecteer de service Kubernetes Cluster in de lijst met resultaten.
- Zoek naar de specifieke 'Nexus Kubernetes-cluster'-resource die u nodig hebt om de zoekopdracht te gebruiken.
- Zodra u de juiste resource hebt gevonden door de naam ervan te koppelen aan de clusternaam, selecteert u de resource om naar de startpagina van Het Kubernetes-cluster te gaan.
- Zodra u de juiste resource hebt gevonden door de naam ervan te koppelen aan de clusternaam, gaat u naar de sectie Kubernetes-clusterknooppunten in het linkermenu.
- Selecteer de naam van het Kubernetes-knooppunt waarin u geïnteresseerd bent om de details ervan te bekijken.
- Controleer het tabblad Gekoppelde netwerken om het IP-adres van het knooppunt 'Laag 3-netwerk' te vinden dat wordt gebruikt als CNI-netwerk.
Volgende stappen
Bekijk de volgende artikelen voor meer informatie over het Kubernetes-cluster van Azure Operator Nexus.