Sdílet prostřednictvím


Konfigurace a správa klíčů SSH v uzlech clusteru Azure Operator Nexus Kubernetes

Tento článek popisuje, jak nakonfigurovat a spravovat klíč SSH ve fondu agentů Nexus Kubernetes a uzlech řídicí roviny. Klíče SSH poskytují zabezpečenou metodu přístupu k těmto uzlům v clusteru.

Požadavky

Než budete pokračovat v tomto průvodci postupy, doporučujeme:

  • Podrobný přehled a postup najdete v příručce Rychlý start ke clusteru Operator Nexus Kubernetes.
  • Ujistěte se, že splňujete uvedené požadavky v rychlém startu, abyste zajistili hladký průběh implementace průvodce.

Poznámka:

Tato příručka předpokládá, že už máte existující cluster Operator Nexus Kubernetes vytvořený pomocí příručky Rychlý start a že máte přístup k rozhraní příkazového řádku, šabloně ARM nebo Bicep použitému v rychlém startu k aktualizaci klíčů SSH.

Konfigurace klíčů SSH uzlů clusteru SSH pro operátora Nexus Kubernetes

Při konfiguraci clusteru Operator Nexus Kubernetes musíte pro uzly v clusteru zadat klíče SSH. Klíče SSH poskytují zabezpečenou metodu přístupu k těmto uzlům v clusteru.

Existuje několik různých způsobů, jak pro uzly clusteru zadat klíče SSH.

  • Pokud chcete použít stejný klíč SSH pro všechny uzly v clusteru, můžete při vytváření clusteru zadat pole veřejných klíčů. Tyto klíče se vloží do všech uzlů fondu agentů a uzlů řídicí roviny.
  • Pokud chcete použít různé klíče SSH pro různé fondy agentů nebo uzly řídicí roviny, můžete pro každý fond poskytnout jedinečný veřejný klíč, který umožňuje spravovat přístup SSH podrobněji, tím se přepíše široký klíč clusteru. Jakýkoli nový fond agentů se do clusteru přidá později bez klíčů, pokud obsahuje klíč, použije zadaný klíč.
  • Pokud při vytváření clusteru nezadáte žádné klíče SSH, nebudou do uzlů vloženy žádné klíče SSH. To znamená, že uživatelé nemůžou připojit SSH k uzlům. Klíče SSH můžete později přidat aktualizací konfigurace clusteru, ale po přidání těchto klíčů tyto klíče odebrat nemůžete.

Následují proměnné, které je potřeba nastavit, spolu s výchozími hodnotami průvodce Rychlý start, které můžete použít pro určité proměnné.

  • SSH_PUBLIC_KEY - Pro široké klíče clusteru. Použití celého klíče clusteru s fondem agentů a klíči řídicí roviny nemá žádný vliv, protože řídicí rovina a klíče fondu agentů se používají místo klíčů pro celý cluster.
  • CONTROL_PLANE_SSH_PUBLIC_KEY - Pro řídicí rovinu můžete zadat veřejné klíče, které jsou vloženy do uzlů řídicí roviny.
  • INITIAL_AGENT_POOL_SSH_PUBLIC_KEY – Pro každý fond agentů můžete zadat veřejné klíče, které se vloží do uzlů v daném fondu.
    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}"

Klíče SSH uzlu clusteru Manage Operator Nexus Kubernetes

Po vytvoření clusteru Můžete spravovat klíče SSH pro uzly v clusteru Operator Nexus Kubernetes. Aktualizace klíčů SSH je možná, ale odebrání všech klíčů SSH z uzlu clusteru není možnost. Místo toho všechny nové zadané klíče nahradí všechny existující klíče.

Pokud chcete aktualizovat klíče SSH, můžete použít stejnou konfiguraci Bicep/ARM použitou při počátečním nasazení pomocí nových klíčů nebo použít rozhraní příkazového řádku.

Omezení

  • Z uzlů clusteru nemůžete odebrat klíče SSH. Můžete je aktualizovat pouze novými klíči.
  • Pokud se pokusíte aktualizovat široký klíč clusteru prázdným polem, operace bude úspěšná, ale stávající klíče zůstanou beze změny.
  • Pokud se pokusíte aktualizovat klíče fondu agentů nebo řídicí rovinu s prázdným polem, operace proběhne úspěšně a místo toho se použijí klíče pro celý cluster.
  • Pokud se pokusíte aktualizovat klíče clusteru vytvořeného bez jakýchkoli klíčů, přidá se nový klíč, ale nemůžete ho odebrat.

Než začnete

  • Ujistěte se, že máte požadovaná oprávnění k aktualizaci konfigurace clusteru.
  • Máte nové klíče SSH, které chcete použít pro uzly clusteru.
  • Máte soubor parametrů použitý během počátečního nasazení nebo proměnné použité v příkazu rozhraní příkazového řádku.
  • Pokud chcete použít tuto příručku, musíte mít existující cluster Operator Nexus Kubernetes, který byl vytvořen pomocí příručky pro rychlý start.

Aktualizace klíčů SSH pro široký cluster

Pomocí následujícího příkazu aktualizujte klíče SSH pro celý cluster, které se používají pro všechny uzly v clusteru. Stávající klíče se nahradí novými klíči.

Poznámka:

To funguje jenom v případě, že se cluster vytvořil pomocí klíčů širokých clusterů. Pokud byl cluster vytvořen pomocí fondu agentů nebo klíčů řídicí roviny, tato operace nemá žádný vliv. Informace o aktualizaci fondu agentů nebo klíčů řídicí roviny najdete v dalších částech.

Azure CLI pro aktualizaci klíčů SSH pro celý cluster

  1. Nastavte proměnnou SSH_PUBLIC_KEY pomocí nového klíče SSH.
