Kubernetes

AWS EKS 클러스터 버전 업그레이드

DevelopC 2023. 3. 9. 19:51
728x90

AWS EKS 클러스터 버전 업그레이드

AWS EKS 클러스터 버전 업그레이드 방법을 설명합니다. AWS는 일반적으로 Kubernetes 버전을 출시한 후 14개월 동안 해당 버전에 대한 지원을 보장합니다. EOS가 지나면 자동으로 업그레이드를 진행하고, 자동으로 진행 시 kubernetes로 운영 중인 애플리케이션에 장애가 발생할 수 있으므로 EOS가 되기 전에 업그레이드를 진행해야 합니다.

 

AWS EKS 클러스터 버전 업그레이드 방법에는 크게 두 가지 방법이 있습니다.

1. 현재 사용 중인 클러스터의 버전을 업그레이드하는 방법

현재 사용 중인 클러스터를 버전업그레이드하는 방법이 가장 깔끔하지만 업그레이드 도중 애플리케이션에 장애가 발생할 수 있고, 업그레이드 중 문제가 생기면 운영 중인 애플리케이션에도 문제가 발생할 수 있습니다.

 

2. 새로운 버전의 클러스터를 생성하여 애플리케이션을 옮기는 방법

새로운 클러스터를 만들고 애플리케이션을 배포하여, 문제가 없는지 확인 후 옮기는 방법입니다. 애플리케이션의 안정성을 위하여 저는 이 방법을 추천합니다.

 

AWS EKS 클러스터 버전 업그레이드를 하게 되면, kubernetes api버전 및 스펙을 변경해야 되고, kubernetes 운영시 꼭 필요한 addon의 버전 업그레이드도 진행해야 하므로, 안전한 클러스터 업그레이드를 위해 새로운 버전의 클러스터를 생성하여 애플리케이션을 옮기는 방법을 추천합니다.

EKS 클러스터 버전 업그레이드 순서

참고로 terraform을 사용해서 진행하였으며, 업그레이드 진행 순서만 작성하도록 하겠습니다.

 

1. VPC CNI 업그레이드

eks managed addon을 사용하여 VPC CNI를 설치하였고, 아래의 명령어를 통해 업그레이드 가능한 최신버전을 확인하여 업그레이드하였습니다. VPC CNI는 업그레이드 진행 시 버전 한 개씩 단계적으로 진행해야 합니다.

$ aws eks describe-addon-versions --kubernetes-version 1.25 --addon-name vpc-cni

2. Kubernetes version 업그레이드

 

3. EKS Nodegroup AMI 교체

kubernetes와 마이너 버전이 동일한 AMI로 업그레이드해야 합니다.

 

4. kube-proxy 버전 업그레이드

eks managed addon을 사용하여 kube-proxy를 설치하였고, 아래의 명령어를 통해 업그레이드 가능한 최신버전을 확인하여 업그레이드하였습니다.

$ aws eks describe-addon-versions --kubernetes-version 1.25 --addon-name kube-proxy

5. CoreDNS 버전 업그레이드

eks managed addon을 사용하여 CoreDNS를 설치하였고, 아래의 명령어를 통해 업그레이드 가능한 최신버전을 확인하여 업그레이드하였습니다.

$ aws eks describe-addon-versions --kubernetes-version 1.25 --addon-name coredns

6. cluster-autoscaler 버전 업그레이드

cluster-autoscaler 버전은 kubernetes 마이너버전까지 일치하게 사용합니다.  kubernetes 버전이 1.25이므로, cluster-autoscaler도 1.25.0으로 업그레이드하였습니다.

 

7. metrics-server 버전 업그레이드

metrics-server는 최신버전으로 업그레이드하였습니다.

 

8. kube-state-metrics 버전 업그레이드

kube-state-metrics 버전도 kubernetes버전에 맞게 설치해야 하므로, v2.7.0으로 업그레이드하였습니다.

 

1번부터 3번까지는 한 단계씩 진행해야 하고, 4~8번까지는 한 번에 진행하셔도 됩니다. terraform을 사용하신다면 terraform apply명령어를 총 4번 이상 사용하셔야 합니다. 

728x90