내용으로 건너뛰기

Amazon EKS 클러스터 및 추가 기능을 업그레이드하려면 어떻게 해야 합니까?

4분 분량
0

모범 사례를 따라 Amazon Elastic Kubernetes Service(EKS) 클러스터 및 추가 기능을 업그레이드하고 싶습니다.

간략한 설명

클러스터를 업그레이드하기 전에 새 Kubernetes 버전과 호환되는지 확인하십시오. 또한 새 버전에서 작동하려면 스토리지 드라이버 및 추가 기능을 업데이트해야 할 수도 있습니다.

Amazon EKS 클러스터에서 Kubernetes 버전을 업그레이드한 후에는 이전 버전으로 다운그레이드할 수 없습니다. Kubernetes 버전을 업그레이드하기 전에 EKS의 Kubernetes 버전 수명 주기 이해를 참조하십시오. 보안 그룹 규칙이 클러스터를 만들 때 지정한 서브넷에 필요한 클러스터 통신을 허용하는지 확인하십시오.

참고:

  • 노드의 kubelet 버전은 Kubernetes 버전보다 최신일 수 없습니다.
  • 컨트롤 플레인을 업데이트할 때 노드 그룹은 자동으로 업그레이드되지 않습니다.
  • 노드 kubelet 버전은 Kubernetes 버전보다 두 마이너 버전 이하일 수 없습니다. 예를 들어, Kubernetes 버전이 1.33인 경우 지원되는 kubelet 버전은 1.33, 1.32, 1.31입니다.

마이너 버전은 출시 후 14개월 동안 Amazon EKS에서 표준 지원을 받습니다. 그 후 버전은 12개월 동안 확장 지원으로 전환됩니다.

확장 지원을 사용하면 클러스터 시간당 추가 비용을 지불하고 특정 Kubernetes 버전을 더 오래 유지할 수 있습니다. 확장 지원 기간이 종료되기 전에 클러스터를 업그레이드하지 않으면 AWS는 현재 지원되는 가장 초기 버전으로 클러스터를 자동으로 업그레이드합니다.

확장 지원은 기본적으로 활성화됩니다. 확장 지원을 비활성화하려면 EKS 확장 지원을 비활성화하여 클러스터 비용 증가 방지를 참조하십시오. 릴리스 및 지원 날짜는 Amazon EKS Kubernetes 릴리스 캘린더를 참조하십시오.

해결 방법

Amazon EKS 클러스터 버전 업데이트

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.

먼저 클러스터 컨트롤 플레인 및 노드의 현재 Kubernetes 버전과 현재 eksctl 버전을 확인하십시오.

다음 명령을 실행하여 클러스터 컨트롤 플레인의 Kubernetes 버전을 확인합니다.

kubectl version

출력 예시:

Client Version: v1.33.2
Kustomize Version: v5.6.0
Server Version: v1.32.5-eks-5d4a308

다음 명령을 실행하여 노드의 Kubernetes 버전을 확인합니다.

kubectl get nodes

출력 예시:

NAME                            STATUS   ROLES    AGE    VERSION
ip-10-42-177-172.ec2.internal   Ready    <none>   132m   v1.32.3-eks-473151a
ip-10-42-177-39.ec2.internal    Ready    <none>   142m   v1.32.3-eks-473151a

다음 명령을 실행하여 eksctl 버전을 확인합니다.

eksctl version

참고: eksctl 버전 0.210.0 이상을 사용해야 합니다. 업그레이드를 완료하는 데 몇 분 정도 걸립니다.

그런 다음, eksctl, Amazon EKS 콘솔 또는 AWS CLI를 사용하여 클러스터를 업데이트합니다.

노드 그룹 버전 업데이트

관리형 노드 그룹을 업데이트하려면 클러스터의 관리형 노드 그룹 업데이트를 참조하십시오. 자체 관리형 노드 그룹을 업데이트하려면 애플리케이션을 새 노드 그룹으로 마이그레이션해야 합니다.

Amazon EKS 추가 기능 업데이트

Amazon EKS는 컨트롤 플레인 업그레이드 중에 추가 기능을 자동으로 업그레이드하지 않습니다. 추가 기능의 호환 버전을 확인한 후 업데이트하십시오. 한 번에 하나의 마이너 버전만 업그레이드할 수 있습니다.

추가 기능 버전이 최신 버전의 Kubernetes와 호환되는지 확인하려면 다음 명령을 실행합니다.

eksctl utils describe-addon-versions —kubernetes-version 1.33 —name name-of-addon | grep AddonVersion

참고: name-of-addon을 추가 기능 이름으로 바꾸고 1.33을 최신 버전의 Kubernetes로 바꾸십시오.

현재 버전이 출력에 표시되는지 확인합니다.

출력 예시:

"AddonVersions": [
                    "AddonVersion": "v1.12.1-eksbuild.2",
                    "AddonVersion": "v1.11.4-eksbuild.14",
                    "AddonVersion": "v1.11.4-eksbuild.10",
                    "AddonVersion": "v1.11.4-eksbuild.2",
                    "AddonVersion": "v1.11.3-eksbuild.3",
                    "AddonVersion": "v1.11.3-eksbuild.2",

다음과 같은 Amazon EKS 추가 기능을 업데이트해야 할 수 있습니다.

자세한 내용은 AWS 추가 기능을 참조하십시오.

Amazon VPC CNI 플러그 인

클러스터와 호환되는 Amazon VPC CNI 버전을 확인하십시오.

그 후 다음 옵션 중 하나를 선택하여 추가 기능을 업데이트합니다.

kube-proxy

클러스터와 호환되는 kube-proxy 버전을 확인하십시오.

그 후 다음 옵션 중 하나를 선택하여 추가 기능을 업데이트합니다.

CoreDNS

클러스터와 호환되는 CoreDNS 버전을 확인하십시오.

그 후 다음 옵션 중 하나를 선택하여 추가 기능을 업데이트합니다.

Amazon EBS 및 Amazon EFS CSI 드라이버

Amazon EBS CSI 드라이버 또는 Amazon EFS CSI 드라이버를 업데이트하려면 Amazon EKS 추가 기능 업데이트를 참조하십시오.

AWS Load Balancer Controller 업데이트

AWS Load Balancer Controller와 Kubernetes 버전 호환성은 GitHub 웹 사이트에서 지원되는 Kubernetes 버전을 참조하십시오. AWS Load Balancer Controller 버전 2.5.0 이상에는 Kubernetes 버전 1.22 이상이 필요합니다. 자세한 내용은 GitHub 웹 사이트에서 aws-load-balancer-controller 릴리스를 참조하십시오. AWS Load Balancer Controller를 설치하려면 컨트롤러 설치를 참조하십시오.

AWS 공식업데이트됨 일 년 전