클러스터의 vCenter 사용자 인증 정보 업데이트

GKE On-Prem 버전 1.3.1부터는 gkectl update credentials vsphere 명령어로 관리자 및 사용자 클러스터의 vCenter 사용자 인증 정보를 업데이트할 수 있습니다.

각 관리자와 사용자 클러스터는 처음에 이러한 클러스터를 만드는 데 사용된 vCenter 사용자 이름과 비밀번호를 이용하도록 구성됩니다. vCenter 사용자 인증 정보를 업데이트하거나 관리 소유권을 다른 vSphere 사용자 계정으로 전송해야 하는 경우 클러스터의 구성 파일을 업데이트한 후 gkectl update credentials vsphere 명령어를 사용하여 변경사항을 배포하면 됩니다.

vCenter 사용자 이름 및 비밀번호 구성의 예시:

...
vcenter:
  credentials:
    ...
    username: "vCenter-username@vsphere.local"
    password: "vCenter-user-password"
...

시작하기 전에

vCenter 사용자 인증 정보를 업데이트하기 전에 다음과 같은 기본 요건을 충족해야 합니다.

  • 클러스터 버전 1.3.1 이상만 지원됩니다.

  • 현재 gkectl update credentials vsphere 명령어는 클러스터의 vCenter usernamepassword만 지원합니다. 구성 파일에 있는 다른 모든 변경사항은 무시됩니다.

  • 클러스터에 추가할 vCenter 사용자 인증 정보가 이미 있어야 합니다. vCenter 역할 및 사용자 권한에 대해 자세히 알아보기

클러스터 사용자 인증 정보 업데이트

다음 단계를 따라 클러스터의 vCenter 사용자 인증 정보를 업데이트합니다.

  1. 관리자 또는 사용자 클러스터를 구성할 기존 vCenter 사용자 인증 정보의 사용자 이름과 비밀번호를 가져옵니다.

  2. 다음 명령어를 실행하여 SSH를 통해 관리자 워크스테이션에 연결합니다.

    ssh -i ~/.ssh/vsphere_workstation ubuntu@[IP_ADDRESS]
    

    여기서 [IP_ADDRESS]는 관리 워크스테이션의 IP 주소입니다.

  3. 편집기에서 구성 파일을 엽니다.

    이 용도로만 수정하고 사용할 수 있는 사본을 만들어 보세요. 예를 들면 vcenter-creds-config.yaml입니다.

  4. 구성 파일을 수정합니다.

    1. 관리자 클러스터를 업데이트할지 아니면 사용자 클러스터를 업데이트할지에 따라 다음 섹션 중 하나를 삭제하여 구성 파일을 수정해야 합니다.

      • 사용자 클러스터를 업데이트하려면 admincluster 섹션을 삭제합니다.

        구성에서 usercluster 섹션을 그대로 두고 admincluster 섹션의 모든 콘텐츠를 삭제합니다. 예를 들면 다음과 같습니다.

        admincluster:
          vcenter:
            network: ""
          bigip:
            ...
          podiprange: ""

      • 관리자 클러스터를 업데이트하려면 usercluster 섹션을 삭제합니다.

        구성에서 admincluster 섹션을 그대로 두고 usercluster 섹션의 모든 콘텐츠를 삭제합니다. 예를 들면 다음과 같습니다.

        usercluster:
          vcenter:
            network: ""
          bigip:
            ...
          clustername: ""
          masternode:
            ...
          podiprange: ""

    2. vCenter.credentials 아래의 usernamepassword 속성을 업데이트하여 클러스터에 설정할 vCenter 사용자 인증 정보를 포함합니다. 예를 들면 다음과 같습니다.

      gcp:
        whitelistedServiceAccountKeyPath: "my-key-folder/whitelisted-key.json"
      vCenter:
        credentials:
          address: "203.0.113.1"
          username: "vCenter-user-account@vsphere.local"
          password: "user-account-password"
        datacenter: "MY-DATACENTER"
        datastore: "MY-DATASTORE"
        cluster: "MY-CLUSTER"
        ...
  5. gkectl update credentials vsphere 명령어를 실행하여 클러스터에 변경사항을 배포합니다.

    gkectl update credentials vsphere \
    --config [VCENTER_CREDS_CONFIG.YAML] \
    --kubeconfig [CLUSTER_KUBECONFIG] \
    --update-admin-cluster

    각 매개변수는 다음과 같습니다.

    • [VCENTER_CREDS_CONFIG.YAML]: 클러스터에 배포할 vCenter 사용자 인증 정보가 포함된 구성 파일을 지정합니다. 예: vcenter-creds-config.yaml
    • [CLUSTER_KUBECONFIG]: 업데이트할 관리자 클러스터의 kubeconfig 파일을 지정합니다. 예를 들면 kubeconfig입니다.

      관리자 클러스터의 경우 --update-admin-cluster 플래그도 포함해야 합니다.

    • --update-admin-cluster: 관리자 클러스터에 변경사항을 배포하는 경우 필요한 플래그입니다. 사용자 클러스터에 변경사항을 배포할 때는 이 플래그를 제외합니다.

    결과: 변경된 vCenter 사용자 인증 정보가 서버에 맞게 즉시 검사되고 'vsphere credentials updated successfully'라는 확인 메시지가 터미널에 출력됩니다. 새 사용자 인증 정보로 vCenter Server에 로그인하지 못하면 구성 파일에서 usernamepassword를 수정하고 변경사항을 재배포하면 됩니다.

    예시:

    • 사용자 클러스터 예시: 사용자 클러스터의 vCenter 사용자 인증 정보에 변경사항을 배포하려면 다음을 실행합니다.

      gkectl update credentials vsphere \
      --config vcenter-creds-user-config.yaml --kubeconfig admin-cluster-kubeconfig

      결과:

      validating new credentials against vcenter
      restarted "deployment/clusterapi-controllers" in namespace "testcluster"
      restarted "deployment/kube-controller-manager" in namespace "testcluster"
      restarted "statefulsets/kube-apiserver" in namespace "testcluster"
      vsphere credentials updated successfully.
    • 관리자 클러스터 예시: 관리자 클러스터의 vCenter 사용자 인증 정보에 변경사항을 배포하려면 다음을 실행합니다.

      gkectl update credentials vsphere \
      --config vcenter-creds-admin-config.yaml --kubeconfig admin-cluster-kubeconfig \
      --update-admin-cluster

      결과:

      validating new credentials against vcenter
      restarted "deployment/clusterapi-controllers" in namespace "kube-system"
      vsphere credentials updated successfully.