The Cluster API Book
고려 사항
쿠버네티스 지원 버전
Cluster API에서 관리하는 클러스터의 쿠버네티스의 버전을 업그레이드하는 경우 관리 클러스터에서 실행 중인 Cluster API 버전이 대상 쿠버네티스 버전을 지원하는지 확인한다.
대상 쿠버네티스 버전을 지원하려면 Cluster API 버전을 업그레이드해야 할 수도 있다.
또한 항상 쿠버네티스 보조 버전 간에 순차적으로 업그레이드해야 한다. 예를 들어 쿠버네티스 v1.17에서 v1.19로 업그레이드하려면 먼저 v1.18로 업그레이드해야 한다.
이미지
kubeadm 기반 클러스터의 경우 인프라 제공자들은 kubelet과 일치하는 kubelet의 사전 설치 버전을 포함하는 “머신 이미지(machine image)”를 요구한다.
Cluster API를 사용하여 업그레이드
클러스터를 완전히 업그레이드하는 고급 단계는 먼저 콘트롤 플레인을 업그레이드한 다음 워커 노드를 업그레이드하는 것이다.
콘트롤 플레인 머신 업그레이드
기본 시스템 이미지를 업그레이드하는 방법
시스템 이미지의 기본 콘트롤 플레인 머신을 업그레이드하려면 KubeadmControlPlane
에서 참조하는 MachineTemplate
리소스를 변경해야 한다. MachineTemplate
리소스는 불변이므로 다음 방법을 사용하는 것이 좋다.
- 기존
MachineTemplate
를 복사한다. - 인스턴스 유형 또는 이미지 ID와 같이 변경해야 하는 값을 수정한다.
- 관리 클러스터에 새
MachineTemplate
을 생성한다. infrastructureRef
필드에서 새MachineTemplate
리소스를 참조하도록 기존KubeadmControlPlane
리소스를 수정한다.
다음 단계에서는 새 MachineTemplate
에 있는 새 값을 사용하여 제어부의 롤링 업데이트를 트리거한다.
쿠버네티스 제어부 버전 업그레이드 방법
쿠버네티스 콘트롤 플레인 버전을 업그레이드하려면 KubeadmControlPlane
리소스의 Spec.Version
을 수정한다. 이렇게 하면 콘트롤 플레인의 롤링 업그레이드가 트리거되고 공급자에 따라 기본 시스템 이미지도 업그레이드 된다.
AWS와 같은 일부 인프라 공급자는 특정 시스템 이미지가 지정된 경우 KubeadmControlPlane
규격에 지정된 쿠버네티스 버전과 일치해야 한다. 단일 업그레이드만 트리거하려면 먼저 새 MachineTemplate
을 생성한 다음 단일 트랜잭션에서 Version
과 InfrastructureTemplate
가 수정되어야 한다.
MachineDeployment에서 관리하는 시스템 업그레이드
업그레이드는 콘트롤 플레인만 국한되지 않는다. 이 섹션은 Kubeadm 콘트롤 플레인과는 특별히 관련이 없지만 Cluster API 관리 클러스터를 완전히 업그레이드하기 위한 마지막 단계다.
하나 이상의 Machine Deployment가 있는 시스템을 관리하는 것이 좋다. Machine Deployment는 원활한 확장 환경을 위해 Machine Sets 및 Machine을 투명하게 관리한다. Machine Deployments 사양을 수정하면 시스템의 롤링 업데이트가 시작된다. 기존 시스템 배포의 템플릿을 변경하려면 다음 지침을 따른다.
Machine Deployment에서 스케일링 이벤트를 관리하는 방법에 대해 자세히 알아보려면 Machine Deployment 컨트롤러 설명서 및 MachineSet 컨트롤러 설명서를 참조한다.