현재 버전과 대상 버전이 클러스터 업그레이드에 미치는 영향을 이해하면 시작하기 전에 버전 편향, 업그레이드 순서, OS 요구사항을 확인하는 데 도움이 됩니다.
버전별 업그레이드 정보
다음 표에서는 버전별 업그레이드 정보를 설명합니다. 표 아래에서 특정 버전에 관한 세부정보를 확인할 수 있습니다. 버전은 최신순으로 정렬됩니다. 클러스터에 적용되는 구체적인 세부정보와 규칙을 확인하려면 업그레이드할 대상 버전을 찾습니다.
| 버전 | 먼저 업그레이드 | 컨트롤 플레인(CP) 버전 | 워커 노드 풀 버전 | 고급 클러스터 상태 | 기존 기능 지원 여부 | 기본 및 필수 OS 이미지 | Kubeception 노드 업그레이드 동작 | 번들형 cert-manager |
|---|---|---|---|---|---|---|---|---|
| 1.36 | 관리자 클러스터 | 1.36, 1.35, 1.34 | 1.36, 1.35, 1.34 | 필수 | 없음 | ubuntu_cgv2, cos_cgv2 |
지원되지 않음 | 번들 |
| 1.35 | 관리자 클러스터 | 1.35, 1.34, 1.33 | 1.35, 1.34, 1.33 | 필수 | 없음 | ubuntu_cgv2, cos_cgv2 필수(cgroup v1 삭제됨) |
지원되지 않음 | 번들 |
| 1.34 | 관리자 클러스터 | 1.34, 1.33, 1.32 | 1.34, 1.33, 1.32 | 필수(선택 해제 불가, 고급이 아닌 경우 자동 변환됨) | 없음 | ubuntu_cgv2(기본값), cos_cgv2, ubuntu_containerd, cos |
지원되지 않음 | 번들 |
| 1.33 | 관리자 클러스터 | 1.33, 1.32, 1.31 | 1.33, 1.32, 1.31 | 기본값(자동 변환)(1.32에서 1.33으로만 선택 해제) | 없음 | ubuntu_cgv2(기본값), cos_cgv2, ubuntu_containerd, cos |
지원되지 않음 | 고급 클러스터용 번들 |
| 1.32 | 관리자 클러스터 | 1.32, 1.31, 1.30 | 1.32, 1.31, 1.30 | 정식 버전(업그레이드 지원, 별도 및 건너뛰기 노드 업그레이드 지원) | 없음 | ubuntu_cgv2(기본값), cos_cgv2, ubuntu_containerd, cos |
지원되지 않음(Controlplane V2로 마이그레이션해야 함) | 고급 클러스터용 번들 |
| 1.31 | 관리자 클러스터 | 1.31, 1.30, 1.29 | 1.31, 1.30, 1.29 | 프리뷰(1.32로 업그레이드 없음, 별도의 노드 업그레이드 또는 노드 업그레이드 건너뛰기 없음) | 예(Seesaw, F5, Kubeception, 비 HA). 권장 기능으로 마이그레이션하는 것이 적극 권장됩니다. Dataplane V2는 필수입니다. | ubuntu_cgv2(기본값), cos_cgv2, ubuntu_containerd, cos |
관리자 노드는 관리자로 업그레이드되고 사용자 CP 노드는 사용자 클러스터로 업그레이드됩니다. | 번들되지 않음 |
| 1.30 | 사용자 클러스터 | 1.30 | 1.30, 1.29, 1.28 | 사용 불가 | 예(Seesaw, F5, Kubeception, 비HA). 권장 기능으로 마이그레이션하는 것이 좋습니다. | ubuntu_cgv2(기본값), cos_cgv2, ubuntu_containerd, cos |
관리자 클러스터 업그레이드 중에 CP 및 관리 노드가 업그레이드됨 | 번들되지 않음 |
| 1.29 | 사용자 클러스터 | 1.29, 1.30 | 1.29, 1.28, 1.16 | 사용 불가 | 예(Seesaw, F5, Kubeception, 비HA) | ubuntu_cgv2(기본값), cos_cgv2, ubuntu_containerd, cos |
관리자 클러스터 업그레이드 중에 CP 및 관리 노드가 업그레이드됨 | 번들되지 않음 |
| 1.28 | 사용자 클러스터 | 1.28, 1.29, 1.30 | 1.28, 1.16, 1.15 | 사용 불가 | 예(Seesaw, F5, Kubeception, 비HA) | ubuntu_containerd(기본값), cos, ubuntu_cgv2, cos_cgv2 |
관리자 클러스터 업그레이드 중에 CP 및 관리 노드가 업그레이드됨 | 번들되지 않음 |
모든 버전에서 부하 분산기 노드 풀 버전(enableLoadBalancer: true가 있는 노드 풀)을 사용자 클러스터 컨트롤 플레인과 동일한 버전으로 동시에 업그레이드해야 합니다.
출시 버전별 업그레이드 정보
업그레이드하려는 버전의 섹션을 찾아 해당 버전으로 업그레이드하는 데 필요한 특정 정보를 확인합니다.
버전 1.36
먼저 업그레이드: 관리자 클러스터
- 1.36 버전의 관리자 클러스터는 1.36, 1.35, 1.34 버전의 사용자 클러스터를 관리할 수 있습니다.
- 사용자 클러스터 컨트롤 플레인 버전: 1.36, 1.35 또는 1.34
- 워커 노드 풀 버전: 1.36, 1.35 또는 1.34
고급 클러스터 상태: 고급 클러스터는 필수입니다.
노드 업그레이드 건너뛰기: 지원됩니다.
기존 기능 지원: 아니요. 업그레이드를 차단합니다.
기본 및 필수 OS 이미지: ubuntu_cgv2, cos_cgv2 새 구성의 기본 osImageType은 ubuntu_cgv2입니다.
Kubeception 노드 업그레이드 동작: 지원되지 않습니다. 업그레이드를 차단합니다.
업그레이드 도구:
gkectl: 관리자 클러스터에 필요합니다. 지원되는 버전은 1.36, 1.37, 1.38입니다.- Terraform: Terraform을 사용하여 사용자 클러스터를 만든 경우 지원됩니다.
- Google Cloud 콘솔: 사용자 클러스터 업그레이드에 지원됩니다.
- Google Cloud CLI: 사용자 클러스터 업그레이드에 지원됩니다.
추가 요구사항:
gkectl upgrade admin --async를 사용하여 관리자 클러스터 업그레이드를 비동기식으로 실행할 수 있습니다.
버전 1.35
먼저 업그레이드: 관리자 클러스터
- 1.35의 관리자 클러스터는 1.35, 1.34, 1.33의 사용자 클러스터를 관리할 수 있습니다.
- 사용자 클러스터 컨트롤 플레인 버전: 1.35, 1.34 또는 1.33
- 워커 노드 풀 버전: 1.35, 1.34 또는 1.33
고급 클러스터 상태: 고급 클러스터는 필수입니다.
노드 업그레이드 건너뛰기: 지원됩니다.
기존 기능 지원: 아니요. 업그레이드를 차단합니다.
기본 및 필수 OS 이미지: ubuntu_cgv2, cos_cgv2 필수(cgroup v1 삭제됨) 새 구성의 기본 osImageType는 ubuntu_cgv2입니다. 업그레이드하기 전에 클러스터를 cgroup v2로 마이그레이션해야 합니다.
Kubeception 노드 업그레이드 동작: 지원되지 않습니다. 업그레이드를 차단합니다.
업그레이드 도구:
gkectl: 관리자 클러스터에 필요합니다. 지원되는 버전은 1.35, 1.36, 1.37입니다.- Terraform: Terraform을 사용하여 사용자 클러스터를 만든 경우 지원됩니다.
- 콘솔: 사용자 클러스터 업그레이드에 지원됩니다.
- gcloud CLI: 사용자 클러스터 업그레이드에 지원됩니다.
추가 요구사항:
gkectl upgrade admin --async를 사용하여 관리자 클러스터 업그레이드를 비동기식으로 실행할 수 있습니다.
버전 1.34
먼저 업그레이드: 관리자 클러스터
- 1.34의 관리자 클러스터는 1.34, 1.33, 1.32의 사용자 클러스터를 관리할 수 있습니다.
- 사용자 클러스터 컨트롤 플레인 버전: 1.34, 1.33 또는 1.32
워커 노드 풀 버전: 1.34, 1.33 또는 1.32
고급 클러스터 상태: 고급 클러스터는 필수입니다.
노드 업그레이드 건너뛰기: 지원됩니다.
기존 기능 지원: 아니요. 업그레이드를 차단합니다.
기본 및 필수 OS 이미지: ubuntu_cgv2, cos_cgv2, ubuntu_containerd, cos 기본 osImageType는 ubuntu_cgv2입니다.
Kubeception 노드 업그레이드 동작: 지원되지 않습니다. 업그레이드를 차단합니다.
업그레이드 도구:
gkectl: 관리자 클러스터에 필요합니다. 고급이 아닌 클러스터를 고급 클러스터로 변환하는 데 필요합니다(1.34에서 필수,gkectl바이너리 버전이 대상 출시 버전과 정확히 일치해야 함). 지원되는 버전은 1.34, 1.35, 1.36입니다.- Terraform: Terraform을 사용하여 사용자 클러스터를 만든 경우 지원됩니다.
- 콘솔: 고급 사용자 클러스터 업그레이드에 지원됩니다.
- gcloud CLI: 고급 사용자 클러스터 업그레이드에 지원됩니다.
추가 요구사항:
버전 1.34로 업그레이드하는 경우 다음 추가 요구사항이 적용됩니다.
1.34로 업그레이드하면 고급이 아닌 클러스터가 고급 클러스터로 자동 변환됩니다. 고급이 아닌 클러스터에서 고급 클러스터로 업그레이드하는 특정 규칙에 대한 자세한 내용은 클러스터를 고급 클러스터로 업데이트 또는 업그레이드를 참조하세요.
번들로 제공되는
cert-manager는 필수이며 버전 1.19로 업데이트되어 기존 커스텀cert-manager설치를 재정의합니다. 번들cert-manager업그레이드에 대한 자세한 내용은 번들cert-manager사용을 참조하세요.노드 컨테이너 런타임이 containerd 2.0으로 업그레이드되었습니다. 이에 따른 영향은 다음과 같습니다.
- containerd 2.0은 기존 Docker 이미지 Manifest v2 또는 스키마 1 이미지를 지원하지 않습니다. 1.34로 업그레이드하기 전에 워크로드가 Docker 스키마 2 또는 OCI 호환 형식을 사용하여 컨테이너 이미지를 가져오는지 확인하세요.
- 레지스트리 미러 구성은 containerd 2.0에서 hosts.toml 형식으로 마이그레이션됩니다. 노드에서 직접 커스텀 미러 구성 또는 에어 갭 적용 레지스트리 엔드포인트를 관리하는 경우 구성이 hosts.toml과 일치하는지 확인합니다.
- /etc/containerd/config.toml을 패치하는 커스텀 DaemonSet 또는 스크립트를 사용하는 경우 containerd 2.0에서 containerd 시작 실패를 일으킬 수 있는 지원 중단된 containerd v1 구성 옵션을 사용하지 않는지 확인하세요.
nodePoolUpdatePolicy.maximumConcurrentNodePoolUpdate필드의 기본값이 버전 1.34.300에서 변경되었습니다. 버전 1.34.300 이상에서 순차적 노드 풀 업그레이드를 원하는 경우 사용자 클러스터 구성 파일에서nodePoolUpdatePolicy.maximumConcurrentNodePoolUpdate: 1를 설정합니다.- 버전 1.34.0~1.34.200의 경우
nodePoolUpdatePolicy.maximumConcurrentNodePoolUpdate는 기본적으로1로 설정되며, 한 번에 하나의 노드 풀을 순차적으로 업데이트합니다. - 버전 1.34.300 이상의 경우
nodePoolUpdatePolicy.maximumConcurrentNodePoolUpdate은 기본적으로0로 설정되며, 이 경우 모든 노드 풀이 동시에 업데이트됩니다.
자세한 내용은 노드 풀 업데이트 정책 구성을 참조하세요.
- 버전 1.34.0~1.34.200의 경우
업그레이드 프리플라이트 검사는 클러스터 전체의 모든
PodDisruptionBudget(PDB) 구성을 적극적으로 검증합니다. 업그레이드하기 전에 워크로드에 노드 드레이닝을 차단하는 과도하게 제한적인 PDB(예: 총 복제본과 일치하는maxUnavailable: 0또는minAvailable)가 없거나 프리플라이트 검사가 실패할 수 있는지 확인합니다.업그레이드가 중단되면 버전 1.34.300-gke.59 이상으로 직접 업그레이드합니다. 이 버전은 실패 후
gkectl upgrade admin를 다시 실행해야 하는 경우 부트스트랩 클러스터가 삭제되지 않도록 방지합니다. 자세한 내용은gkectl upgrade admin를 다시 실행하면 부트스트랩 클러스터가 삭제됨을 참조하세요.고급 클러스터의 경우 고급 클러스터가 아닌 클러스터에서 고급 클러스터로 변환하는 경우를 제외하고
gkectl upgrade admin --async를 사용하여 관리자 클러스터 업그레이드를 비동기식으로 실행할 수 있습니다.
버전 1.33
먼저 업그레이드: 관리자 클러스터
- 1.33의 관리자 클러스터는 1.33, 1.32, 1.31의 사용자 클러스터를 관리할 수 있습니다.
- 사용자 클러스터 컨트롤 플레인 버전: 1.33, 1.32 또는 1.31
워커 노드 풀 버전: 1.33, 1.32 또는 1.31
고급 클러스터 상태: 고급 클러스터는 기본 클러스터 유형이며 자동으로 변환됩니다. 선택 해제가 허용됩니다. 자세한 내용은 고급이 아닌 클러스터 업그레이드 및 유지보수를 참조하세요. enableAdvancedCluster를 false로 설정하면 새 클러스터 만들기가 실패합니다.
노드 업그레이드 건너뛰기: 지원됩니다.
기존 기능 지원: 아니요. 업그레이드를 차단합니다.
기본 및 필수 OS 이미지: ubuntu_cgv2, cos_cgv2, ubuntu_containerd, cos 기본 osImageType는 ubuntu_cgv2입니다.
Kubeception 노드 업그레이드 동작: 지원되지 않습니다. 업그레이드를 차단합니다.
업그레이드 도구:
gkectl: 고급 클러스터가 아닌 클러스터를 고급 클러스터로 변환하는 데 필요합니다(gkectl바이너리 버전이 대상 출시 버전과 정확히 일치해야 함). 관리자 클러스터에 필요합니다. 지원되는 버전은 1.33, 1.34, 1.35입니다.- Terraform: Terraform을 사용하여 사용자 클러스터를 만든 경우 지원됩니다.
- 콘솔: 고급 사용자 클러스터 업그레이드에 지원됩니다.
- gcloud CLI: 고급 사용자 클러스터 업그레이드에 지원됩니다.
추가 요구사항:
버전 1.33으로 업그레이드하는 경우 다음 추가 요구사항이 적용됩니다.
1.32에서 1.33으로 업그레이드하면 기본적으로 고급이 아닌 클러스터가 고급 클러스터로 자동 변환됩니다. 클러스터를 고급이 아닌 상태로 유지할 수 있습니다. 클러스터를 고급이 아닌 상태로 유지하는 방법에 대한 자세한 내용은 고급이 아닌 클러스터 업그레이드 및 유지보수를 참조하세요.
고급 클러스터는
cert-managerv1.18을 자동으로 설치하고 번들로 묶어 기존 커스텀cert-manager설치를 재정의합니다. 번들cert-manager업그레이드에 대한 자세한 내용은 번들cert-manager사용을 참조하세요.이 출시 버전에서 고급 클러스터로 업그레이드하는 경우 고급 클러스터가 아닌 클러스터에서 고급 클러스터로 변환할 때
gkectl바이너리 버전이 대상 출시 버전과 정확히 일치해야 합니다. 이 요구사항은 고급 클러스터로 업그레이드하는 동안에만 적용됩니다. 고급 클러스터의 다른 모든 업그레이드에는 기본 버전 편향 규칙이 적용됩니다.업그레이드가 중단되면 버전 1.33.700-gke.71 이상으로 직접 업그레이드합니다. 이 버전은 실패 후
gkectl upgrade admin를 다시 실행해야 하는 경우 부트스트랩 클러스터가 삭제되지 않도록 방지합니다.모든 사용자 클러스터가 Controlplane V2를 실행하는 경우 고급 클러스터 및 비고급 HA 클러스터에 대해
gkectl upgrade admin --async를 사용하여 관리자 클러스터 업그레이드를 비동기식으로 실행할 수 있습니다. 고급 클러스터가 아닌 클러스터에서 고급 클러스터로 변환할 때는--async플래그를 사용할 수 없습니다.
버전 1.32
먼저 업그레이드: 관리자 클러스터
- 1.32의 관리자 클러스터는 1.32, 1.31, 1.30의 사용자 클러스터를 관리할 수 있습니다.
- 사용자 클러스터 컨트롤 플레인 버전: 1.32, 1.31 또는 1.30
워커 노드 풀 버전: 1.32, 1.31 또는 1.30
고급 클러스터 상태: 지원됩니다.
노드 업그레이드 건너뛰기: 지원됩니다.
기존 기능 지원: 아니요. 업그레이드를 차단합니다.
기본 및 필수 OS 이미지: ubuntu_cgv2, cos_cgv2, ubuntu_containerd, cos 기본 osImageType는 ubuntu_cgv2입니다.
Kubeception 노드 업그레이드 동작: 지원되지 않습니다. 업그레이드를 차단합니다. Controlplane V2로 마이그레이션해야 합니다.
업그레이드 도구:
gkectl: 고급 클러스터가 아닌 클러스터를 고급 클러스터로 변환하는 데 필요합니다(gkectl바이너리 버전이 대상 출시 버전과 정확히 일치해야 함). 관리자 클러스터에 필요합니다. 지원되는 버전은 1.32, 1.33, 1.34입니다.- Terraform: Terraform을 사용하여 사용자 클러스터를 만든 경우 지원됩니다.
- 콘솔: 고급 사용자 클러스터 업그레이드에 지원됩니다.
- gcloud CLI: 고급 사용자 클러스터 업그레이드에 지원됩니다.
추가 요구사항:
버전 1.32로 업그레이드하는 경우 다음 추가 요구사항이 적용됩니다.
완전히 지원되는 GA 고급 클러스터로 선택적 업그레이드를 허용하는 첫 번째 버전입니다. 다음 중 하나를 선택할 수 있습니다.
고급이 아닌 클러스터로 업그레이드하고 고급이 아닌 클러스터를 유지합니다. 이 옵션을 선택하면 이번 출시부터 다음 작업을 수행할 수 있습니다.
- 사용자 클러스터의 컨트롤 플레인과 워커 노드 풀을 별도로 업그레이드합니다. 워커 노드 풀은 컨트롤 플레인보다 최대 2개의 마이너 버전까지 낮을 수 있습니다.
- 관리자 및 사용자 클러스터에 대해 비동기식으로 업그레이드를 실행합니다.
고급이 아닌 클러스터로 업그레이드한 후 고급이 아닌 클러스터를 고급 클러스터로 변환합니다. 이 옵션을 선택하면 이번 출시부터 다음 작업을 수행할 수 있습니다.
- 고급 클러스터로 변환할 때가 아니라 비고급 클러스터를 업그레이드할 때 사용자 클러스터의 컨트롤 플레인과 워커 노드 풀을 별도로 업그레이드합니다. 워커 노드 풀은 컨트롤 플레인보다 최대 2개의 마이너 버전까지 낮을 수 있습니다.
- 고급 클러스터가 아닌 클러스터를 업그레이드할 때 관리자 및 사용자 클러스터에 대해 비동기식으로 업그레이드를 실행합니다.
- 고급 클러스터로 변환할 때는 출시 버전 1.32.1000-gke.57 이상으로 업그레이드하세요. 이 버전에는 부트스트랩 클러스터가 삭제되지 않는 알려진 문제에 대한 수정사항이 포함되어 있습니다.
고급 클러스터로 직접 업그레이드합니다. 이 옵션을 선택하면 이 출시 버전부터 다음이 적용됩니다.
- 컨트롤 플레인과 모든 노드 풀을 함께 업그레이드해야 합니다.
- 사용자 클러스터에 대해 비동기식으로 업그레이드를 실행할 수 있지만 관리자 클러스터에는 실행할 수 없습니다.
- 부트스트랩 클러스터가 삭제되지 않는 알려진 문제에 대한 수정사항이 포함되어 있으므로 출시 버전 1.32.1000-gke.57 이상으로 업그레이드하세요.
이 버전부터는 다음 기존 기능이 지원되지 않습니다. 자세한 내용은 기존 기능을 참조하세요.
- Dataplane V1(Calico) 1.32로 업그레이드하기 전에 Dataplane V2로 업그레이드합니다.
- Seesaw 1.32로 업그레이드하기 전에 대체 부하 분산기로 업그레이드하세요.
- 통합 F5 BIG-IP 1.32로 업그레이드하기 전에 대체 부하 분산기로 업그레이드하세요.
- Kubeception 1.32로 업그레이드하기 전에 비Kubeception 클러스터로 업그레이드합니다.
- HA가 아닌 관리자 클러스터 1.32로 업그레이드하기 전에 HA 관리자 클러스터로 업그레이드합니다.
고급이 아닌 클러스터에서 고급 클러스터로 변환할 때
gkectl바이너리 버전이 대상 출시 버전과 정확히 일치해야 합니다. 이 요구사항은 고급 클러스터로 업그레이드하는 동안에만 적용됩니다. 고급 클러스터의 다른 모든 업그레이드에는 기본 버전 편향 규칙이 적용됩니다.업그레이드가 중단되면 버전 1.32.1000-gke.57 이상으로 직접 업그레이드합니다. 이 버전은 실패 후
gkectl upgrade admin를 다시 실행해야 하는 경우 부트스트랩 클러스터가 삭제되지 않도록 방지합니다.버전 1.32 이상에서는 모든 사용자 클러스터가 Controlplane V2를 실행하는 경우 고급 클러스터 및 고급이 아닌 HA 클러스터에 대해
gkectl upgrade admin --async를 사용하여 관리자 클러스터 업그레이드를 비동기식으로 실행할 수 있습니다. 고급 클러스터가 아닌 클러스터에서 고급 클러스터로 변환할 때는--async플래그를 사용할 수 없습니다.
버전 1.31
먼저 업그레이드: 관리자 클러스터
- 1.31의 관리자 클러스터는 1.31, 1.30, 1.29의 사용자 클러스터를 관리할 수 있습니다.
- 사용자 클러스터 컨트롤 플레인 버전: 1.31, 1.30, 1.29
- 워커 노드 풀 버전: 1.31, 1.30 또는 1.29 (1.31 고급 클러스터에서는 지원되지 않음)
- 1.29/1.30에서 1.31로 업그레이드하려면 관리자 클러스터를 1.31로 업그레이드하기 전에 모든 클러스터를 1.30 버전으로 업그레이드해야 합니다.
고급 클러스터 상태: 프리뷰 전용입니다. 상위 버전으로 업그레이드할 수 없습니다.
노드 업그레이드 건너뛰기: 지원됩니다.
지원되는 기존 기능: Dataplane V2 필수, Kubeception, Seesaw, F5는 계속 지원됩니다.
기본 및 필수 OS 이미지: ubuntu_cgv2, cos_cgv2, ubuntu_containerd, cos 기본 osImageType는 ubuntu_cgv2입니다.
Kubeception 노드 업그레이드 동작: 관리자 노드는 관리자 클러스터로 업그레이드되고 사용자 CP 노드는 사용자 클러스터로 업그레이드됩니다.
업그레이드 도구:
gkectl: 관리자 클러스터, 비고급 클러스터, 고급 클러스터(이 출시 버전의 경우 프리뷰)에 필요합니다. 지원되는 버전은 1.31, 1.32, 1.33입니다.- Terraform: Terraform을 사용하여 사용자 클러스터를 만든 경우 등록된 사용자 클러스터에 지원됩니다.
- 콘솔: 등록된 사용자 클러스터 업그레이드에 지원됩니다.
- gcloud CLI: 등록된 사용자 클러스터 업그레이드에 지원됩니다.
추가 요구사항:
버전 1.31로 업그레이드하는 경우 다음 추가 요구사항이 적용됩니다.
이 출시 버전에서는 프리뷰 모드의 고급 클러스터가 도입되었습니다. 이 출시 버전에서는 고급 클러스터가 아닌 클러스터를 고급 클러스터로 마이그레이션할 수 없습니다. 새 클러스터를 고급 클러스터로 만들 수 있지만 이러한 프리뷰 버전 고급 클러스터를 상위 버전으로 업그레이드할 수는 없습니다. 이 출시 버전에서는 고급 클러스터를 만들지 않는 것이 좋습니다. 프리뷰와 같은 제품 출시 단계에 대한 자세한 내용은 제품 출시 단계를 참조하세요.
1.31 이상에서는 업그레이드 아키텍처가 관리자 클러스터가 사용자 클러스터보다 높거나 같아야 하는 모델로 변경되었습니다. 이전에는 사용자 클러스터가 관리자 클러스터보다 최대 2개 마이너 버전 앞설 수 있었습니다.
관리자 클러스터에서 관리하는 사용자 클러스터를 업그레이드하기 전에 관리자 클러스터를 업그레이드해야 합니다. 관리자 클러스터는 부 버전이 동일하거나 최대 2개 낮은 사용자 클러스터를 관리할 수 있습니다. 예를 들어 버전 1.31의 관리자 클러스터는 버전 1.31, 1.30, 1.29의 사용자 클러스터를 관리할 수 있습니다.
1.29에서 1.31로 업그레이드하려면 중간 단계로 1.30 번들을 스테이징해야 합니다. 1.31로 업그레이드하려면 관리자 워크스테이션에서 1.30 및 1.31 번들을 모두 다운로드해야 합니다. 1.29에서 1.31로 버전 건너뛰기 업그레이드를 수행하려면 다음을 수행합니다.
- 사용자 클러스터의 컨트롤 플레인만 1.29에서 1.30으로 업그레이드합니다(워커 노드 풀은 1.29로 유지).
- 관리자 클러스터를 1.29에서 1.30으로 업그레이드합니다.
- 관리자 클러스터를 1.30에서 대상 버전인 1.31로 업그레이드합니다.
- 사용자 클러스터 컨트롤 플레인과 워커 노드 풀을 함께 1.31로 업그레이드합니다.
Kubeception을 사용하는 경우 관리자 클러스터 업그레이드 중에 관리자 클러스터 노드가 업그레이드되고 사용자 클러스터 업그레이드 중에 사용자 클러스터 컨트롤 플레인 노드가 업그레이드됩니다.
1.31로 업그레이드하려면 Dataplane V2를 사용 설정해야 합니다. CNI 마이그레이션 중에 네트워크 정책 충돌 및 트래픽 감소를 방지하려면 모든
NetworkPolicy객체를 수동으로 저장한 후 삭제하고 업그레이드 후에 복원해야 합니다. Dataplane V2로 전환하려면 다음 단계를 따르세요.모든 커스텀 네트워크 정책을 내보내고 저장합니다.
kubectl --kubeconfig USER_CLUSTER_KUBECONFIG \ get networkpolicy -A -o wide \ --field-selector metadata.namespace!=kube-system kubectl --kubeconfig USER_CLUSTER_KUBECONFIG \ get networkpolicy POLICY_NAME \ -n NAMESPACE -o yaml > policy.yaml다음을 바꿉니다.
USER_CLUSTER_KUBECONFIG: 사용자 클러스터의 kubeconfig 파일 경로POLICY_NAME:NetworkPolicy객체의 이름NAMESPACE:NetworkPolicy객체의 네임스페이스입니다.
클러스터에서 네트워크 정책을 삭제합니다.
kubectl --kubeconfig USER_CLUSTER_KUBECONFIG \ delete networkpolicy POLICY_NAME \ -n NAMESPACE사용자 클러스터 구성 파일에서
enableDataplaneV2: true를 설정하고 1.31로 업그레이드를 수행합니다.1.31 업그레이드가 완료된 후 저장된 정책을 적용하여 Cilium이 이를 확장된 Berkeley Packet Filter(eBPF)로 깔끔하게 컴파일하도록 합니다.
kubectl --kubeconfig USER_CLUSTER_KUBECONFIG \ apply -f policy.yaml
HA 관리자 클러스터가 있고 모든 사용자 클러스터에서 Controlplane V2를 실행하는 경우
gkectl upgrade admin --async명령어를 사용하여 업그레이드를 비동기식으로 실행할 수 있습니다.모든 사용자 클러스터에 Dataplane V2가 필요합니다. 사용자 클러스터를 버전 1.31로 업그레이드하기 전에 Dataplane V2 사용 설정의 단계를 수행합니다.
기존 기능은 1.32에서 지원되지 않으며 1.30 및 1.31에서 교체하여 1.32로 업그레이드할 때 문제를 방지할 수 있습니다.
버전 1.30
먼저 업그레이드: 사용자 클러스터
- 1.30의 사용자 클러스터는 1.30, 1.29 또는 1.28의 관리자 클러스터에서 관리할 수 있습니다.
- 1.30의 관리자 클러스터는 1.30의 사용자 클러스터만 관리할 수 있습니다. 관리자 클러스터를 1.31로 업그레이드하려면 먼저 모든 사용자 클러스터와 관리자 클러스터가 1.30에 도달해야 하며, 사용자 클러스터를 1.31로 업그레이드하려면 먼저 관리자 클러스터를 1.31로 업그레이드해야 합니다.
- 사용자 클러스터 컨트롤 플레인 버전: 1.30.
- 워커 노드 풀 버전: 1.30, 1.29 또는 1.28
고급 클러스터 상태: 사용할 수 없음
노드 업그레이드 건너뛰기: 지원됩니다.
기존 기능 지원: 지원됩니다. 권장 기능으로 마이그레이션하는 것이 좋습니다.
기본 및 필수 OS 이미지: ubuntu_cgv2, cos_cgv2, ubuntu_containerd, cos 기본 osImageType는 ubuntu_cgv2입니다.
- Kubeception 노드 업그레이드 동작:** 관리자 클러스터 업그레이드 중에 컨트롤 플레인 및 관리 노드가 업그레이드됩니다.
업그레이드 도구:
gkectl: 관리자 클러스터에 필요합니다. 지원되는 버전은 1.30, 1.31, 1.32입니다.- Terraform: Terraform을 사용하여 사용자 클러스터를 만든 경우 등록된 사용자 클러스터에 지원됩니다.
- 콘솔: 등록된 사용자 클러스터 업그레이드에 지원됩니다.
- gcloud CLI: 등록된 사용자 클러스터 업그레이드에 지원됩니다.
추가 요구사항:
버전 1.30으로 업그레이드하는 경우 다음 추가 요구사항이 적용됩니다.
이 버전 및 모든 이전 버전의 경우 관리 관리자 클러스터를 업그레이드하기 전에 모든 사용자 클러스터를 마이그레이션해야 합니다. 관리자 클러스터는 관리형 사용자 클러스터와 동일하거나 낮은 마이너 버전이어야 합니다.
Kubeception을 사용하는 경우 업그레이드 중에 다음과 같은 상황이 발생합니다.
- 사용자 클러스터를 업그레이드합니다. 사용자 컨트롤 플레인은 관리자 클러스터 내에 있으므로
gkectl upgrade cluster를 실행하면 워커 노드 풀만 업그레이드됩니다. - 관리자 클러스터를 업그레이드합니다. 관리자 클러스터 업그레이드는 관리 노드를 업그레이드하고 동시에 모든 사용자 클러스터 컨트롤 플레인을 자동으로 업그레이드합니다.
- 사용자 클러스터를 업그레이드합니다. 사용자 컨트롤 플레인은 관리자 클러스터 내에 있으므로
Controlplane V2가 있는 경우 업그레이드 중에 다음이 발생합니다.
- 사용자 클러스터를 업그레이드합니다. 이렇게 하면 컨트롤 플레인과 워커 노드 풀이 업그레이드됩니다.
- 관리자 클러스터를 업그레이드합니다. 이렇게 하면 관리 노드가 업그레이드됩니다.
새 사용자 클러스터를 만들 때는 이번 출시 버전부터 기본값인
enableControlplaneV2필드를true로 설정해야 합니다.enableControlplaneV2필드를false로 설정하면gkectl에서 파일을 거부하고 클러스터를 만들지 않습니다.HA 관리자 클러스터가 있고 모든 사용자 클러스터에서 Controlplane V2를 실행하는 경우
gkectl upgrade admin --async명령어를 사용하여 업그레이드를 비동기식으로 실행할 수 있습니다.기존 기능은 1.32에서 지원되지 않으며 1.30 및 1.31에서 교체하여 1.32로 업그레이드할 때 문제를 방지할 수 있습니다.
버전 1.29
먼저 업그레이드: 사용자 클러스터
- 1.29의 사용자 클러스터는 1.29, 1.28 또는 1.16의 관리자 클러스터에서 관리할 수 있습니다.
- 1.29의 관리자 클러스터는 1.29 및 1.30의 사용자 클러스터를 관리할 수 있습니다. 1.29의 관리자 클러스터는 1.31의 사용자 클러스터를 관리할 수 없습니다. 모든 클러스터가 먼저 1.30에 도달해야 하고, 사용자 클러스터를 1.31로 업그레이드하기 전에 관리자 클러스터를 1.31로 업그레이드해야 하기 때문입니다.
- 사용자 클러스터 컨트롤 플레인 버전: 1.29 또는 1.30(최대 1개의 마이너 버전 더 높음)
- 워커 노드 풀 버전: 1.29, 1.28 또는 1.16
고급 클러스터 상태: 사용할 수 없음
노드 업그레이드 건너뛰기: 지원됩니다.
기존 기능 지원: 지원됩니다.
기본 및 필수 OS 이미지: ubuntu_cgv2, cos_cgv2, ubuntu_containerd, cos 기본 osImageType는 ubuntu_cgv2입니다.
Kubeception 노드 업그레이드 동작: 관리자 클러스터 업그레이드 중에 컨트롤 플레인 및 관리자 노드 업그레이드
업그레이드 도구:
gkectl: 관리자 클러스터에 필요합니다. 지원되는 버전은 1.29, 1.30, 1.31입니다.- Terraform: Terraform을 사용하여 사용자 클러스터를 만든 경우 등록된 사용자 클러스터에 지원됩니다.
- 콘솔: 등록된 사용자 클러스터 업그레이드에 지원됩니다.
- gcloud CLI: 등록된 사용자 클러스터 업그레이드에 지원됩니다.
추가 요구사항:
버전 1.29로 업그레이드하는 경우 다음 추가 요구사항이 적용됩니다.
- 워커 노드는 컨트롤 플레인(n+2)보다 최대 2개의 마이너 버전까지 낮을 수 있습니다.
- 워커 노드 풀을 업그레이드할 때 마이너 버전을 건너뛸 수 있습니다. 예를 들어 워커 노드 풀을 1.28에서 1.30으로 업그레이드할 수 있습니다.
- 프리플라이트 검사는 관리자 워크스테이션이 아닌 관리자 클러스터 또는 임시 부트스트랩 종류 클러스터 내에서 포드로 실행됩니다.
- 이 버전부터는
gkectl upgrade cluster --dry-run를 사용하여 클러스터를 업그레이드하지 않고 실행 전 검사를 실행할 수 있습니다. - HA 관리자 클러스터가 있고 모든 사용자 클러스터에서 Controlplane V2를 실행하는 경우
gkectl upgrade admin --async명령어를 사용하여 업그레이드를 비동기식으로 실행할 수 있습니다.
버전 1.28
먼저 업그레이드: 사용자 클러스터
- 1.28의 사용자 클러스터는 1.28, 1.16 또는 1.15의 관리자 클러스터에서 관리할 수 있습니다.
- 1.28의 관리자 클러스터는 1.28, 1.29, 1.30의 사용자 클러스터를 관리할 수 있습니다.
- 사용자 클러스터 컨트롤 플레인 버전: 1.28, 1.29 또는 1.30(최대 2개의 마이너 버전 더 높음)
- 워커 노드 풀 버전: 1.28, 1.16 또는 1.15(최대 2개의 부 버전이 더 낮음)
고급 클러스터 상태: 사용할 수 없음
노드 업그레이드 건너뛰기: 지원됩니다.
기존 기능 지원: 지원됩니다.
기본 및 필수 OS 이미지: ubuntu_containerd, cos, ubuntu_cgv2, cos_cgv2 기본 osImageType는 ubuntu_containerd입니다.
Kubeception 노드 업그레이드 동작: 관리자 클러스터 업그레이드 중에 컨트롤 플레인 및 관리자 노드 업그레이드
업그레이드 도구:
gkectl: 관리자 클러스터에 필요합니다. 지원되는 버전은 1.28, 1.29, 1.30입니다.- Terraform: Terraform을 사용하여 사용자 클러스터를 만든 경우 등록된 사용자 클러스터에 지원됩니다.
- 콘솔: 등록된 사용자 클러스터 업그레이드에 지원됩니다.
- gcloud CLI: 등록된 사용자 클러스터 업그레이드에 지원됩니다.
추가 요구사항:
버전 1.28로 업그레이드하는 경우 다음 추가 요구사항이 적용됩니다.
kubernetesmetadata.googleapis.com을 사용 설정하고 로깅-모니터링 서비스 계정에roles/kubernetesmetadata.publisher을 부여해야 합니다. 그렇지 않으면 실행 전 검사가 실패하거나403 PERMISSION_DENIED오류가 표시될 수 있습니다. API를 사용 설정하고 기존 로깅-모니터링 서비스 계정에 역할을 부여합니다.gcloud services enable kubernetesmetadata.googleapis.com gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:LOGGING_SA" \ --role="roles/kubernetesmetadata.publisher"다음을 바꿉니다.
PROJECT_ID: 사용자 클러스터가 구성원인 Fleet 호스트 프로젝트의 ID입니다.LOGGING_SA: 로깅 모니터링 서비스 계정의 이메일 주소입니다.
노드 풀 업그레이드 중에 버전을 건너뛰는 것이 기술적으로 가능하지만 이 기능은 프리뷰 기능으로 도입되었으며 이 버전에는 권장되지 않습니다. 프리뷰와 같은 제품 출시 단계에 대한 자세한 내용은 제품 출시 단계를 참조하세요.
번들 부하 분산기가 있는 노드 풀은 클러스터 버전과 정확히 일치해야 합니다.
nodePools[i].updateStrategy.rollingUpdate.maxSurge필드를 설정하여 여러 노드를 동시에 업그레이드할 수 있습니다. vSphere 클러스터에는 업그레이드 중에 추가 급증 VM을 수용할 수 있는 충분한 CPU, RAM, 사용 가능한 IP 주소가 있어야 합니다.maxSurge: 1(기본값)을 설정하여 한 번에 하나씩 노드를 업그레이드합니다(드레이닝, 교체, 확인, 반복).maxSurge: N(여기서N > 1)를 설정하여 동시에 최대N개의 워커 노드를 프로비저닝하고 드레이닝합니다(예:maxSurge: 3는 워커 노드 3개를 동시에 업그레이드함).
관리자 워크스테이션을 업그레이드하려면 관리자 워크스테이션에 최소 100GB의 여유 디스크 공간이 있어야 합니다.
업그레이드에 사용하는
gkectl버전은 현재 클러스터보다 최대 2개 마이너 버전까지 높을 수 있습니다. 더 낮은 마이너 버전은 사용할 수 없습니다.
1.28 이전 출시 버전
버전 1.28 이전 출시 버전으로 업그레이드하는 경우 다음 추가 요구사항이 적용됩니다. 1.16과 1.28 사이에는 출시 버전이 없습니다.
버전 1.16:
- 관리자 클러스터와 사용자 클러스터 간, 컨트롤 플레인과 노드 풀 간의 버전 차이는 마이너 버전 1개만 가능합니다. 예를 들어 1.15의 관리자 클러스터는 버전 1.15 또는 1.16의 사용자 클러스터만 관리할 수 있습니다. 1.16으로 업그레이드된 사용자 클러스터 컨트롤 플레인은 버전 1.15 또는 1.16을 실행하는 워커 노드 풀을 관리할 수 있습니다. 컨트롤 플레인을 버전 1.16으로 이동하려면 먼저 버전 1.14의 풀을 1.15로 업그레이드해야 합니다. 버전 편향에 대한 자세한 내용은 버전 편향 규칙을 참조하세요.
- 클러스터는 생성되거나 1.16으로 업그레이드될 때 GKE On-Prem API에 자동으로 등록됩니다. 이 변경사항으로 인해 관리자 워크스테이션 셸뿐만 아니라 콘솔, gcloud CLI, Terraform을 사용하여 사용자 클러스터를 보고, 모니터링하고, 업그레이드할 수 있습니다.
버전 1.14:
- 사용자 클러스터 컨트롤 플레인만 먼저 업그레이드할 수 있으므로 모든 워커 노드 풀을 동시에 드레이닝하고 업그레이드할 필요가 없습니다.
- 업그레이드 중에 시스템은 워크스테이션에서 기존 관리자 및 사용자 클러스터 kubeconfig 파일을 자동으로 검사하고 업데이트하여 사용자 인증 정보를 자동으로 갱신합니다.
버전 1.13:
- 이 버전 이전에는 오프라인 관리자 클러스터를 사용할 수 있었습니다. 이 출시 버전에서는 관리자 클러스터를 Google Cloud에 등록해야 합니다. 클러스터를 등록하는 방법은 기존 클러스터 등록을 참조하세요.
- 클러스터를 VMware용 Google Distributed Cloud 소프트웨어 전용 버전 1.13 이상으로 업그레이드하려면 먼저 Docker Engine을 계속 사용하는 모든 사용자 클러스터 노드 풀을 containerd로 업데이트해야 합니다.
번들 cert-manager 사용
고급 클러스터에 자동으로 설치되는 번들 cert-manager을 사용해야 합니다. 고급이 아닌 클러스터에서 고급 클러스터로 마이그레이션하면 통합 cert-manager가 고객이 설치한 cert-manager 버전을 자동으로 재정의합니다.
고급 클러스터로 업데이트하거나 업그레이드하기 전에 기존 cert-manager에 중요한 커스텀 구성이나 기능이 적용되지 않았는지 확인하세요.
cert-manager에 중요한 커스텀 구성 또는 기능을 적용했는지 확인하려면 다음을 수행합니다.
- 지속적 배포 도구를 정지합니다. GitOps 도구(예: 구성 동기화, ArgoCD, Flux)를 사용하여
cert-manager를 관리하는 경우 업그레이드하기 전에 동기화를 일시중지하거나 저장소에서cert-manager매니페스트를 삭제합니다. 클러스터 업그레이드가 실행되는 동안 GitOps 컨트롤러가cert-manager를 이전 버전 또는 커스텀 매니페스트로 조정하려고 시도하면 클러스터 업그레이드를 중단할 수 있는 조정 루프가 생성됩니다. - 업그레이드하기 전에
cert-manager포드, 네임스페이스 또는 CRD를 수동으로 제거하거나 삭제하지 마세요.gkectl는 이러한 업그레이드를 인플레이스(In-Place)로 관리합니다. cert-manager배포 플래그, 노드 선택기 또는 포드 리소스 한도를 수정한 경우 되돌립니다. 고급 클러스터는cert-manager에서 커스텀 바이너리 인수 또는 배포 수준 재정의를 지원하지 않습니다.- 특수 외부 발급기관, 비공개 ACME DNS-01 웹훅 플러그인 또는 커스텀 웹훅을 사용하는 경우 서드 파티 플러그인이 업그레이드하려는 출시 버전의 번들
cert-manager버전과 호환되는지 확인합니다.
자세한 내용은 고급 클러스터와 번들로 제공되는 cert-manager로 업그레이드를 참조하세요.
다음 표에는 번들로 묶인 cert-manager가 필요한 출시 버전이 나와 있습니다.
| 버전 | 새 클러스터의 상태 | 기존 클러스터 업그레이드 상태 | 번들 cert-manager이 필요한가요? |
|---|---|---|---|
| 1.34+ | 필수 | 필수 전환(v1.19 번들) | 모든 고객에게 공통적으로 적용됩니다. 고급이 아닌 클러스터는 더 이상 존재할 수 없습니다. |
| 1.33 | 모든 새 클러스터의 표준/기본값 | 기본적으로 고급 클러스터로 자동 변환(v1.18 번들) | enableAdvancedCluster: false를 사용하여 명시적으로 선택 해제하지 않는 한 거의 모든 클러스터에 필요합니다(1.32 → 1.33만 해당). |
| 1.32(정식 버전) | 기본적으로 사용 설정됨 | 고급 클러스터로의 선택적 전환 | 고급 클러스터가 사용 설정된 경우 필수입니다. |
| 1.31(프리뷰) | 선택사항(enableAdvancedCluster: true) |
지원되지 않음 | 고급 클러스터가 사용 설정된 경우 필수입니다. |
지원되는 각 출시 버전에 번들로 제공되는 cert-manager 버전을 확인하려면 번들로 제공되는 cert-manager 버전을 참조하세요.
제어 영역 V2
Controlplane V2가 사용 설정되면 사용자 클러스터의 컨트롤 플레인은 사용자 클러스터 자체에서 실행됩니다. Controlplane V2의 경우 사용자 클러스터 컨트롤 플레인 노드는 사용자 클러스터 업그레이드 중에 업그레이드되고 관리자 클러스터 컨트롤 플레인 노드는 관리자 클러스터 업그레이드 중에 업그레이드됩니다.
기존 기능
다음 표에는 버전 1.32 이상에서 차단되는 기존 기능이 나와 있습니다. 이러한 기능을 사용하는 경우 버전 1.32 이상으로 업그레이드하기 전에 권장되는 대안으로 마이그레이션해야 합니다.
| 기존 기능(1.32에서 차단됨) | 대체 기능(권장) | 마이그레이션 안내 링크 | | --- | --- | --- | | Dataplane V1(Calico) | Dataplane V2(Cilium/eBPF) | Dataplane V2로 마이그레이션| | Kubeception | Controlplane V2 | Controlplane V2로 마이그레이션 | | 비HA 관리자 클러스터(복제본 1개) | HA 관리자 클러스터(복제본 3개) | HA 관리자 클러스터로 마이그레이션 | | Seesaw 부하 분산기 | MetalLB 또는 ManualLB | MetalLB로 마이그레이션 또는 부하 분산기 유형 마이그레이션| | 통합 F5 BIG-IP(loadBalancer.kind: "F5BigIP") | ManualLB(F5 Big-IP Controller 또는 CCGI와 페어링됨) | ManualLB로 마이그레이션 |
기존 기능에서 권장 기능으로 마이그레이션하는 방법에 대한 자세한 내용은 권장 기능으로 클러스터 마이그레이션 계획을 참조하세요.
Kubeception 마이그레이션 및 버전 동작
Kubeception은 버전 1.32 이상으로 업그레이드하기 전에 Controlplane V2로 마이그레이션해야 하는 기존 기능입니다.
업그레이드는 버전에 따라 Kubeception이 있는 클러스터에서 다르게 작동합니다.
- 1.28: 관리자 클러스터 업그레이드 중 컨트롤 플레인 및 관리자 노드 업그레이드
- 1.29: 관리자 클러스터 업그레이드 중 컨트롤 플레인 및 관리자 노드 업그레이드
1.30: 관리자 클러스터 업그레이드 중에 컨트롤 플레인 및 관리자 노드가 업그레이드됩니다. Kubeception을 사용하는 경우 업그레이드 중에 다음이 발생합니다.
- 사용자 클러스터를 업그레이드합니다. 사용자 컨트롤 플레인은 관리자 클러스터 내에 있으므로
gkectl upgrade cluster를 실행하면 워커 노드 풀만 업그레이드됩니다. - 관리자 클러스터를 업그레이드합니다. 관리자 클러스터 업그레이드는 관리 노드를 업그레이드하고 동시에 모든 사용자 클러스터 컨트롤 플레인을 자동으로 업그레이드합니다.
- 사용자 클러스터를 업그레이드합니다. 사용자 컨트롤 플레인은 관리자 클러스터 내에 있으므로
1.31: 관리자 클러스터로 업그레이드된 관리 노드, 사용자 클러스터로 업그레이드된 사용자 컨트롤 플레인 노드
1.32 이상: Kubeception은 지원되지 않습니다. 1.32 이상으로 업그레이드하려면 먼저 Controlplane V2로 마이그레이션해야 합니다.
Kubeception을 Controlplane V2로 마이그레이션하는 방법에 대한 자세한 내용은 권장 기능으로 클러스터 마이그레이션 계획을 참조하세요.
버전 차이와 업그레이드 중 버전 건너뛰기 비교
버전 차이는 관리자 클러스터와 관리형 사용자 클러스터 간에 허용되는 마이너 버전 차이 또는 사용자 클러스터의 컨트롤 플레인과 사용자 클러스터의 노드 풀 간의 마이너 버전 차이입니다.
버전 차이는 업그레이드 시 마이너 버전을 건너뛰는 것과는 다릅니다.
컨트롤 플레인을 업그레이드한 후 워커 노드 풀을 업그레이드할 때만 마이너 버전을 건너뛸 수 있습니다. 이는 버전 1.31 및 버전 1.28 이전을 실행하는 고급 클러스터를 제외한 고급 및 비고급 클러스터에 적용됩니다. 예를 들어 워커 노드 풀이 버전 1.29인 경우 사용자 클러스터 컨트롤 플레인을 1.30으로 업데이트한 후 1.31로 업데이트합니다. 컨트롤 플레인이 1.31로 업그레이드된 후 워커 노드 풀을 1.30으로 업그레이드하지 않고 1.29에서 1.31로 직접 업그레이드합니다. 자세한 내용은 노드 풀 업그레이드 시 버전 건너뛰기를 참고하세요.
다음 순차적 부 출시 버전보다 높은 부 출시 버전으로 업그레이드하려면 먼저 다음 부 출시 버전으로 업그레이드한 후 더 높은 부 출시 버전으로 업그레이드합니다. 관리자 및 사용자 클러스터 컨트롤 플레인을 업그레이드할 때는 마이너 버전을 건너뛸 수 없습니다. 예를 들어 버전 1.34.x에서 버전 1.36.x로 업그레이드하려는 경우 직접 업그레이드할 수 없습니다. 먼저 1.34.x에서 1.35.x로 업그레이드한 후 1.36.x로 업그레이드해야 합니다.
사용자 클러스터의 컨트롤 플레인은 클러스터의 워커 노드 풀보다 최대 두 개의 마이너 버전까지 높을 수 있습니다. 예를 들어 사용자 클러스터의 컨트롤 플레인이 1.36인 경우 클러스터의 워커 노드 풀은 1.34, 1.35 또는 1.36일 수 있습니다.
어떤 버전 편차가 허용되나요?
관리자 클러스터는 마이너 버전이 최대 두 버전 더 낮은 사용자 클러스터를 관리할 수 있습니다. 예를 들어 관리자 클러스터가 1.31인 경우 해당 관리자 클러스터에서 관리하는 사용자 클러스터는 1.29, 1.30 또는 1.31일 수 있습니다.
버전 1.31 이전에는 다음 버전 왜곡 규칙이 적용됩니다.
- 버전 1.28~1.30의 경우 사용자 클러스터는 관리자 클러스터보다 마이너 버전이 최대 두 버전 더 높을 수 있습니다. 예를 들어 관리자 클러스터가 1.15인 경우 해당 관리자 클러스터에서 관리하는 사용자 클러스터는 1.15, 1.16 또는 1.28일 수 있습니다. 관리자 클러스터가 1.16 이상으로 업그레이드될 때까지 1.28 사용자 클러스터를 1.29로 업그레이드할 수 없습니다. 버전 1.31에서는 관리자 클러스터를 먼저 업그레이드하도록 업그레이드 순서가 변경되므로 1.29 또는 1.30의 관리자 클러스터는 1.31 또는 1.32의 사용자 클러스터를 관리할 수 없습니다. 관리자 클러스터를 1.31로 업그레이드하려면 먼저 모든 사용자 클러스터와 관리자 클러스터가 1.30에 도달해야 합니다.
- 버전 1.16 이하에서 사용자 클러스터는 관리자 클러스터보다 마이너 버전이 한 버전만 더 높을 수 있습니다. 예를 들어 관리자 클러스터가 1.15인 경우 해당 관리자 클러스터에서 관리하는 사용자 클러스터는 1.15 또는 1.16일 수 있습니다.
사용자 클러스터를 한 번에 모두 업그레이드해야 하나요?
사용자 클러스터를 업그레이드할 때 다음 중 하나를 선택할 수 있습니다.
- 클러스터의 컨트롤 플레인과 모든 노드 풀을 동시에 사용하여 전체 사용자 클러스터를 업그레이드합니다.
- 사용자 클러스터의 컨트롤 플레인을 업그레이드하고 노드 풀을 현재 버전으로 둡니다.
- 사용자 클러스터의 컨트롤 플레인을 업그레이드하고 노드 풀을 선택적으로 업그레이드합니다.
사용하는 접근 방식은 다음과 같은 여러 가지 요인에 따라 다릅니다.
- 클러스터가 위치한 환경(프로덕션 또는 비프로덕션)
- 유지보수 기간의 길이
- 사용자 클러스터의 버전
예를 들어 개발 환경에서 사용자 클러스터의 컨트롤 플레인과 모든 노드 풀을 모두 업그레이드할 수 있습니다. 하지만 유지보수 기간이 짧은 프로덕션 환경에서는 컨트롤 플레인 업그레이드가 시간이 오래 걸리지 않으므로 컨트롤 플레인 업그레이드만 진행할 수 있습니다. 또한 컨트롤 플레인 업그레이드는 사용자 워크로드에 지장을 주지 않습니다.
부하 분산기 노드 풀(enableLoadBalancer: true가 있는 노드 풀)은 모든 버전에서 클러스터와 동일한 버전이어야 합니다.
gkectl의 버전 규칙
업그레이드에 사용할 수 있는 gkectl 버전은 대상 클러스터 버전(업그레이드할 클러스터의 버전)에 따라 다릅니다.
일반적으로 클러스터 대상 버전과 동일한 버전의 gkectl을 사용합니다.
업그레이드 중에는 다음 규칙이 적용됩니다.
gkectl버전은 대상 마이너 클러스터 버전과 동일하거나 그 이상이어야 합니다. 예를 들어 1.29 클러스터를 1.30으로 업그레이드하는 경우gkectl1.30 이상을 사용해야 합니다. 패치 버전은 중요하지 않습니다.gkectl버전은 현재 클러스터 버전보다 최대 2개 마이너 버전까지 높을 수 있습니다. 예를 들어 1.28 클러스터를 1.29로 업그레이드하려면gkectl버전 1.29 또는 1.30을 사용하되 버전 1.31은 클러스터 버전보다 마이너 버전이 3개 높으므로 사용하지 마세요.
고급이 아닌 클러스터에서 고급 클러스터로 변환할 때는 gkectl 바이너리 버전이 대상 출시 버전과 정확히 일치해야 합니다. 이 엄격한 버전 요구사항은 고급 클러스터로 업그레이드하는 동안에만 적용됩니다. 다른 모든 고급 클러스터 업그레이드에는 표준 버전 편향 규칙이 적용됩니다.
패치 버전 업그레이드 규칙
가능할 때마다 클러스터에 최신 보안 수정이 적용되도록 최신 패치 버전으로 업그레이드합니다. 패치 버전은 버전 차이 및 업그레이드 규칙에 영향을 주지 않습니다. 지정된 마이너 버전의 경우 어떤 상위 패치 버전으로든 업그레이드할 수 있습니다. 예를 들어 1.35.0에서 1.35.1로 업그레이드하고 1.35.1에서 1.35.3으로 업그레이드할 수 있습니다.
다음 단계
업그레이드 권장사항을 검토하고 클러스터 업그레이드 계획 세우기
고급 클러스터가 사용 설정된 클러스터를 만듭니다.