오픈소스 프로젝트로 Amazon EKS 기능 확장하기
오픈소스 프로젝트로 Amazon EKS 기능 확장하기
다음 오픈소스 프로젝트들은 AWS에서 실행되거나 AWS 밖에서 실행되는 Kubernetes 클러스터(Amazon EKS가 관리하는 클러스터 포함)의 기능을 확장해 줍니다.
출처: 문서
본문
EKS에 배포된 소프트웨어 지원
Amazon EKS 문서를 살펴보면 절차와 예시 전반에서 다양한 오픈소스 도구와 소프트웨어에 대한 언급을 만나게 돼요. 여기에는 Kubernetes Metrics Server나 Cert Manager 같은 도구가 포함됩니다.
배포하기로 선택한 타사 또는 오픈소스 소프트웨어는 AWS 지원 계약의 범위 밖에 있다는 점을 기억하세요. Kubernetes를 사용하는 이점 중 하나가 활발한 오픈소스 커뮤니티라는 점을 고려하면, 이런 구성 요소에 적절한 지원 채널을 마련하기 위해 관련 오픈소스 커뮤니티와 프로젝트 유지 관리자에게 직접 문의하는 것을 권장해요. 자세한 내용은 Cloud Native Computing Foundation (CNCF)과 연계된 정식(graduated) 및 인큐베이팅(incubating) 프로젝트를 참고하세요.
Kubernetes 생태계에는 커뮤니티 지원 수준, 응답 시간, 의도된 사용 사례가 각각 다른 수많은 프로젝트와 구성 요소가 있어요. EKS와 함께 이런 기술을 도입할 때는 각 구성 요소의 지원 매트릭스를 반드시 이해하세요.
- AWS는 EKS 컨트롤 플레인에 통합하는 오픈소스 구성 요소를 유지 관리합니다. 여기에는 우리가 배포하는 모든 컨테이너 이미지와 바이너리에 대한 빌드 검증, 취약점 스캔, 검증 테스트, 패치 관리를 포괄하는 종합적인 보안 파이프라인이 포함돼요. 예를 들어 AWS는 Kubernetes API Server를 책임지고 있습니다. Kubernetes API server는 Amazon EKS Service Level Agreement의 적용을 받아요. Amazon Web Services Support Plan을 사용해서 Kubernetes API server 문제를 해결하거나 일반적인 지침을 받을 수 있습니다.
- 각 Amazon EKS Add-on에서 제공되는 지원을 신중하게 검토해야 해요. AWS 애드온(AWS add-ons)은 AWS가 완전히 지원하는 유일한 유형의 Amazon EKS 애드온입니다. AWS Marketplace 애드온은 주로 AWS 파트너가 지원해요. 커뮤니티 애드온은 AWS로부터 기본적인 수명 주기 지원을 받습니다.
- 모든 EKS 애드온은 유형과 무관하게 Marketplace 애드온을 포함해 EKS로부터 기본적인 수명 주기 지원을 받아요. 기본적인 수명 주기 지원에는 애드온 설치와 제거가 포함됩니다. 사용 가능한 Amazon EKS Add-on 유형과 관련 지원 수준에 대한 자세한 내용은 Scope of Support for Amazon EKS add-ons를 참고하세요. AWS가 완전히 지원하는 애드온을 보려면 Amazon Web Services add-ons를 참고하세요.
보안 관행과 지원 경계에 대한 자세한 내용은 Security in Amazon EKS를 참고하세요. Amazon EKS Add-ons를 통해 제공되는 커뮤니티 및 AWS marketplace 애드온에 대한 자세한 내용은 EKS Add-ons Support를 참고하세요.
관리 도구 (Management tools)
Amazon EKS 및 Kubernetes 클러스터와 관련된 관리 도구입니다.
- eksctl — Amazon EKS에서 클러스터를 생성하기 위한 간단한 CLI 도구예요. (프로젝트 URL, 프로젝트 문서, AWS 오픈소스 블로그)
- AWS Controllers for Kubernetes — Kubernetes 클러스터에서 직접 AWS 리소스를 생성하고 관리할 수 있게 해 줍니다. (EKS Capabilities에서 사용 가능) (프로젝트 URL, AWS 오픈소스 블로그)
- kro (Kube Resource Orchestrator) — 여러 리소스를 더 높은 수준의 추상화로 구성하는 사용자 정의 Kubernetes API를 만들 수 있게 해 줍니다. 플랫폼 팀은 가드레일(guardrail)이 있는 재사용 가능한 패턴을 정의하고, 애플리케이션 팀은 간단한 고수준 API를 사용해서 리소스를 프로비저닝하고 관리할 수 있어요. (EKS Capabilities에서 사용 가능) (프로젝트 URL, 프로젝트 문서)
- Argo CD — Kubernetes용 선언형(declarative), GitOps 지속적 전달 도구예요. Git 저장소를 지속적으로 모니터링하고 변경 사항을 클러스터에 자동으로 동기화합니다. (EKS Capabilities에서 사용 가능) (프로젝트 URL, 프로젝트 문서)
- Flux CD — Git을 사용해서 클러스터 구성을 관리하는 도구예요. 클러스터 안의 operator를 사용해서 Kubernetes 내부에서 배포를 트리거합니다. operator에 대한 자세한 내용은 GitHub의 OperatorHub.io를 참고하세요. (프로젝트 URL, 프로젝트 문서)
- CDK for Kubernetes (cdk8s) — 익숙한 프로그래밍 언어로 Kubernetes 앱과 구성 요소를 정의할 수 있게 해 줍니다. cdk8s 앱은 표준 Kubernetes 매니페스트로 합성(synthesize)되며, 어떤 Kubernetes 클러스터에도 적용할 수 있어요. (프로젝트 URL, 프로젝트 문서, AWS 컨테이너 블로그)
네트워킹 (Networking)
Amazon EKS 및 Kubernetes 클러스터와 관련된 네트워킹 프로젝트입니다.
- Amazon VPC CNI plugin for Kubernetes — Amazon EKS는 Amazon VPC CNI plugin for Kubernetes를 통해 기본 VPC 네트워킹을 지원해요. 이 플러그인은 VPC에 있는 IP 주소를 각 Pod에 할당합니다. (프로젝트 URL, 프로젝트 문서)
- AWS Load Balancer Controller for Kubernetes — Kubernetes 클러스터의 AWS Elastic Load Balancers를 관리하는 데 도움을 줍니다. AWS Application Load Balancers를 프로비저닝해서 Kubernetes Ingress 리소스를 충족시키고, AWS Network Load Balancers를 프로비저닝해서 Kubernetes service 리소스를 충족시켜요. (프로젝트 URL, 프로젝트 문서)
- ExternalDNS — 노출된 Kubernetes 서비스와 인그레스를 Amazon Route 53, AWS Service Discovery 등을 포함한 DNS 프로바이더와 동기화합니다. (프로젝트 URL, 프로젝트 문서)
머신러닝 (Machine learning)
Amazon EKS 및 Kubernetes 클러스터와 관련된 머신러닝 프로젝트입니다.
- Kubeflow — Kubernetes용 머신러닝 툴킷이에요. (프로젝트 URL, 프로젝트 문서, AWS 오픈소스 블로그)
오토 스케일링 (Auto Scaling)
Amazon EKS 및 Kubernetes 클러스터와 관련된 오토 스케일링 프로젝트입니다.
- Cluster Autoscaler — CPU 및 메모리 압력에 따라 Kubernetes 클러스터의 크기를 자동으로 조정하는 도구예요. (프로젝트 URL, 프로젝트 문서, Amazon EKS 워크숍)
- Karpenter — 유연성, 성능, 단순함을 위해 설계된 Kubernetes Node Autoscaler예요. (프로젝트 URL, 프로젝트 문서, Amazon EKS 워크숍)
- Escalator — Kubernetes용 배치(batch) 또는 작업(job)에 최적화된 수평 자동 확장기예요. (프로젝트 URL, 프로젝트 문서)
모니터링 (Monitoring)
Amazon EKS 및 Kubernetes 클러스터와 관련된 모니터링 프로젝트입니다.
- Prometheus — 오픈소스 시스템 모니터링 및 경고 툴킷이에요. (프로젝트 URL, 프로젝트 문서, Amazon EKS 워크숍)
지속적 통합 / 지속적 배포 (CI/CD)
Amazon EKS 및 Kubernetes 클러스터와 관련된 명령형(imperative) CI/CD 프로젝트입니다.