안녕하세요, heyjee 입니다 .

k8s 를 공부하면서 이런 생각을 해봤습니다 .

'아키텍처가 작으면 괜찮겠지만, 만약 전사적으로 큰 규모의 아키텍처라면 클러스터 및 노드를 포함한 각종 리소스를 일일이 생성하고 관리하기가 매우 까다롭고 번거로울 수 있을 것 같다 .'

그래서 알아보니 AWS 에서 EKS 라는 서비스를 제공한다고 해서 Intro 부터 알아보기로 했습니다 .

 

먼저, EKS 를 다음과 같이 정리할 수 있습니다 .

 EKS = Elastic Kubernetes Service

 > k8s 를 실행하는데 사용할 수 있는 관리형 서비스

 > AWS 의 여러 가용 영역 (Availability Zone) 에 걸쳐 k8s 에서 마스터 노드라 할 수 있는 control plane 을 실행하고 그 크기를 조정해서 높은 가용성을 보장

 > 컨테이너에 삽입되는 이미지에 대해 ECR, ELB, IAM, VPC 기능을 포함한 Application 에 대한 확장성과 보안까지 제공

 

위에서 control plane 이라는 일종의 마스터 노드?같은 이 친구에 대해서 좀 더 알아보면...

 EKS control plane 아키텍처

 > 각 클러스터에 대해 단일 테넌트의 k8s control plane 을 실행

 > control plane 은 2개 이상의 API 서버 인스턴스와 리전 내 3개의 가용 영역에서 실행되는 3개의 etcd 인스턴스로 구성

 > control plane 인프라는 클러스터 또는 AWS 계정간에 공유되지 않음 (각 클러스터마다 독립적)

 > EKS 는 VPC 네트워크 정책을 사용하여 control plane 구성 요소간의 트래픽을 단일 클러스터 내로 제한
 따라서, 클러스터에 대한 control plane 구성 요소는 k8s RBAC (Role Based Access Control) 정책에 따라 권한을 부여받지 않은 경우, 다른 클러스터 또는 다른 AWS 계정의 통신을 보거나 수신 불가 !

 

이러한 특징을 가진 EKS 의 Workflow 는 다음과 같이 총 4단계로 볼 수 있습니다 .

 

EKS Workflow

 1. Provision an EKS cluster : AWS Management Console, CLI, SDK 를 사용하여 EKS 생성
 2. Deploy compute : 관리형 / 자체 관리형 EC2 노드를 실행하거나 워크로드를 Fargate 에 배포
 3. Connect to EKS : 클러스터가 준비되면, 원하는 k8s 도구를 구성해 클러스터와 통신 가능
 4. Run Kubernetes application : EKS 클러스터에 워크로드 배포, 관리

 

다음 2편에서는 실제 AWS 대시보드에서 EKS 클러스터 및 노드를 생성하는 방법을 알아보기로 하겠습니다 .

 

혹시 수정이 되어야 할 부분이 있다면 얼마든지 코멘트 대환영입니다 . 감사합니다 :)

'AWS' 카테고리의 다른 글

2. Create EKS Cluster & Node with AWS Dashboard  (0) 2021.11.27

+ Recent posts