문제 설명
클러스터 초기화 대기 시간이 초과되었습니다. 노드 자동 업그레이드가 실패하거나 오류와 함께 실행됩니다. (Timed out waiting for cluster initialization, Auto upgrade of nodes fail / or Run with error)
내 GCP 프로젝트의 각 클러스터 노드 풀에 3개의 노드가 있는 클러스터가 거의 없으며 자동 업그레이드 및 복구가 사용 설정되어 있습니다.
자동 업그레이드는 약 3일 전에 시작되었으며 GKE 버전: 1.12.10‑gke.17에 대해 여전히 실행 중입니다.
이제 내 클러스터가 자동 업그레이드를 선택했으므로 업그레이드 및 자동 복구, 문제 없이 업그레이드되는 클러스터는 거의 없고 문제가 있는 업데이트/업그레이드를 실행 중인 클러스터는 거의 없습니다.
첫 번째 클러스터에서 내 포드 중 몇 개는 예약할 수 없으며 GCP에서 제안하는 가능한 작업은
- 자동 크기 조정이 비활성화된 하나 이상의 노드 풀에서 자동 크기 조정을 활성화합니다.
- 하나 이상의 노드 풀 크기를 수동으로 늘립니다.
"gcloud container clusters describe"를 실행할 때 clustername" "zone" "
클러스터의 세부 정보를 얻습니다. 그러나 노드 풀 섹션 아래
status: RUNNING_WITH_ERROR
statusMessage: 'asia‑south1‑a: Timed out waiting for cluster initialization; cluster
API may not be available: k8sclient: 7 ‑ 404 status code returned. Requested resource
not found.'
version: 1.12.10‑gke.17
참고:
또한 GCP가
- 하나 이상의 노드 풀에서 자동 크기 조정이 비활성화되어 있습니다.
- 하나 이상의 노드 풀을 수동으로 축소합니다.
리소스 요청이 적기 때문입니다.
이 문제를 해결하기 위해 제공할 수 있는 다른 로그를 알려주십시오.
업데이트:
우리는 이 로그를 살펴보았고 Google 지원팀은 kubelet이 인증서 서명 요청(CSR) 제출에 실패했거나 오래된 유효하지 않은 자격 증명이 있을 수 있다고 생각합니다. 문제 해결에 도움이 되도록 다음 질문에 답해 주십시오.
- sudo journalctl ‑u kubelet > kubelet.log
- sudo journalctl ‑u kube‑node‑installation > kube‑ node‑installation.log
- sudo journalctl ‑u kube‑node‑configuration > kube‑node‑configuration.log
- sudo journalctl ‑u 노드 문제 감지기 > 노드 문제‑ detector.log
- sudo journalctl ‑u docker > docker.log
- sudo journalctl ‑u cloud‑init > cloud‑init.log
1.13.12‑gke 실행을 시작하는 모든 노드. 13 마스터에 연결하지 못했습니다. 노드에 발생하는 다른 모든 것(예: 레크리에이션)은 복구 루프에서 노드를 수정하려고 하고 추가 문제를 일으키지 않는 것 같습니다.
참조 솔루션
방법 1:
This isn't exactly a solution but a working fix. We were able to do narrow down to this.
On the nodepools we had the labels "node‑restriction" to what type of nodes should it be.
Google Support has also suggested that currently it is not possible to update the labels of an existing node‑pool when it has begun an upgrade hence they suggested creating a new node‑pool without any of these labels. In case if were able to deploy the node‑pool successfully, we had to think of migrating our workloads to this newly created node‑pool.
so we removed those two node selector labels and created a new nodepool. to our surprise it worked. We had to migrate the whole workload though.
we followed this Cloud Migration
(by Chronograph3r、Chronograph3r)