이전 글
[EKS] Amazon EKS - What is conatiner?
[EKS] Amazon EKS - What is Kubernetes?
[EKS] Amazon EKS - Kubernetes Pods, Replica Sets, and Deployments
AWS와 같은 클라우드 서비스는 사용자들을 위해 고가용성과 보안, 스케일링과 관련한 작업들을 대신 처리해준다. EKS도 마찬가지다. EKS는 쿠버네티스의 핵심 중 하나인 `control plane`을 대신 관리해준다.
EKS - Control plane
`control plane`은 `etcd`, `api server` 등 다양한 쿠버네티스의 컴포넌트들을 관리하는 핵심 부분이다. EKS 상에서 이러한 `control plane`은 사용자가 조작 가능한 customer vpc가 아닌 EKS vpc 상에서 동작한다. 따라서 백업, 스케일링, 소프트웨어 패치 등과 같은 부분들은 모두 AWS에서 대신 처리해준다. 따라서 사용자들은 이 `control plane` 부분은 고려하지 않아도 된다.
EKS - Data plane
`control plane`은 `data plane`과 통신한다. EKS 상에서 `data plane`은 사용자의 vpc 안에서 동작하기 때문에 `data plane`이 사용자에게 실질적으로 중요한 부분이라고 할 수 있다. 컴퓨팅 자원이 없다면 컨테이너를 실행할 수 없기 때문에 이 `data plane`의 worker node로 사용할 컴퓨팅 자원이 필요하다. 이를 위한 worker node로는 `EC2 instance`와 `Fargate`를 사용할 수 있다.
EC2 instance
위 그림은 EC2를 이용한 data plane의 구성 중 self-managed node 상황을 나타낸 것이다. `self-managed node` 에서는 EKS에서 사용할 AMI 설정, 이렇게 생성된 노드들에 접근하기 위한 권한 설정, 패치와 업그레이드 스케일링 등과 같이 많은 것들을 고려해야 한다. 이러한 설정들은 `managed node group`을 활용하여 쉽게 관리할 수 있다.
EKS의 `maanged node group`을 사용하여 하나 이상의 node가 포함된 node group을 배포할 수 있다. 여기서 node는 하나 또는 그 이상의 EC2 인스턴스로 구성될 수 있고 `EC2 Auto Scaling group` 내에서 배포된다. 이러한 `maanged node group`은 EKS 클러스터 내 노드의 프로비저닝과 생명주기 관리를 자동화한다. 이를 통해 새로운 AMI로의 rolling update나 쿠버네티스 배포 버전 업데이트와 같은 작업들을 단순화할 수 있게 해준다.
Fargate
`EC2`외에도 `data plane`을 구성하기 위해 `Fargate`를 사용할 수 있다. `Fargate`는 서버리스 컴퓨팅 자원으로, 컨테이너를 위한 인스턴스 관리, 스케일링, 패치 작업을 대신 수행해주며 적정 규모의 온디맨드 컴퓨팅 용량을 제공한다.
Operation EKS
위와 같이 EKS의 control plane이나 data plane은 AWS의 웹페이지 또는 `eksctl`와 같은 cli를 이용하여 쉽게 구성할 수 있다. `eksctl`은 EKS를 위한 cli로, managed node group 생성과 클러스터 생성과 같은 작업들을 cli를 통해 수행할 수 있다. 잃한 방식 이외에도 `terraform`을 활용할 수 있다. `terraform`은 EKS와 관련된 모든 인프라 컴포넌트들을 코드를 통해 관리할 수 있게 해준다.
참고 글
https://www.youtube.com/watch?v=E956xeOt050
https://www.eksworkshop.com/docs/fundamentals/managed-node-groups/
'k8s' 카테고리의 다른 글
[EKS] EKS - Kubernetes Pods, ReplicaSets, and Deployments (0) | 2024.07.05 |
---|---|
[EKS] Amazon EKS - What is Kubernetes? (0) | 2024.07.04 |
[EKS] Amazon EKS - What is container? (0) | 2024.07.03 |
[k8s] Kubernetes Overview (0) | 2024.06.14 |