TKG 클러스터의 업데이트가 실패한 경우 업데이트 작업을 다시 시작하고 업데이트를 다시 시도할 수 있습니다.
문제
TKG 클러스터의 업데이트가 실패하고 클러스터 상태가 upgradefailed
가 됩니다.
원인
클러스터 업데이트 실패에는 스토리지 부족과 같은 몇 가지 이유가 있을 수 있습니다. 실패한 업데이트 작업을 다시 시작하고 클러스터 업데이트를 다시 시도하려면 다음 절차를 완료하십시오.
해결책
- 감독자에 관리자로 로그인합니다.
-
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}"
-
curl
을 사용하여 요청을 실행할 수 있도록 kubectl proxy
를 실행합니다.
Starting to serve on 127.0.0.1:8001
이 표시되어야 합니다.
참고:
kubectl
을 사용하여 리소스의
.status
를 패치하거나 업데이트할 수 없습니다.
-
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}
-
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