Ssoon

[1주차] Amazon EKS (Elastic Kubernetes Service) 본문

AWS EKS Workshop Study

[1주차] Amazon EKS (Elastic Kubernetes Service)

구구달스 2023. 4. 24. 20:35
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 클러스터를 더 쉽게 관리할 수 있습니다.
Comments