Delen via


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.

  1. 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)
    
  2. Haal de beschikbare clusterknooppuntnamen op.

    az networkcloud kubernetescluster show --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID -o json | jq '.nodes[].name'
    
  3. Voorbeelduitvoer:

    "mynexusk8scluster-0b32128d-agentpool1-md-7h9t4"
    "mynexusk8scluster-0b32128d-agentpool1-md-c6xbs"
    "mynexusk8scluster-0b32128d-control-plane-qq5jm"
    
  4. Stel de naam van het clusterknooppunt in op de variabele VM_NAME.

    VM_NAME="mynexusk8scluster-0b32128d-agentpool1-md-7h9t4"
    
  5. 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 kubeconfiginstellen. 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.

  1. Stel CLUSTER_NAMEen RESOURCE_GROUP SUBSCRIPTION_ID variabelen in.

    CLUSTER_NAME="myNexusK8sCluster"
    RESOURCE_GROUP="myResourceGroup"
    SUBSCRIPTION_ID=<set the correct subscription_id>
    
  2. Query's uitvoeren op beheerde resourcegroep met az en opslaan in MANAGED_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)
    
  3. 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 &
    
  4. 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.

  1. 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
    
  2. 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.

  3. 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

  1. 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>"
    
  2. 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)}'
    
  3. 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:

  1. Ga naar Azure Portal en meld u aan met uw gebruikersnaam en wachtwoord.
  2. Typ 'Kubernetes Cluster (Operator Nexus)' in het zoekvak en selecteer de service Kubernetes Cluster in de lijst met resultaten.

Schermopname van het bladeren door de Nexus Kubernetes-service.

  1. Zoek naar de specifieke 'Nexus Kubernetes-cluster'-resource die u nodig hebt om de zoekopdracht te gebruiken.

Schermopname van bladeren in Nexus Kubernetes-cluster.

  1. 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.

Schermopname van de startpagina van het Nexus Kubernetes-cluster.

  1. 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.

Schermopname van het bladeren door Nexus Kubernetes-clusterknooppunten.

  1. Selecteer de naam van het Kubernetes-knooppunt waarin u geïnteresseerd bent om de details ervan te bekijken.
  2. Controleer het tabblad Gekoppelde netwerken om het IP-adres van het knooppunt 'Laag 3-netwerk' te vinden dat wordt gebruikt als CNI-netwerk.

Schermopname van het browsen in Nexus Kubernetes-clusterknooppuntnetwerken.

Volgende stappen

Bekijk de volgende artikelen voor meer informatie over het Kubernetes-cluster van Azure Operator Nexus.