Delen via


SSH-sleutels configureren en beheren op Azure Operator Nexus Kubernetes-clusterknooppunten

In dit artikel wordt beschreven hoe u de SSH-sleutel in uw Nexus Kubernetes-agentpool en besturingsvlakknooppunten configureert en beheert. SSH-sleutels bieden een veilige methode voor toegang tot deze knooppunten in uw cluster.

Vereisten

Voordat u doorgaat met deze handleiding, is het raadzaam om het volgende te doen:

  • Raadpleeg de quickstartgids operator Nexus Kubernetes-cluster voor een uitgebreid overzicht en de betrokken stappen.
  • Zorg ervoor dat u voldoet aan de beschreven vereisten in de quickstart om een soepele implementatie van de handleiding te garanderen.

Notitie

In deze handleiding wordt ervan uitgegaan dat u al een bestaand Operator Nexus Kubernetes-cluster hebt dat is gemaakt met behulp van de snelstartgids en dat u toegang hebt tot de CLI, ARM-sjabloon of Bicep die in de quickstart is gebruikt om de SSH-sleutels bij te werken.

SSH-sleutels voor Operator Nexus Kubernetes-clusterknooppunt configureren

Bij het configureren van een Operator Nexus Kubernetes-cluster moet u SSH-sleutels opgeven voor de knooppunten in het cluster. SSH-sleutels bieden een veilige methode voor toegang tot deze knooppunten in uw cluster.

Er zijn verschillende manieren waarop u SSH-sleutels voor uw clusterknooppunten kunt opgeven.

  • Als u dezelfde SSH-sleutel wilt gebruiken voor alle knooppunten in uw cluster, kunt u een matrix met openbare sleutels opgeven wanneer u het cluster maakt. Deze sleutels worden ingevoegd in alle agentpoolknooppunten en besturingsvlakknooppunten.
  • Als u verschillende SSH-sleutels wilt gebruiken voor verschillende agentpools of besturingsvlakknooppunten, kunt u voor elke pool een unieke openbare sleutel opgeven, zodat u SSH-toegang nauwkeuriger kunt beheren, waardoor de clusterbrede sleutels worden overschreven. Elke nieuwe agentgroep wordt later zonder sleutels aan het cluster toegevoegd, maar gebruikt de sleutel voor het cluster als deze sleutel de opgegeven sleutel gebruikt.
  • Als u geen SSH-sleutels opgeeft bij het maken van uw cluster, worden er geen SSH-sleutels ingevoegd in de knooppunten. Dit betekent dat gebruikers geen SSH kunnen gebruiken in de knooppunten. U kunt later SSH-sleutels toevoegen door de clusterconfiguratie bij te werken, maar deze sleutels kunnen niet worden verwijderd nadat deze zijn toegevoegd.

