티스토리 뷰
AWS에서 제공하는 완전관리형 쿠버네티스 서비스인 EKS는 업데이트 주기가 엄청나게 빠르다.
Amazon EKS Kubernetes 버전에 관한 문서를 읽어보면 다음과 같이 안내한다.
1. EKS 신규 버전 출시는 쿠버네티스 업스트림 릴리즈 주기(4개월)을 따름.
2. 신규 버전 출시 후 14개월은 무료로 표준 지원
3. 표준 지원 종료 후 12개월 추가 지원 (클러스터 당 0.6$/h의 추가 요금 발생)
4. 추가버전 종료까지 업그레이드를 하지 않을경우 가장 마지막 버전으로 강제 업그레이드
5. 평균적으로 업스트림 릴리즈 이후 약 2~6개월 이후 EKS 지원
만약 추가 지원으로 빠진다면, 클러스터 당 한달에 약 60만원(0.6 × 1380 × 24 × 30) 정도의 추가 비용이 발생한다.
그래서 그런지 콘솔에 접속하면 아래 그림과 같이 업데이트하라고 눈에 잘 띄게 안내를 해준다.
업데이트하는 방법은 간단하다.
위 그림에서의 우측 상단 지금 업그레이드 버튼을 누르면 아래와 같은 이미지가 나오고 버전을 고르면 된다.
그리고 주의할 점은 버전 업데이트는 무조건 한단계씩 차근차근 진행해야 한다.
AWS 콘솔에서 업데이트를 진행하게 된다면, 어차피 업데이트 불가 버전은 선택을 못한다.
그리고 EKS 버전 업데이트해야할 때 고려 사항들이 있는데...
1. 버전업에 따른 쿠버네티스 자체의 변경 사항
2. EKS 추가 기능의 호환
3. 서비스가 정말 순단이 안될까?
4. 쿠버네티스 내부적으로 사용하는 패키지들과 관찰 가능성 도구 호환성
이번에 1.26에서 1.30까지 업데이트를 진행했는데, 다행히 위 문제는 하나도 발생하지 않았다.
버전 업데이트는 버전 별로 10분정도 소요됐다.
그리고 패키지와 관찰 가능성 도구 호환도 문제가 없어서 버전 업데이트는 따로 진행하지 않았다.
다만, 추가 기능의 버전은 최신화를 해줬다.
추가기능 업데이트
현재 서비스에서 사용 하고 있는 추가기능은 Amazon VPC CNI, kube-proxy, CoreDNS, Amazon EBS CSI 드라이버이다.
각각의 추가기능들은 업데이트 방식과 호환되는 EKS 최신버전들을 공식 사이트에서 제공해준다.
재밌는 점은 한국어 번역 사이트가 반영이 느려서, 영문 사이트와 최신 버전이 다르게 표기된다.
그렇지만 영문 사이트도 최신버전이 아니다.
AWS 콘솔에서 버전 업데이트 버튼을 눌렀을 때 나오는 버전이 최신버전이니 테라폼으로 관리할 때 참고하면 좋다.
다만, 최신버전이 문서에 반영이 안되어있어서 바로 사용하기 찝찝하다면 문서에 따라 사용하는게 좋다.
정말 문제가 있어서 문서화가 안된 거였는데 최신 버전을 반영했다가 서버가 멈춰버리면 롤백해야하고,
고스란히 내 실수가 되니까 조심해야한다.
업데이트 전
업데이트 후
마치며
Terraform으로 AWS 관리하는 법을 완전히 익히고 나서 위 작업들을 진행했다.
사실 버튼 클릭만으로 진행할 수 있지만, 현재 서비스가 관리되오던 히스토리는 지키고 싶었다.
Terraform에서 차근차근 apply 해가면서 업데이트를 진행했다.
이제 Devops 관리 쪽 굵직한 일은 마무리 된 것 같아서 한번 정리하고 작업을 마무리할 것 같다.
참고 사이트 : https://devocean.sk.com/blog/techBoardDetail.do?ID=166008&boardType=techBlog
'개발 > 인프라' 카테고리의 다른 글
Terraform으로 EKS 배포하기 11. Grafana Loki와 로그 모니터링 (0) | 2024.07.07 |
---|---|
Terraform으로 EKS 배포하기 10. ArgoCD와 GitHub 연동 (1) | 2024.06.10 |
Terraform으로 EKS 배포하기 9. GitOps와 ArgoCD (0) | 2024.06.04 |
Terraform으로 EKS 배포하기 8. 서비스메시와 Istio (0) | 2024.05.28 |
Terraform으로 EKS 배포하기 7. AWS 로드밸런서 컨트롤러 (0) | 2024.05.23 |
- Total
- Today
- Yesterday
- EKS
- terraform
- Spring
- CloudFront
- elasticsearch
- openAI API
- docker
- MySQL
- 람다
- Kotlin
- cache
- 인프런
- java
- AWS
- AWS EC2
- 스프링부트
- lambda
- AOP
- Elastic cloud
- JWT
- serverless
- springboot
- OpenAI
- Log
- ChatGPT
- GIT
- OpenFeign
- awskrug
- S3
- chat GPT
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |