버전 1.32부터 Google Kubernetes Engine(GKE)은 cgroupv1
실행 클러스터를 cgroupv2
로 마이그레이션합니다. 이 페이지에서는 다음을 수행하는 방법을 안내합니다.
- 클러스터 노드가 실행 중인 cgroup 모드를 확인하고 cgroup 모드 사이를 전환하여 워크로드에 영향을 미치는지 확인합니다.
- GKE Standard 클러스터 노드 풀을
cgroupv2
로 마이그레이션합니다. - 노드 풀을
cgroupv1
에서cgroupv2
로 자동 마이그레이션하는 GKE를 일시적으로 중지합니다. cgroup 모드 간 전환이 영향을 미칠 수 있는 워크로드가 클러스터에 실행되는 경우 이 안내를 따릅니다.
Standard 노드 풀을 수동으로 마이그레이션하거나 일시적으로 중지할 수 있습니다. Autopilot 클러스터는 마이그레이션하거나 일시적으로 중지할 수 없습니다.
cgroupv2
에서 워크로드가 예상한 대로 실행되는지 또는 cgroup 모드 구성의 영향을 받지 않는 것을 알고 있으면 이 페이지를 건너뛰어도 됩니다.
GKE는 버전 1.32 이상을 사용해서 cgroupv1
실행 클러스터를 cgroupv2
로 자동으로 마이그레이션합니다.
Linux 통제 그룹 정보
kubelet 및 컨테이너 런타임은 포드에서 각 컨테이너가 액세스할 수 있는 CPU 또는 메모리 양을 제한하는 것과 같은 리소스 관리를 위해 Linux 커널 통제 그룹(cgroup)을 사용합니다. 커널에는 cgroupv1
및 cgroupv2
의 두 가지 cgroup 하위 시스템 모드가 있습니다.
cgroupv2
에 대한 Kubernetes 지원은 Kubernetes 버전 1.18에서 알파, 1.22에서 베타, 1.25에서 정식 버전으로 도입되었습니다. 자세한 내용은 Kubernetes cgroups v2 문서를 참조하세요.
Standard 클러스터의 cgroup 모드 구성에 대한 자세한 내용은 Linux cgroup 모드 구성 옵션을 참조하세요.
GKE가 cgroupv2
로 전환하는 방법
다음 타임라인을 검토하여 GKE가 cgroupv2
를 사용하도록 기존 클러스터를 전환하는 방법을 확인하세요.
- 버전 1.26 이전에서는
cgroupv1
이 노드 기본값이었습니다. 버전 1.26 이상에서는cgroupv2
가 새 노드의 기본값입니다. 기존 노드는 변경되지 않습니다. GKE 클러스터가 기본적으로 실행하는 cgroup 모드에 대한 자세한 내용은 클러스터 노드의 cgroup 모드 확인을 참조하세요. - 부 버전 1.31부터 GKE에서
cgroupv1
이 지원 중단됩니다. - 1.32부터는 GKE가
cgroupv1
실행 클러스터를cgroupv2
로 마이그레이션합니다. 노드 풀이cgroupv1
을 사용하도록 명시적으로 지정하여 이러한 자동 마이그레이션을 일시적으로 방해할 수 있습니다. - 부 버전 1.34에서는 GKE에서
cgroupv1
지원이 삭제됩니다.
1.31 및 1.32와 같은 이후 부 버전에 대한 대략적인 자동 업그레이드 시기는 출시 채널의 예상 일정을 참조하세요.
시작하기 전에
시작하기 전에 다음 태스크를 수행했는지 확인합니다.
- Google Kubernetes Engine API를 사용 설정합니다. Google Kubernetes Engine API 사용 설정
- 이 태스크에 Google Cloud CLI를 사용하려면 gcloud CLI를 설치한 후 초기화합니다. 이전에 gcloud CLI를 설치한 경우
gcloud components update
를 실행하여 최신 버전을 가져옵니다.
클러스터 노드의 cgroup 모드 확인
기본 cgroup 모드는 클러스터 또는 노드 풀 유형과 버전에 따라 달라집니다. 버전 1.26 이상에서는 기본값이 cgroupv2
입니다. 버전 1.25 이하에서는 기본값이 cgroupv1
입니다.
- 노드 자동 프로비저닝으로 생성된 Autopilot 클러스터 및 새로운 Standard 클러스터 노드 풀의 경우 cgroup 모드는 초기 클러스터 버전을 기반으로 합니다.
- 노드 자동 프로비저닝 없이 수동으로 생성된 Standard 클러스터 노드 풀의 경우 cgroup 모드는 초기 노드 풀 버전을 기반으로 합니다.
cgroup 모드를 확인하려면 클러스터 모드에 따라 안내를 따르세요.
Autopilot
다음 명령어를 실행하고 CLUSTER_NAME
을 클러스터 이름으로 바꿉니다.
gcloud container clusters describe CLUSTER_NAME \
--format='value(initialClusterVersion)'
처음에 GKE 버전 1.25 이하로 생성된 GKE Autopilot 클러스터는 cgroupv1
를 실행합니다. 처음에 버전 1.26 이상으로 생성된 클러스터는 cgroupv2
를 실행합니다.
Standard
GKE Standard 클러스터에서는 cgroup 모드가 노드 풀 수준에서 설정됩니다. 개별 노드 풀의 모드를 확인하려면 안내에 따라 cgroup 구성을 확인합니다.
클러스터 노드가 이미 cgroupv2
를 사용 중이면 추가 작업이 필요합니다.
cgroupv2
로 노드 마이그레이션
GKE가 버전 1.32 이상으로 자동으로 마이그레이션하기 전에 기존 노드를 마이그레이션하는 것이 좋습니다. Standard 노드 풀은 수동으로 마이그레이션할 수 있습니다. Autopilot 클러스터는 마이그레이션할 수 없습니다.
cgroupv1
을 실행하는 노드를 마이그레이션하려면 다음 단계를 수행합니다.
- 노드의 cgroup 모드를 확인합니다. 클러스터 노드가 이미
cgroupv2
를 사용 중이면 추가 작업이 필요합니다. - cgroup v2로 마이그레이션의 고려사항을 검토하고 새 버전의 API를 사용하도록 워크로드가 준비되었는지 확인합니다.
각 노드 풀의 노드 시스템 구성에 다음을 추가하여 Standard 클러스터의 노드를 마이그레이션합니다.
linuxConfig: cgroupMode: 'CGROUP_MODE_V2'
cgroupv2
로 자동 마이그레이션 일시 중지
Standard 노드 풀을 일시적으로 중지할 수 있습니다. Autopilot 클러스터는 일시적으로 중지할 수 없습니다.
부 버전 1.32 이상에서 cgroupv1
을 실행하는 Standard 클러스터 노드 풀을 cgroupv2
로 자동 마이그레이션하지 않도록 일시적으로 중지하려면 cgroupv1
을 명시적으로 설정해야 합니다.
기존 Standard 노드 풀의 경우 각 노드 풀의 노드 시스템 구성에 다음을 추가합니다.
linuxConfig:
cgroupMode: 'CGROUP_MODE_V1'
자세한 내용은 노드 시스템 구성 맞춤설정을 참조하세요.