Hieronder vindt u de variabelen die u moet instellen, samen met de standaardwaarden van de QuickStart-handleiding die u voor bepaalde variabelen kunt gebruiken.

  • SSH_PUBLIC_KEY - Voor de clusterbrede sleutels. Het gebruik van een clusterbrede sleutel met agentgroep- en besturingsvlaksleutels heeft geen effect omdat de sleutels van het besturingsvlak en de agentgroep worden gebruikt in plaats van de clusterbrede sleutels.
  • CONTROL_PLANE_SSH_PUBLIC_KEY - Voor het besturingsvlak kunt u openbare sleutels opgeven die zijn ingevoegd in de besturingsvlakknooppunten.
  • INITIAL_AGENT_POOL_SSH_PUBLIC_KEY - Voor elke agentgroep kunt u openbare sleutels opgeven die zijn ingevoegd in de knooppunten in die pool.
    az networkcloud kubernetescluster create \
      --name "${CLUSTER_NAME}" \
      --resource-group "${RESOURCE_GROUP}" \
      --subscription "${SUBSCRIPTION_ID}" \
      --extended-location name="${CUSTOM_LOCATION}" type=CustomLocation \
      --location "${LOCATION}" \
      --kubernetes-version "${K8S_VERSION}" \
      --aad-configuration admin-group-object-ids="[${AAD_ADMIN_GROUP_OBJECT_ID}]" \
      --admin-username "${ADMIN_USERNAME}" \
      --ssh-key-values "${SSH_PUBLIC_KEY}" \
      --control-plane-node-configuration \
        count="${CONTROL_PLANE_COUNT}" \
        vm-sku-name="${CONTROL_PLANE_VM_SIZE}" \
        ssh-key-values='["${CONTROL_PLANE_SSH_PUBLIC_KEY}"]' \
      --initial-agent-pool-configurations "[{count:${INITIAL_AGENT_POOL_COUNT},mode:System,name:${INITIAL_AGENT_POOL_NAME},vm-sku-name:${INITIAL_AGENT_POOL_VM_SIZE},ssh-key-values:['${INITIAL_AGENT_POOL_SSH_PUBLIC_KEY}']}]"\
      --network-configuration \
        cloud-services-network-id="${CSN_ARM_ID}" \
        cni-network-id="${CNI_ARM_ID}" \
        pod-cidrs="[${POD_CIDR}]" \
        service-cidrs="[${SERVICE_CIDR}]" \
        dns-service-ip="${DNS_SERVICE_IP}"

SSH-sleutels voor Operator Nexus Kubernetes-clusterknooppunten beheren

U kunt de SSH-sleutels voor de knooppunten in uw Operator Nexus Kubernetes-cluster beheren nadat het cluster is gemaakt. Het bijwerken van de SSH-sleutels is mogelijk, maar het verwijderen van alle SSH-sleutels uit het clusterknooppunt is geen optie. In plaats daarvan worden alle bestaande sleutels vervangen door nieuwe sleutels.

Als u de SSH-sleutels wilt bijwerken, kunt u dezelfde Bicep/ARM-configuratie toepassen die tijdens de eerste implementatie met nieuwe sleutels is gebruikt of de CLI gebruiken.

Beperkingen

  • U kunt SSH-sleutels niet verwijderen uit de clusterknooppunten. U kunt ze alleen bijwerken met nieuwe sleutels.
  • Als u de clusterbrede sleutel probeert bij te werken met een lege matrix, slaagt de bewerking, maar blijven de bestaande sleutels ongewijzigd.
  • Als u probeert de sleutels van de agentgroep of het besturingsvlak bij te werken met een lege matrix, wordt de bewerking voltooid en worden de clusterbrede sleutels gebruikt.
  • Als u de sleutels voor een cluster probeert bij te werken dat zonder sleutels is gemaakt, wordt de nieuwe sleutel toegevoegd, maar kunt u deze niet verwijderen.

Voordat u begint

  • Zorg ervoor dat u over de vereiste machtigingen beschikt om de clusterconfiguratie bij te werken.
  • U hebt de nieuwe SSH-sleutels die u wilt gebruiken voor de clusterknooppunten.
  • U hebt het parameterbestand gebruikt tijdens de eerste implementatie of de variabelen die worden gebruikt in de CLI-opdracht.
  • Als u deze handleiding wilt gebruiken, moet u een bestaand Operator Nexus Kubernetes-cluster hebben dat is gemaakt met behulp van de snelstartgids.

SSH-sleutels voor het hele cluster bijwerken

Gebruik de volgende opdracht om de SSH-sleutels voor het hele cluster bij te werken, die worden gebruikt voor alle knooppunten in het cluster. De bestaande sleutels worden vervangen door de nieuwe sleutels.

Notitie

Dit werkt alleen als het cluster is gemaakt met clusterbrede sleutels. Als het cluster is gemaakt met agentpool- of besturingsvlaksleutels, heeft deze bewerking geen effect. Raadpleeg de volgende secties om agentpool- of besturingsvlaksleutels bij te werken.

