Ssoon
[1주차] Amazon EKS (Elastic Kubernetes Service) 본문
CloudNet@ 팀의 AWS EKS Workshop Study 1주차 정리입니다.
# Amazon EKS User Guide 참고
✅ AWS EKS ?
AWS EKS (Elastic Kubernetes Service) 는 Kubernetes를 쉽게 운영할 수 있도록 관리형 서비스로 제공되는 클라우드 기반 컨테이너 오케스트레이션 플랫폼입니다.
🧿 관리형 Kubernetes 서비스로, Control Plane 또는 Node 를 AWS에서 관리합니다.
✔ 사용자가 직접 Kubernetes 클러스터를 관리할 필요 없이 AWS가 클러스터의 배포, 구성, 업그레이드, 보안 등의 작업을 대신 수행하므로, 사용자는 애플리케이션 개발에 집중할 수 있습니다.
🧿 여러 AWS Availability Zones 에서 Kubernetes Control Plane 을 실행하여 높은 가용성을 제공합니다.
✔ Control Plane은 자동으로 Control Plane 인스턴스의 크기를 조정하고, 문제가 발생한 인스턴스를 교체하며, 자동화된 버전 업데이트 및 패치를 제공합니다.
🧿 다른 AWS 서비스와 쉽게 통합됩니다.
✔ Amazon ECR을 사용하여 컨테이너 이미지를 저장하고 Elastic Load Balancin 을 사용하여 로드 분산을 수행할 수 있습니다. 또한 IAM을 사용하여 인증을 처리하고, VPC를 사용하여 격리를 유지할 수 있습니다.
✅ AWS EKS Cluster
EKS 클러스터는 두 개의 VPC로 구성됩니다.
🧿 AWS 관리 (AWS-managed) VPC
- Kubernetes 제어부를 호스팅하는 VPC입니다. 이 VPC는 고객 계정에 표시되지 않습니다.
🧿 고객 관리 (customer-managed) VPC
- Kubernetes 노드를 호스팅하는 고객 관리 VPC입니다.여기서 컨테이너가 실행되고 클러스터에서 사용하는 로드 밸런서와 같은 다른 customer-managed AWS 인프라가 실행됩니다.이 VPC는 고객 계정에 나타납니다.클러스터를 생성하기 전에 고객 관리 VPC를 생성해야 합니다.
✅ Control Plane
🧿 Amazon EKS 는 각 클러스터에 대해 단일 테넌트 Kubernetes 컨트롤 플레인을 실행합니다.
✔ 단일 테넌트란, 하나의 서비스 또는 애플리케이션에 대해 여러 사용자가 공유하는 것이 아니라, 각 사용자 또는 그룹이 독립적인 환경에서 서비스 또는 애플리케이션을 실행하는 것을 의미합니다.
✔ 즉, 각 EKS 클러스터는 다른 EKS 클러스터와 완전히 분리되어 있으며, 각 사용자 또는 그룹은 자신의 Kubernetes 클러스터를 독립적으로 관리할 수 있습니다.
🧿 최소 2개 이상의 API 서버 인스턴스와 3개의 Availability Zones 에서 실행되는 3개의 etcd 인스턴스로 구성됩니다.
🧿 클러스터 또는 AWS 계정 간에 공유되지 않습니다.
🧿 컨트롤 플레인 구성 요소 간의 트래픽을 단일 클러스터 내로 제한합니다.
✅ Worker-node(Date Plane)
🧿 EKS 클러스터 내에서 애플리케이션을 실행하는 노드
🧿 애플리케이션 실행에 필요한 리소스(예: CPU, 메모리, 디스크 스토리지 등)를 제공하고, 컨테이너화된 애플리케이션을 실행하고 관리합니다.
🧿 각 Worker node는 Kubernetes 런타임(예: Docker)을 포함하고 있으며, 컨테이너화된 애플리케이션을 실행하고 관리하는 데 필요한 모든 구성 요소를 가지고 있습니다.
🧿 컨테이너 네트워크 구성과 관리를 담당하는 Kubernetes CNI(Container Network Interface)를 사용합니다.
✅ EKS work
1️⃣ EKS 클러스터를 생성합니다.
2️⃣ 관리형 또는 자체 관리형 Amazon EC2 노드를 실행하거나 워크로드를 AWS Fargate에 배포합니다.
3️⃣ Kubernetes 도구(예: kubectl)를 구성하여 클러스터와 통신
4️⃣ EKS 클러스터에 워크로드를 배포 및 관리합니다
✅ Deployment options
- Amazon EKS Disto: AWS에서 제공하는 Kubernetes 배포판으로, Kubernetes의 오픈 소스 코드를 기반으로 하며, AWS에서 테스트하고 검증한 Kubernetes 버전을 제공합니다. 사용자는 EKS Distro를 사용하여 Kubernetes 클러스터를 더 쉽게 배포하고, 관리할 수 있습니다.
- Amazon EKS Anywhere: EKS Anywhere는 사용자가 자신의 데이터 센터 또는 엣지 환경에서 Kubernetes 클러스터를 실행할 수 있도록 지원하는 서비스입니다. EKS Anywhere는 EKS와 동일한 Kubernetes API를 사용하며, 사용자는 Kubernetes 클러스터를 쉽게 관리할 수 있습니다.
- Amazon EKS + AWS Outposts: AWS Outposts에서 Kubernetes 클러스터를 실행할 수 있도록 지원하는 서비스입니다. AWS Outposts는 AWS의 인프라와 동일한 하드웨어를 사용하여, 사용자는 자신의 데이터 센터 또는 엣지 환경에서 AWS 서비스를 실행할 수 있습니다.
- Amazon EKS + EC2: EC2 인스턴스에서 Kubernetes 클러스터를 실행할 수 있도록 지원하는 서비스입니다. 사용자는 EC2 인스턴스를 시작하고, Kubernetes 노드를 등록하여 Kubernetes 클러스터를 실행할 수 있습니다.
- Amazon EKS + Fargate: AWS Fargate에서 Kubernetes 클러스터를 실행할 수 있도록 지원하는 서비스입니다. Fargate는 컨테이너를 실행하는 데 필요한 인프라를 자동으로 관리하므로, 사용자는 Kubernetes 클러스터를 더 쉽게 관리할 수 있습니다.
'AWS EKS Workshop Study' 카테고리의 다른 글
[1주차] Amazon EKS 시작하기 - Nodes - Fargate (0) | 2023.04.25 |
---|---|
[1주차] Amazon EKS 시작하기 - Nodes - 자체 관리형 노드 (0) | 2023.04.25 |
[1주차] Amazon EKS 시작하기 - Nodes - 관리형 노드 그룹 (0) | 2023.04.25 |
[1주차] Amazon EKS 시작하기 - Nodes (0) | 2023.04.25 |
[1주차] Amazon EKS 시작하기 - Cluster 생성 (4) | 2023.04.25 |