일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- AI
- kotlin spring
- CKA
- Pinpoint
- Linux
- 정보처리기사 실기
- CKA 기출문제
- Elasticsearch
- 정보처리기사 실기 기출문제
- mysql 튜닝
- 기록으로 실력을 쌓자
- 티스토리챌린지
- APM
- Kubernetes
- PETERICA
- kotlin
- 정보처리기사실기 기출문제
- 코틀린 코루틴의 정석
- kotlin querydsl
- IntelliJ
- CloudWatch
- Java
- 오블완
- minikube
- MySQL
- 공부
- kotlin coroutine
- aws
- AWS EKS
- Spring
- Today
- Total
피터의 개발이야기
[kubernetes] AWS CDK와 CDK8s 활용법, 동영상 시청 정리 본문
ㅁ 들어가며
[kubernetes] cdk8s란 무엇인가요? 글을 작성하고 Amazon EKS를 위한 AWS CDK와 CDK8s 활용법이라는 동영상을 보게 되었다.
동영상을 보고 중요 내용을 정리해 보았다. 참고로 slide share를 통해서 keynote도 함께 볼 수 있다.
ㅁ AWS CDK와 CDK8S 동영상 시청
쿠버네티스 클러스터가 여러 개일 경우, 특히 국제서비스인 경우 리전별로 클러스터를 관리해야한다. 이럴 때 YAML을 복붙하여 일일이 수정해야하는 경우가 발생한다. 이를 해결하는 방법은 helm을 통해 템플릿화 하는 것이지만, 프로그래밍 언어를 이용하여 value.yaml에 해당하는 파라메터도 동적으로 할당이 가능하게 만들 수 있다. 특히, helm도 템플릿을 통해 재사용성을 확보하였지만, 프로그래밍 언어를 통해서도 재사용가능한 부분을 함수화 하고 상속의 계층적 구조로 코딩을 한다면, yaml 작성에 효율성을 높일 수 있다.
ㅁ AWS CDK란?
AWS CDK란 친숙한 개발 언어로 클라우드 인프라를 정의하게 해주는 소프트웨어 개발 프레임워크이다. 이를 통해 IDE의 인텔리 서포트를 받을 수 있고, 동적으로 변수를 할당하여 자원을 조금 더 쉽고 빠르게 자원을 정의할 수 있다.
1. 프로그래밍 언어 CDK를 통해 자원을 코드로 작성한다.
2. CDK CLI를 통해 Cloud Formation형태로 변환한다.
3. Cloud Formation이 실제로 AWS의 자원을 할당한다.
ㅁ CDK-EKS를 함께 사용 시 장점
ㅇ 인프라 자원과 쿠버네티스 자원을 한 번에 관리
ㅇ 조직 내 Best Practice 수립 및 배포
ㄴ 중앙에서 모든 Addon, 클러스터 자원 버전/설정 관리
ㄴ 엄격한 보안 설정 유지
ㅇ GitOps: Git을 통한 버전 관리 및 확장 가능
ㅇ 애플리케이션을 개발하는 것과 동일한 툴을 사용하여 워크플로우를 정의함.
ㄴ 클러스터의 자원을 모두 코드로 작성이 가능하고 그 것들을 CI/CD 파이프라인을 통하여 클러스터에 배포할 수 있다.
ㅁ CDK8s 워크플로우
ㅇ [kubernetes] cdk8s란 무엇인가요? 이전 글에서 살펴보았듯이,
프로그래밍 소스코드 -> CDK8s CLI synthesize -> yaml 생성 -> kubectl apply
ㅁ GitOps란 무엇인가?
ㅇ Git 레포지토리를 어떤 시스템의 원하는 상태(desired state)의 근거(single source of truth)로 사용한다.
ㅇ 모든 의도된 오퍼레이션들은 "Pull Request"를 통해서 코드로 커밋된다.
ㅇ 의도한 상태와 관찰된 상태의 모든 차이점을 자동화된 방법으로 수렴하여 운영한다.
ㅇ 개발자가 친숙한 개발 워크플로를 통해 생산성 향상
ㅇ 깃 저장소에 쿠버네티스 메니피스트의 변경이력을 저장하여 높은 안정성 보장
ㅇ 일관성과 표준화에 도움준다.
ㅇ GitOps를 구성하기 위해서는 기존 인프라스트럭처 플랫폼에서 yaml로 엔지니어링하였지만, cdk8s를 통해 코드로 변경하도록 한다.
ㅁ 요약
ㅇ CDK / CDK8s는 개발자를 yaml 엔지니어링에서 벗어나서 친숙한 프로그래밍 언어를 사용하도록 해준다.
ㅇ CDK / CDK8s는 개발/운영 조직의 모범 사례를 강화하고 쉽게 공유하게 만든다.
ㅇ GitOps는 CI로부터 CD의 운영 고려요소를 분리해주는 최고의 모범사례 중 하나이다.
ㅇ CDK / CDK8s를 적용한 GitOps를 사용하면 인프라를 포함한 애플리케이션의 통합적인 가시성을 확보 할 수 있다.
ㅁ 함께 보면 좋은 사이트
ㅇ cdk8s 팁
'Kubernetes > cdk8s' 카테고리의 다른 글
[kubernetes] CDK8s 다중 클러스터 생성 방법(feat. cdk8s example) (0) | 2024.02.14 |
---|---|
[kubernetes] cdk8s란 무엇인가요? (0) | 2024.02.08 |