티스토리 뷰
클라우드 네이티브 형태의 애플리케이션이 늘어나면서,
결국은 수명주기가 짧고 많아진 애플리케이션들을 어떻게 관리할 것인가가 또 하나의 화두가 되었습니다.
베어메탈 서버에서 가상머신으로, 다시 컨테이너 그리고 K8s 로 흘러가면서 모든 관리는 자동화로 진화하고 있습니다.
개발자는 애플리케이션은 상태만을 선언하고,
K8s에서 그 상태를 유지시켜주기 위해 알아서 관리하는 형태도 자동화의 한 형태라고 할 수 있습니다.
EKS에서의 자동화는 API를 연동하거나 스크립트를 통해 구현할 수도 있지만,
단지 K8s에 대한 관리뿐만 아니라 추가적인 생태계에 대한 관리까지 자동화의 범위에 포함시키기 위해
다양한 솔루션들이 함께 사용되고 있습니다.
1. AWS Controller for Kubernetes(ACK)
K8s를 이용하여 native AWS의 서비스를 관리하는 오픈소스 프로젝트입니다.
즉, Cloudformation이나 Terraform과 유사한 IaC 형태의 도구(ACK)를 통해 AWS 인프라를 제어할 수 있습니다.
다만 아직까지 모든 AWS 서비스가 지원되는 것은 아니며 EKS를 포함하여 총 17개의 서비스가 GA되어 있습니다.
결과적으로 관리범위가 컨테이너에서 native AWS 서비스로 확장되는 것입니다.
기본적인 ACK의 동작은 k8s API를 통해 받은 요청을 각 서비스별 Controller를 통해 AWS로 전달하는 방식입니다.
이 때 각 서비스별 Controller는 pod 형태로 동작하며 IRSA를 통한 native AWS 서비스에 대한 권한을 획득해야 합니다.
예를 들어 K8s에는 익숙하지만 AWS에는 익숙하지 않은 사용자라도 kubectl을 이용하여 S3 버킷을 생성할 수 있습니다.
이 경우 yaml을 통해 선언된 요청은 K8s API 서버를 통해 ack-s3-controller에 S3 버킷 생성에 대한 요청을 전달하고,
ack-s3-controller는 IRSA를 통한 권한 획득을 통해 AWS S3 API에 접근하여 버킷을 생성하게 됩니다.
2. Flux
Flux는 CNCF의 프로젝트 중 하나로,
GitOps를 통해 k8s 클러스터에서 애플리케이션 배포 및 관리를 자동화하기 위한 도구입니다.
GitOps는 애플리케이션의 상태 및 구성을 Git에 저장하고, 모든 변경 사항을 추적하고 배포하는 DevOps 방법론으로
일관된 구성 관리를 통해 신뢰성과 일관성을 확보 할 수 있습니다.
Flux는 이러한 Gitops 워크플로우를 간단하게 구현하도록 지원하는 도구입니다.
3. ArgoCD
AcgoCD도 CNCF의 GitOps를 지원도구로, K8s 클러스터 환경에 CD를 위한 도구입니다.
애플리케이션 배포를 Git repo의 변경사항에 따라 배포/업데이트/롤백등을 지원합니다.
4. Crossplane
Crossplane은 CNCF의 인큐베이팅 프로젝트로,
단일 클라우드 환경 뿐만 아니라 멀티클라우드 환경을 위한 제약과 복잡성, 종속성을 해결하기 위해 시작되었습니다.
이를 통해 K8s 클러스터에서 멀티클라우드 및 on-premise 환경에서의 인프라 환경을 관리할 수 있습니다.
-----------------------------------------------------------------------------------------------
이 내용은 AEWS(AWS EKS Workshop Study) 1기의 과제로써 작성되었습니다.
AEWS는 '가시다'님이 속한 CloudNet@에서 진행하는 AWS EKS workshop에 대한 스터디입니다.
매주 일요일마다 소중한 정보를 퍼주시는 '가시다'님께 무한 감사 드립니다.
https://gasidaseo.notion.site/23-AWS-EKS-Workshop-07165aec800042b9ac9357aee18fdf17
'에디.Container' 카테고리의 다른 글
쿠버네티스 어나더 클래스(지상편) Sprint 1 // 1. 컨테이너 한방정리 #1 (0) | 2023.09.23 |
---|---|
AEWS 7주차. EKS Automation - 실습 (0) | 2023.06.05 |
AEWS 6주차. EKS security - 실습 (0) | 2023.06.03 |
AEWS 6주차. EKS Security (0) | 2023.06.03 |
AEWS 5주차. EKS Autoscaling - 실습 (0) | 2023.05.26 |