TKG 클러스터의 업데이트가 실패한 경우 업데이트 작업을 다시 시작하고 업데이트를 다시 시도할 수 있습니다.

문제

TKG 클러스터의 업데이트가 실패하고 클러스터 상태가 upgradefailed가 됩니다.

원인

클러스터 업데이트 실패에는 스토리지 부족과 같은 몇 가지 이유가 있을 수 있습니다. 실패한 업데이트 작업을 다시 시작하고 클러스터 업데이트를 다시 시도하려면 다음 절차를 완료하십시오.

해결책

  1. 감독자에 관리자로 로그인합니다.
  2. update_job_name을 조회합니다.
    kubectl get jobs -n vmware-system-tkg -l "run.tanzu.vmware.com/cluster-namespace=${cluster_namespace},cluster.x-k8s.io/cluster-name=${cluster_name}"
  3. curl을 사용하여 요청을 실행할 수 있도록 kubectl proxy를 실행합니다.
    kubectl proxy &
    Starting to serve on 127.0.0.1:8001이 표시되어야 합니다.
    참고: kubectl을 사용하여 리소스의 .status를 패치하거나 업데이트할 수 없습니다.
  4. curl을 사용하면 다음 패치 명령을 실행하여 .spec.backoffLimit을 높입니다.
    curl -H "Accept: application/json" -H "Content-Type: application/json-patch+json" 
    --request PATCH --data '[{"op": "replace", "path": "/spec/backoffLimit", "value": 8}]' 
    http://127.0.0.1:8001/apis/batch/v1/namespaces/vmware-system-tkg/jobs/${update_job_name}
  5. curl을 사용하면 다음 패치 명령을 실행하여 작업 컨트롤러가 새 포드를 생성할 수 있도록 .status.conditions를 지웁니다.
    $ curl -H "Accept: application/json" -H "Content-Type: application/json-patch+json" 
    --request PATCH --data '[{"op": "remove", "path": "/status/conditions"}]' 
    http://127.0.0.1:8001/apis/batch/v1/namespaces/vmware-system-tkg/jobs/${update_job_name}/status