如果 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}"
- 執行
kubectl proxy
,以便能夠使用 curl
發出請求。
您應該會看到
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