AWS를 처음 접하는 분들은 콘솔로 작업을 많이 할 것이다.
AWS에서는 eksctl이나 cloudformation 기반 방법을 주로 설명하고있으나, 필요한 설정, 역할에대한 이해를 위해 직접 콘솔에서 하나하나 만들어가며 구축해보기로 했었고, 예전에 따로 정리한 내용을 바탕으로 글을 작성한다.
이 글은 콘솔 구축에 익숙한 분들, EKS 구축에 필요한 요소들에대한 파악 목적인 분들을 위해 작성한다.
1. 아키텍처
EKS에서는 아래 세 가지 클러스터 네트워크 유형을 지원한다.
Public and private subnets
- 퍼블릭 서브넷에 LB를 배치하고 프라이빗 서브넷에 node들을 배치
- 2개 이상의 가용영역 필요
- 퍼블릭 서브넷 2개, 프라이빗 서브넷 2개 이상 필요
Only public subnets
- 퍼블릭 서브넷에 LB와 node들을 배치
- 3개 이상의 가용영역과 가용영역마다 1개 이상의 퍼블릭 서브넷 필요 (최소 3개의 퍼블릭 서브넷)
Only private subnets
- 프라이빗 서브넷에 LB와 node들을 배치
- 3개 이상의 가용영역과 가용영역마다 1개 이상의 프라이빗 서브넷 필요 (최소 3개의 프라이빗 서브넷)
구축하고자 하는 환경에 맞게 선택하면되며,
이번 구성은 Public and private subnets (public subnet 2개, private subnet 2개)로 진행한다. 그 이유는 Pod가 생성 될 각 Worker 노드들은 외부로부터 접근이 어려운 private에 존재해야하며, 구현된 서비스에 접근할 수 있도록 public에 ALB (ingress)가 존재해야하기 때문이다.
이 때, 각 public과 private subnet은 다른 가용영역 (ap-northeast-2a, ap-northeast-2c)에 생성한다.
EKS cluster node와 ALB의 고가용성을 고려하기 때문이라고 생각된다. (ALB는 생성시 고가용성을 위해 두개의 가용영역을 요구함)
2. 네트워크 고려사항
2.1 VPC 고려사항
EKS cluster가 생성될 VPC에 아래 두가지 기능이 VPC에서 활성화 되어있어야 함
- DNS Resolution -> Enable
- DNS Hostnames -> Enable
2.2 DHCP 설정 확인
2.3 subnet 설정
- EKS cluster를 구성할 Public 서브넷: public ip 자동 할당 설정 활성화
- 태그 설정 (쿠버네티스가 지정한 서브넷만 사용하도록 태그 지정해줘야 함)
- public subnet
- key: kubernetes.io/role/elb
- value: 1 - private subnet
- key: kubernetes.io/role/internal-elb
- value: 1 - EKS 1.18 version 까지는 각 서브넷에 다음 태그도 추가해야한다.(EKS 1.19 version 부터는 입력하지 않아도 됨)
- key: kubernetes.io/cluster/<cluster_name>
- value: shared
- public subnet
2.4 라우팅 테이블 확인
Private subnet이 연결된 Route Table에는 EKS worker node가 외부에 요청하기 위해 NAT Gateway 연결이 필요하다. 만일, NAT를 사용하지 않는 private cluster를 생성하고자 한다면 VPC Endpoint (VPCE) 생성 및 보안그룹 설정이 필요하다. VPCE는 AWS 서비스에대한 요청을 인터넷 대신 AWS 프라이빗 망으로 처리하는 것으로, 이 글에서는 다루지않는다.
프라이빗 생성시 다음 url을 참고하여 vpce 생성과 보안 그룹을 설정하면 된다. (https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/private-clusters.html#vpc-endpoints-private-clusters)
다음 포스팅에서는 EKS cluster 생성을 다루겠다.
[참고]
https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/network_reqs.html
https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/cluster-endpoint.html
'AWS > EKS' 카테고리의 다른 글
[AWS/EKS] Container Insights와 Fluent-bit로 EKS 모니터링, 로그 수집 하기 (0) | 2022.04.26 |
---|---|
[AWS/EKS] AWS IAM 사용자에 대한 RBAC (Role-based Access Control) 설정하기 (0) | 2022.04.11 |
[AWS/EKS] 콘솔로 생성하는 EKS - ④ ingress로 서비스 외부 노출 시키기 (AWS LoadBalancer Controller 설치) (0) | 2022.03.17 |
[AWS/EKS] 콘솔로 생성하는 EKS - ③ 노드 그룹 생성 (0) | 2022.01.17 |
[AWS/EKS] 콘솔로 생성하는 EKS - ② EKS Cluster 생성, OIDC 구성 (0) | 2022.01.10 |
댓글