AEWS 스터디에서는 AWS의 관리형 Kubernetes인 Elastic Kubernetes의 다양한 기능들을 실습해보면서 익혀본다. 이 글은 스터디를 참여하면서 학습한 내용을 정리하는 연재 글이다. 스터디 진도에 맞춰 글을 작성한다.
이전 글 [AEWS] Amzaon EKS 에서 Amazon EKS의 EKS 아키텍처를 알아봤다. Control Plane과 Data Plane에 접근할 수 있는 Endpoint는 어떻게 구성할 수 있을까? 이 글에서는 Amzaon EKS의 Cluster Endpoint구성을 알아본다.
1. EKS Cluster 3가지 네트워크 경로
EKS Cluster가 아니더라도 Kubernetes의 네트워크 경로는 크게 세 가지로 볼 수 있다.
1. Control Plane → Data Plane: Control Plane에서 Data Plane의 kubelet으로 스케줄링 같은 관리 명령 등의 접근
2. Data Plane → Control Plane: Data Plane의 kubelet 이나 kube-proxy가 Control Plane의 API에 접근
3. 관리자 kubectl → (Control Plane) → Data Plane: 관리자가 Data Plane의 Pod를 조회하거나, 생성 등의 접근
2. EKS Cluster Endpoint 구성 방법
2.1. EKS Cluster Endpoint = Public
Control Plane와 Data Plane의 VPC는 모두 Public으로 Internet Gateway를 가지고 있는 구성이다. 1번 흐름만 외부로 엔드포인트가 노출되지 않는다. 2, 3번의 흐름은 외부로 엔드포인트가 노출된다.
1. Control Plane → Data Plane
Control Plane의 API 서버는 EKS owned ENI을 통해 Data Plane의 Kubelet에 접근한다. 이전 글에서 살펴보았듯이 EKS owned ENI는 AWS Managed VPC 내부의 API 서버에서 소유하고 있다.
2. Data Plane → Control Plane
Data Plane의 Customer VPC에서 IGW(Internet gateway)를 통해 인터넷을 통한다. Control Plane에 접근할 때에도 AWS Managed VPC의 IGW를 통해 접근된다.
3. 관리자 kubectl → (Control Plane) → Data Plane
AWS Managed VPC의 IGW를 통해 API 서버에 접근한다. 그 이후는 1번 흐름과 같다.
2.2. EKS Cluster Endpoint = Public & Private
Control Plane의 VPC가 Public으로 Internet Gateway를 가지고 있고, Data Plane의 VPC는 Private인 구성이다. 1, 2번 흐름은 외부로 엔드포인트가 노출되지 않는다. 3번의 흐름은 외부로 엔드포인트가 노출된다.
1. Control Plane → Data Plane
위와 동일하다. 엔드포인트가 노출되지 않는다.
2. Data Plane → Control Plane
IGW(Internet gateway)를 사용하지 않고, EKS owned ENI의 사설 호스팅된 도메인을 통해 Control Plane에 접근한다. 엔드포인트가 노출되지 않는다.
3. 관리자 kubectl → (Control Plane) → Data Plane
위와 동일하다. 엔드포인트가 노출된다.
2.3. EKS Cluster Endpoint = Private
Control Plane과 Data Plane의 VPC 모두 Private인 구성이다. kubectl 또한 EKS owned ENI를 통해 API서버로 접근한다. 1, 2, 3번 흐름 모두 외부로 엔드포인트가 노출되지 않는다. 실제 프로덕션 환경에서 사용하는 환경이다.
1. Control Plane → Data Plane
위와 동일하다. 엔드포인트가 노출되지 않는다.
2. Data Plane → Control Plane
위와 동일하다. IGW(Internet gateway)를 사용하지 않고, EKS owned ENI의 사설 호스팅된 도메인을 통해 Control Plane에 접근한다. 엔드포인트가 노출되지 않는다.
3. 관리자 kubectl → (Control Plane) → Data Plane
Customer VPC 내부에서 kubectl로 접근한다. EKS owned ENI의 사설 호스팅된 도메인을 통해 API서버로 접근한다. 엔드포인트가 노출되지 않는다.
세 가지 Endpoint 구성 방법을 설명했지만, 프로덕션 환경에서는 결국 보안적으로 노출되지 않는 마지막 EKS Cluster Endpoint = Private을 사용해야한다. kubectl은 간단하게는 Cloud 9이나 내부 VPC의 EC2 등에서 접근하게 된다.
'스터디 > Kubernetes' 카테고리의 다른 글
[AWES] EKS Networking - AWS LB Controller, Ingress (0) | 2023.05.07 |
---|---|
[AWES] EKS Networking 특징과 네트워크 흐름 (0) | 2023.05.07 |
[AEWS] Amzaon EKS (0) | 2023.04.30 |
[PKOS] Kubernetes 보안 - kubescape, polaris, RBAC (2/2) (0) | 2023.04.10 |
[PKOS] Kubernetes 보안 - kubescape, polaris, RBAC (1/2) (0) | 2023.04.09 |