Google Distributed Cloud 업데이트 문제 해결

Google Distributed Cloud 업데이트에 문제가 있는 경우 다음 섹션이 문제를 해결하는 데 도움이 될 수 있습니다. 업데이트할 수 있는 설정에 대한 자세한 내용은 클러스터에서 업데이트할 수 있는 항목과 업데이트할 수 없는 항목을 참조하세요.

추가 지원이 필요하면 Cloud Customer Care에 문의하세요.

업데이트 제한 시간

업데이트 제한 시간은 업데이트할 리소스를 기준으로 동적으로 계산됩니다. 하지만 계산이 항상 정확한 것은 아닙니다. 업데이트 시간이 초과되면 다음과 비슷한 오류가 표시됩니다.

  • 사용자 클러스터에서는 다음과 같습니다.

    Failed to update the cluster:...timed out waiting for the condition...
    
  • 관리자 클러스터에서는 다음과 같습니다.

    Failed to update the admin cluster:...timed out waiting for the condition...
    

이러한 종류의 제한 시간 오류는 무시해도 안전하며 업데이트 명령어를 재시도할 수 있습니다. 명령어를 재시도했지만 동일한 오류 메시지와 함께 시간이 초과되면 Cloud Customer Care에 문의하세요.

업데이트에 여러 변경사항 포함

gkectl update admingkectl update cluster 명령어는 단일 명령어로 여러 설정을 업데이트하는 것을 허용하지 않습니다. 구성에 여러 설정이 변경되는 diff가 있고 다음 예시와 비슷한 오류가 반환되는 경우:

Update summary for cluster X:
    antiAffinityGroups: enabled to be set to true from false          &config.AAGSpec{
        -   Enabled: false,
        +   Enabled: true,
          }
    user master cpu to be set to 5 from 4          config.NodePoolProps{
            Role:        "master",
            MachineType: "standard-master",
        -   CPUs:        4,
        +   CPUs:        5,
            MemoryMB:    8192,
            Replicas:    3,
            ... // 2 identical fields
            Labels:         nil,
            NodeTaints:     nil,
        -   Vsphere:        nil,
        &config.NodePoolVsphereSpec{Datastore: "lifecycle-workloads1-datastore1"},
        +   Vsphere:        nil,
            BootDiskSizeGB: nil,
            OSImageType:    "",
            ... // 5 identical fields
          }

Exit with error:
Failed to update the cluster: the update contains multiple changes. Please
update only one feature at a time

이 오류는 다음과 같은 다양한 이유로 발생할 수 있습니다.

  • 실수 또는 잘못된 구성
  • 이전에 구성 diff를 사용하여 gkectl upgrade를 실행했으며 변경사항이 적용될 것으로 예상됩니다.
    • gkectl upgrade는 버전 덤프를 제외한 어떠한 구성 차이도 적용하지 않습니다.
  • 이전에 다른 기능 업데이트에 대한 구성을 수정했지만 gkectl update 명령어를 실행하는 것을 잊었습니다.

이 동작이 발생하면 오류 메시지의 diff를 검토하고 여러 gkectl update 명령어로 필요한 설정을 하나씩 업데이트합니다. 변경사항을 식별하려면 gkectl get-config를 사용하여 클러스터에서 구성 파일을 생성하고 기존 상태 및 구성을 확인하면 됩니다.

지원되지 않는 변경사항

gkectl update clustergkectl update admin 명령어는 지원되지 않는 변경사항을 무시하고 다음 예시와 유사한 오류 메시지를 표시합니다.

detected unsupported changes: (-current +desired)
    ...
-   AdvancedNetworking:       &true,
+   AdvancedNetworking:       &false,
    ...
, which will be ignored

이 동작이 발생하면 오류 메시지의 diff를 검토하고 다음 작업을 수행합니다.

  • 의도치 않게 변경되었으면 구성 YAML 파일을 수정하고 의도된 올바른 변경사항만 업데이트합니다.
    • 앞의 예시에서 AdvancedNetworking을 사용 중지하지 않으려는 경우 구성 YAML 파일에서 advancedNetworking: true를 설정합니다.
  • 의도된 변경일 경우 변경이 지원되지 않는다는 오류가 표시됩니다. 다음 작업 중 하나를 수행합니다.
    • 해당하는 경우 클러스터를 다시 만듭니다.
    • Google 지원팀에 문의하세요.

OS 이미지가 없음

gkectl update clustergkectl update admin 명령어는 다음 예시와 비슷한 OS Images 실행 전 확인 실패와 함께 실패할 수 있습니다.

  • 사용자 클러스터에서는 다음과 같습니다.

    - Validation Category: OS Images
        - [FAILURE] User cluster OS images exist: os images  [xxxx] don't exist,
        please run `gkectl prepare` to upload os images.
    
  • 관리자 클러스터에서는 다음과 같습니다.

    - Validation Category: OS Images
        - [FAILURE] Admin cluster OS images exist: os images [xxxx] don't exist,
        please run `gkectl prepare` to upload os images.
    

이러한 오류는 정기적인 정리 작업과 같이 vCenter 환경에서 예기치 않게 OS 이미지가 삭제된 경우에 발생할 수 있습니다.

가져오기 OS 이미지를 다시 가져오려면 다음과 같이 gkectl prepare 명령어를 실행합니다.

gkectl prepare \
    --bundle-path /var/lib/gke/bundles/gke-onprem-vsphere-TARGET_VERSION.tgz \
    --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
    --skip-upload-container-images

새 노드 풀을 위한 데이터 스토어 여유 공간 부족

새 노드 풀을 추가할 때 다음 예시와 유사한 VSphere Datastore FreeSpace 프리플라이트 검사 오류와 함께 gkectl update cluster 명령어가 실패할 수 있습니다.

  - [FAILURE] VSphere Datastore FreeSpace: vCenter datastore: xxxx insufficient
  FreeSpace, requires at least xxx  GB

이 실패는 데이터 스토어에 새 노드 풀을 실행하기에 충분한 여유 공간이 없음을 나타냅니다. 다음 옵션 중 하나를 사용하면 작업이 성공할 수 있는 공간을 제공하는 데 도움이 됩니다.

  • 데이터 스토어에서 공간을 확보합니다.
  • 노드 풀에 다른 nodePools[].vsphere.datastore 데이터 스토어를 구성합니다.

다음 단계

추가 지원이 필요하면 Cloud Customer Care에 문의하세요.