AWS 서밋
쿠버네티스의 단점 = 잦은 업그레이드 필요
EKS를 업그레이드 시 무중단으로 작업하기 위해 알아야 할 기술
개발자, 인프라 담당자가 봐야 할 내용
1
이제는 Analytics 등에도 EKS를 사용한다.
1
클러스터 관리 어렵다
Add-on이 필수적인데 버전별로 디펜던시가 있다.
팀관리 - 개발팀과 플랫폼 팀과의 R&R 정리
Configuration 관리가 필요하다.
2
많은 도구를 사용한다.
빌드 도구
배포 도구 - ArgoCD
코드로 관리하는 툴 - 테라폼 등
GITOPS로 모두 해결했다.
1
클러스터 관리 어려움 해결법?
새로운 워크로드 필요하다.
EKS blueprints를 사용하기를 권고한다.
CDK나 테라폼으로 만들어져 있다.
멀티 클러스터는 중앙에 아르고 CD로 구축
2
Add-ons 관리?
GITOPS로 관리하자.
Configureation 파일은 Git에 올리고, 배포는 Argo CD가 담당한다.
Argo CD의 Application SET 기능을 사용하면, 멀티 클러스터 환경을 통일성 있게 관리가 가능하다.
3
팀관리?
팀 간의 R&R을 Git중심으로 관리하자.
4
Configureation 관리?
Git으로 저장
아르고 CD로 배포
AWS로 마이그레이션 진행 중이다.
1
회사 서비스 소개?
GS25 운영
우리 동네 GS
GS SHOP = 홈쇼핑 운영 중
2
컨테이너 기반, 쿠버네티스 기반으로 변화.
장애 시 모든 서비스가 문제가 됨.
장애 영향도를 최소화하기 위해 클러스터를 각각 구성함.
3
클러스터가 많아짐.
4
인프라에 대한 도전 4가지?
멀티 클러스터 관리 어려움
팀 별 CI/CD 가 다르다 보니 어려움
쿠버네티스 이해도 부족이 힘듦. 개발만 하고 싶다. 외주 인력 기반 프로젝트.
관리 파일들이 많아져 어려움.
1
잦은 업그레이드 필요
2
새로운 신규로 만드는 Blue-Green 방식의 업그레이드로 진행.
3
Rute53의 CNAME으로 변경.
로드 밸런서 변경 이슈
4
로드 밸런서의 생명주기를 EKS 생명주기에서 독립시킴!!!
5
Active-Active EKS 구조로 운영함.
CLI로 업그레이드함
가중치를 100, 가중치를 0으로 주어 업그레이드함.
EKS 업그레이드 와 작업 시 바로 업그레이드 진행함.
비즈니스 중단 타임 0.
6
상이한 배포 환경 개선?
쿠버네티스 진입 장벽 해소?
배포 템플릿화를 통한 개발 생산성 향상 = 커스텀 배포 API를 만들어 사용함.
7
과거의 CI/CD 파이프라인 구성?
개발자 - Git --- CI/CD (젠킨스 등 사용)------------ 쿠버네티스
문제?
형상관리 안됨, 롤백 안됨.
빌드/배포는 개발팀에서 운영.
클러스터는 인프라가 운영하여 갭 차이 발생함.
팀별로 배포 툴이 다름 (젠킨스 등..)
8
쿠버네티스를 몰라도 배포할 수 있게 하자~
빌드가 배포를 분리하자~
Mainfest 파일을 자동화하자.
깃을 만들고 Mainfest 파일을 관리.
개발자 = 커스텀 배포 API 사용.
인프라는 쿠버네티스 Mainfest 파일을 만들어줌!!!
ArgoCD - 배포
개발자는 개발만 함.
인프라에서 배포함.
템플릿 변환 엔진을 통해 배포함.
9
개선된 내용
개발팀과 인프라팀의 R&R 정리
매니패스트 집중관리로 복잡성 해소
진입 장벽 해소 - 쿠버네티스 잘 몰라도 배포 가능
1
템플릿 변환 엔진을 통해 배포함.
2
점점 늘어나는 매니패스트 Yaml , 리소스가 많아지고 있음.
3
템플릿 관리도구는 일반적으로 Heml이나 Kustomize 사용?
Heml - 가시성 떨어짐.
Kustomize - 공통 영역 재활용. 비공식 영역은 수작업이 필요함.
개선?
자체적으로 만듦.
템플릿 변환 엔진 자체 개발.
감사합니다.