Azure CLI voor het bijwerken van SSH-sleutels voor het hele cluster

  1. Stel de SSH_PUBLIC_KEY variabele in met de nieuwe SSH-sleutel.
SSH_PUBLIC_KEY="ssh-rsa CCCCC...."
  1. Gebruik de volgende opdracht om de SSH-sleutels voor het cluster bij te werken.
az networkcloud kubernetescluster update --name "$CLUSTER_NAME" --resource-group "$RESOURCE_GROUP" --subscription "$SUBSCRIPTION_ID" --ssh-key-values "$SSH_PUBLIC_KEY"

Azure Resource Manager (ARM) en Bicep voor het bijwerken van SSH-sleutels voor het hele cluster

  1. Werk de sshPublicKeys parameter bij kubernetes-deploy-parameters.json met de nieuwe SSH-sleutel.
    "sshPublicKeys": {
      "value": [
        {
          "keyData": "ssh-rsa CCCCC...."
        }
      ]
    }
  1. Implementeer de sjabloon opnieuw.

Voor ARM-sjabloon:

    az deployment group create --resource-group myResourceGroup --template-file kubernetes-deploy.json --parameters @kubernetes-deploy-parameters.json

Voor Bicep:

    az deployment group create --resource-group myResourceGroup --template-file kubernetes-deploy.bicep --parameters @kubernetes-deploy-parameters.json

SSH-sleutels voor agentgroep bijwerken

Gebruik de volgende opdracht om de SSH-sleutels voor een specifieke agentgroep bij te werken.

  • Alle knooppunten in de agentgroep worden bijgewerkt met de nieuwe sleutels.
  • Als de agentgroep is gemaakt met sleutels, vervangen de nieuwe sleutels de bestaande sleutels.
  • Als de agentgroep zonder sleutels is gemaakt, worden de nieuwe sleutels toegevoegd.
  • Als de agentgroep is gemaakt met clusterbrede sleutels, vervangen de nieuwe sleutels de bestaande sleutels.
  • Als u de sleutels voor een cluster probeert bij te werken dat zonder sleutels is gemaakt, wordt de nieuwe sleutel toegevoegd, maar kunt u deze niet verwijderen.
  • Als u probeert de sleutel van de agentgroep bij te werken met een lege matrix, wordt de bewerking voltooid en worden de clusterbrede sleutels gebruikt.

Azure CLI voor het bijwerken van SSH-sleutels voor agentpool

  1. Stel de AGENT_POOL_KEY variabele in met de nieuwe SSH-sleutel.
AGENT_POOL_KEY="ssh-rsa DDDDD...."
  1. Gebruik de volgende opdracht om de SSH-sleutels voor de agentgroep bij te werken.
az networkcloud kubernetescluster agentpool update --agent-pool-name "${CLUSTER_NAME}-nodepool-2" --kubernetes-cluster-name "$CLUSTER_NAME" --resource-group "$RESOURCE_GROUP" --subscription "$SUBSCRIPTION_ID" --ssh-key-values "$AGENT_POOL_KEY"

Azure ARM-sjabloon en Bicep voor het bijwerken van SSH-sleutels voor agentpool

Notitie

Het bijwerken van knooppuntgroepen die zijn gemaakt via de eerste configuratie van de agentgroep is niet mogelijk met deze methode, omdat er geen afzonderlijke agentgroepsjabloon en parameterbestand is. Alleen de agentgroepsleutels voor pools die zijn gemaakt nadat het cluster is gemaakt, kunnen worden bijgewerkt met behulp van deze methode. Als u de sleutels voor de eerste agentgroep wilt bijwerken, raadpleegt u de CLI-opdracht in de vorige sectie. Als de eerste agentgroep is gemaakt met clusterbrede sleutels en als u de sleutels voor de eerste agentgroep wilt bijwerken, kunt u de sleutels voor de hele cluster bijwerken.

  1. Werk de agentPoolSshKeys parameter bij kubernetes-nodepool-parameters.json met de nieuwe SSH-sleutel.
    "agentPoolSshKeys": {
      "value": [
        {
          "keyData": "ssh-rsa DDDDD...."
        }
      ]
    }
  1. Implementeer de sjabloon opnieuw.

Voor ARM-sjabloon:

    az deployment group create --resource-group myResourceGroup --template-file kubernetes-add-agentpool.json --parameters @kubernetes-nodepool-parameters.json

Voor Bicep:

    az deployment group create --resource-group myResourceGroup --template-file kubernetes-add-agentpool.bicep --parameters @kubernetes-nodepool-parameters.json

SSH-sleutels voor besturingsvlak bijwerken

Gebruik de volgende opdracht om de SSH-sleutels voor het besturingsvlak bij te werken.

  • Alle knooppunten in het besturingsvlak worden bijgewerkt met de nieuwe sleutels.
  • Als het besturingsvlak is gemaakt met sleutels, vervangen de nieuwe sleutels de bestaande sleutels.
  • Als het besturingsvlak zonder sleutels is gemaakt, worden de nieuwe sleutels toegevoegd.
  • Als het besturingsvlak is gemaakt met clusterbrede sleutels, vervangen de nieuwe sleutels de bestaande sleutels.
  • Als u de sleutels voor een cluster probeert bij te werken dat zonder sleutels is gemaakt, wordt de nieuwe sleutel toegevoegd, maar kunt u deze niet verwijderen.
  • Als u probeert de sleutels van het besturingsvlak bij te werken met een lege matrix, wordt de bewerking voltooid en worden de clusterbrede sleutels gebruikt.

Notitie

De sleutels van het besturingsvlak kunnen worden bijgewerkt met behulp van de initiƫle implementatiesjabloon en het parameterbestand, omdat het besturingsvlak deel uitmaakt van het cluster. Agentgroepsleutels kunnen echter niet op dezelfde manier worden bijgewerkt, omdat de agentgroep een subresource is, tenzij de agentgroep clusterbrede sleutels gebruikt.

Azure CLI voor het bijwerken van SSH-sleutels voor besturingsvlak

  1. Stel de CONTROL_PLANE_SSH_PUBLIC_KEY variabele in met de nieuwe SSH-sleutel.
CONTROL_PLANE_SSH_PUBLIC_KEY="ssh-rsa EEEEE...."
  1. Gebruik de volgende opdracht om de SSH-sleutels van het besturingsvlak bij te werken.
az networkcloud kubernetescluster update --name "$CLUSTER_NAME" --resource-group "$RESOURCE_GROUP" --subscription "$SUBSCRIPTION_ID" --control-plane-node-configuration ssh-key-values="['$CONTROL_PLANE_SSH_PUBLIC_KEY']"

Azure ARM-sjabloon en Bicep voor het bijwerken van SSH-sleutels voor besturingsvlak

  1. Werk de controlPlaneSshKeys parameter bij kubernetes-deploy-parameters.json met de nieuwe SSH-sleutel.
    "controlPlaneSshKeys": {
      "value": [
        {
          "keyData": "ssh-rsa EEEEE...."
        }
      ]
    }
  1. Implementeer de sjabloon opnieuw.

Voor ARM-sjabloon:

    az deployment group create --resource-group myResourceGroup --template-file kubernetes-deploy.json --parameters @kubernetes-deploy-parameters.json

Voor Bicep:

    az deployment group create --resource-group myResourceGroup --template-file kubernetes-deploy.bicep --parameters @kubernetes-deploy-parameters.json

Volgende stappen

Door inzicht te krijgen in het configureren en beheren van SSH-sleutels op uw Operator Nexus Kubernetes-clusterknooppunten, kunt u ervoor zorgen dat uw cluster veilig is en dat u toegang hebt tot de knooppunten wanneer u problemen moet oplossen.