SSH_PUBLIC_KEY="ssh-rsa CCCCC...."
  1. Pomocí následujícího příkazu aktualizujte klíče SSH pro celý cluster.
az networkcloud kubernetescluster update --name "$CLUSTER_NAME" --resource-group "$RESOURCE_GROUP" --subscription "$SUBSCRIPTION_ID" --ssh-key-values "$SSH_PUBLIC_KEY"

Azure Resource Manager (ARM) a Bicep pro aktualizaci klíčů SSH pro celý cluster

  1. sshPublicKeys Aktualizujte parametr kubernetes-deploy-parameters.json pomocí nového klíče SSH.
    "sshPublicKeys": {
      "value": [
        {
          "keyData": "ssh-rsa CCCCC...."
        }
      ]
    }
  1. Znovu nasaďte šablonu.

Pro šablonu ARM:

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

Pro Bicep:

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

Aktualizace klíčů SSH fondu agentů

Pomocí následujícího příkazu aktualizujte klíče SSH pro konkrétní fond agentů.

  • Všechny uzly ve fondu agentů se aktualizují o nové klíče.
  • Pokud byl fond agentů vytvořen pomocí klíčů, nahradí nové klíče stávající klíče.
  • Pokud se fond agentů vytvořil bez klíčů, přidají se nové klíče.
  • Pokud byl fond agentů vytvořen pomocí klíčů širokých clusterů, nahradí nové klíče stávající klíče.
  • Pokud se pokusíte aktualizovat klíče clusteru vytvořeného bez jakýchkoli klíčů, přidá se nový klíč, ale nemůžete ho odebrat.
  • Pokud se pokusíte aktualizovat klíče fondu agentů s prázdným polem, operace proběhne úspěšně a místo toho se použijí klíče pro celý cluster.

Azure CLI pro aktualizaci klíčů SSH fondu agentů

  1. Nastavte proměnnou AGENT_POOL_KEY pomocí nového klíče SSH.
AGENT_POOL_KEY="ssh-rsa DDDDD...."
  1. Pomocí následujícího příkazu aktualizujte klíče SSH fondu agentů.
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"

Šablona Azure ARM a Bicep pro aktualizaci klíčů SSH fondu agentů

Poznámka:

Aktualizace fondů uzlů vytvořených prostřednictvím počáteční konfigurace fondu agentů není s touto metodou možná, protože neexistuje samostatná šablona fondu agentů a soubor parametrů. Pomocí této metody lze aktualizovat pouze klíče fondu agentů pro fondy vytvořené po vytvoření clusteru. Pokud chcete aktualizovat klíče počátečního fondu agentů, projděte si příkaz rozhraní příkazového řádku uvedený v předchozí části. Pokud se vytvořil počáteční fond agentů s širokými klíči clusteru a pokud chcete aktualizovat klíče pro počáteční fond agentů, můžete aktualizovat klíče pro celý cluster.

  1. agentPoolSshKeys Aktualizujte parametr kubernetes-nodepool-parameters.json pomocí nového klíče SSH.
    "agentPoolSshKeys": {
      "value": [
        {
          "keyData": "ssh-rsa DDDDD...."
        }
      ]
    }
  1. Znovu nasaďte šablonu.

Pro šablonu ARM:

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

Pro Bicep:

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

Aktualizace klíčů SSH roviny řízení

Pomocí následujícího příkazu aktualizujte klíče SSH pro řídicí rovinu.

  • Všechny uzly v řídicí rovině budou aktualizovány novými klíči.
  • Pokud se řídicí rovina vytvořila pomocí klíčů, nahradí nové klíče stávající klíče.
  • Pokud se řídicí rovina vytvořila bez klíčů, přidají se nové klíče.
  • Pokud se řídicí rovina vytvořila pomocí širokých klíčů clusteru, nahradí nové klíče stávající klíče.
  • Pokud se pokusíte aktualizovat klíče clusteru vytvořeného bez jakýchkoli klíčů, přidá se nový klíč, ale nemůžete ho odebrat.
  • Pokud se pokusíte aktualizovat klíče řídicí roviny prázdným polem, operace proběhne úspěšně a místo toho se použijí klíče pro celou cluster.

Poznámka:

Klíče řídicí roviny je možné aktualizovat pomocí počáteční šablony nasazení a souboru parametrů, protože řídicí rovina je součástí clusteru. Klíče fondu agentů se ale nedají aktualizovat stejným způsobem, jako je fond agentů dílčím prostředkem, pokud fond agentů nepoužívá klíče pro celý cluster.

Azure CLI pro aktualizaci klíčů SSH řídicí roviny

  1. Nastavte proměnnou CONTROL_PLANE_SSH_PUBLIC_KEY pomocí nového klíče SSH.
CONTROL_PLANE_SSH_PUBLIC_KEY="ssh-rsa EEEEE...."
  1. Pomocí následujícího příkazu aktualizujte klíče SSH řídicí roviny.
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']"

Šablona Azure ARM a Bicep pro aktualizaci klíčů SSH řídicí roviny

  1. controlPlaneSshKeys Aktualizujte parametr kubernetes-deploy-parameters.json pomocí nového klíče SSH.
    "controlPlaneSshKeys": {
      "value": [
        {
          "keyData": "ssh-rsa EEEEE...."
        }
      ]
    }
  1. Znovu nasaďte šablonu.

Pro šablonu ARM:

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

Pro Bicep:

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

Další kroky

Když pochopíte, jak nakonfigurovat a spravovat klíče SSH na uzlech clusteru Operator Nexus Kubernetes, můžete zajistit zabezpečení clusteru a přístup k uzlům, když potřebujete řešit problémy.