이 문서는 다양한 쿠버네티스 구성 요소 간에 지원되는 최대 버전 차이를 설명한다. 특정 클러스터 배포 도구는 버전 차이에 대한 추가적인 제한을 설정할 수 있다.

지원되는 버전

쿠버네티스 버전은 x.y.z 로 표현되는데, 여기서 x 는 메이저 버전, y 는 마이너 버전, z 는 패치 버전을 의미하며, 이는 시맨틱 버전 용어에 따른 것이다. 자세한 내용은 쿠버네티스 릴리스 버전을 참조한다.

쿠버네티스 프로젝트는 최근 세 개의 마이너 릴리스 (1.21, 1.20, 1.19) 에 대한 릴리스 분기를 유지한다. 쿠버네티스 1.19 이상은 약 1년간의 패치 지원을 받는다. 쿠버네티스 1.18 이상은 약 9개월의 패치 지원을 받는다.

보안 수정사항을 포함한 해당 수정사항은 심각도와 타당성에 따라 세 개의 릴리스 브랜치로 백포트(backport) 될 수 있다. 패치 릴리스는 각 브랜치별로 정기적인 주기로 제공하며, 필요한 경우 추가 긴급 릴리스도 추가한다.

릴리스 관리자 그룹이 이러한 결정 권한을 가진다.

자세한 내용은 쿠버네티스 패치 릴리스 페이지를 참조한다.

지원되는 버전 차이

kube-apiserver

고가용성(HA) 클러스터에서 최신 및 가장 오래된 kube-apiserver 인스턴스가 각각 한 단계 마이너 버전 내에 있어야 한다.

예:

kubelet

kubeletkube-apiserver보다 최신일 수 없으며, 2단계의 낮은 마이너 버전까지 지원한다.

예:

참고: HA 클러스터의 kube-apiserver 인스턴스 사이에 버전 차이가 있으면 허용되는 kubelet 버전의 범위도 줄어든다.

예:

kube-controller-manager, kube-scheduler 그리고 cloud-controller-manager

kube-controller-manager, kube-scheduler 그리고 cloud-controller-manager는 그들과 통신하는 kube-apiserver 인스턴스보다 최신 버전이면 안 된다. kube-apiserver 마이너 버전과 일치할 것으로 예상하지만, 최대 한 단계 낮은 마이너 버전까지는 허용한다(실시간 업그레이드를 지원하기 위해서).

예:

참고: HA 클러스터의 kube-apiserver 인스턴스 간에 버전 차이가 존재하고 이러한 구성 요소가 클러스터의 모든 kube-apiserver 인스턴스와 통신할 수 있는 경우(예를 들어, 로드 밸런서를 통해서)에는 구성 요소의 허용하는 버전의 범위도 줄어든다.

예:

kubectl

kubectlkube-apiserver의 한 단계 마이너 버전(이전 또는 최신) 내에서 지원한다.

예:

참고: HA 클러스터의 kube-apiserver 인스턴스 간에 버전 차이가 있으면 지원되는 kubectl 버전의 범위도 줄어든다.

예:

지원되는 구성 요소 업그레이드 순서

구성요소 간 지원되는 버전 차이는 구성요소를 업그레이드하는 순서에 영향을 준다. 이 섹션에서는 기존 클러스터를 버전 1.20 에서 버전 1.21 로 전환하기 위해 구성 요소를 업그레이드하는 순서를 설명한다.

kube-apiserver

사전 요구 사항:

kube-apiserver1.21 으로 업그레이드

참고: API 지원 중단API 변경 가이드라인 에 대한 프로젝트 정책에서는 단일 클러스터일지라도 업그레이드할 때 kube-apiserver의 마이너 버전을 건너뛰지 않도록 요구한다.

kube-controller-manager, kube-scheduler 그리고 cloud-controller-manager

사전 요구 사항:

kube-controller-manager, kube-schedulercloud-controller-manager1.21 으로 업그레이드한다.

kubelet

사전 요구 사항:

필요에 따라서 kubelet 인스턴스를 1.21 으로 업그레이드할 수 있다(또는 1.20 아니면 1.19 으로 유지할 수 있음).

참고: kubelet 마이너 버전 업그레이드를 수행하기 전에, 해당 노드의 파드를 드레인(drain)해야 한다. 인플레이스(In-place) 마이너 버전 kubelet 업그레이드는 지원되지 않는다.
경고:

클러스터 안의 kubelet 인스턴스를 kube-apiserver의 버전보다 2단계 낮은 버전으로 실행하는 것을 권장하지 않는다:

  • kube-apiserver를 업그레이드한다면 한 단계 낮은 버전으로 업그레이드해야 한다.
  • 이것은 관리되고 있는 3단계의 마이너 버전보다 낮은 kubelet을 실행할 가능성을 높인다.

kube-proxy

예:

kube-proxy 버전이 1.19 인 경우: