목록으로

Programming Notes

Kubernetes v1.34: 노드 cgroup 드라이버 자동 구성 기능 정식 버전 출시

과거에는 새로운 Kubernetes 클러스터를 운영하는 사용자에게 올바른 cgroup 드라이버를 구성하는 것이 골칫거리였습니다. Linux 시스템에는 cgroupfs 와 systemd 라는 두 가지 다른 cgroup 드라이버가 있습니다. 과거에는 kubelet 과 CRI...

과거에는 새로운 Kubernetes 클러스터를 운영하는 사용자에게 올바른 cgroup 드라이버를 구성하는 것이 골칫거리였습니다. Linux 시스템에는 cgroupfssystemd라는 두 가지 다른 cgroup 드라이버가 있습니다. 과거에는 kubelet과 CRI 구현체(예: CRI-O 또는 containerd) 모두 동일한 cgroup 드라이버를 사용하도록 구성되어야 했으며, 그렇지 않으면 kubelet이 명시적인 오류 메시지 없이 오작동했습니다. 이는 많은 클러스터 관리자에게 골칫거리였습니다. 이제 우리는 그 골칫거리의 (거의) 끝에 도달했습니다.

자동 cgroup 드라이버 감지

v1.28.0에서 SIG Node 커뮤니티는 kubelet이 CRI 구현체에 사용할 cgroup 드라이버를 질의하도록 지시하는 KubeletCgroupDriverFromCRI 기능 게이트를 도입했습니다. 자세한 내용은 여기에서 확인할 수 있습니다. 각 CRI 구현체가 주요 버전으로 출시되고 주요 운영 체제에 패키징되기를 여러 릴리스 동안 기다린 끝에, 이 기능은 Kubernetes 1.34.0부터 정식 버전(GA)으로 출시되었습니다.

기능 게이트를 설정하는 것 외에도, 클러스터 관리자는 CRI 구현체가 충분히 최신 버전인지 확인해야 합니다.

  • containerd: v2.0.0에서 지원이 추가되었습니다.
  • CRI-O: v1.28.0에서 지원이 추가되었습니다.

공지: Kubernetes, containerd v1.y 지원 중단 예정

CRI-O는 Kubernetes 버전과 일치하는 버전을 출시하므로 이 동작이 없는 CRI-O 버전은 더 이상 지원되지 않지만, containerd는 자체 릴리스 주기를 유지합니다. 이 기능에 대한 containerd 지원은 v2.0 이상에서만 제공되지만, Kubernetes 1.34는 여전히 containerd 1.7 및 containerd의 다른 LTS(장기 지원) 릴리스를 지원합니다.

Kubernetes SIG Node 커뮤니티는 containerd v1.y에 대한 최종 지원 타임라인에 공식적으로 합의했습니다. 이 지원을 제공하는 마지막 Kubernetes 릴리스는 v1.35의 마지막 출시 버전이 될 것이며, v1.36.0에서는 지원이 중단됩니다. 관리자들이 이 향후 전환을 관리하는 데 도움을 주기 위해 새로운 감지 메커니즘이 제공됩니다. kubelet_cri_losing_support 메트릭을 모니터링하여 클러스터의 노드 중 곧 구식이 될 containerd 버전을 사용하는 노드가 있는지 확인할 수 있습니다. 이 메트릭에 1.36.0 버전 레이블이 표시되면 해당 노드의 containerd 런타임이 향후 요구 사항을 충족할 만큼 충분히 최신 버전이 아니라는 것을 나타냅니다. 따라서 관리자는 kubelet을 v1.36.0으로 업그레이드하기 전이나 동시에 containerd를 v2.0 이상 버전으로 업그레이드해야 합니다.