728x90
EKS를 구축하는데 있어 콘솔을 사용하거나 ekscli의 기본적인 옵션을 사용하는 Case가 대다수인것 같다. 물론 콘솔로 생성하게 Config하는것도 좋은방법이긴 하나, YAML로 IaC를 해놓으면 실수할 염려도 적고 인적종속성도 탈피된다.
EKS를 Private Subnet에 YAML로 구축하면서 얻은 몇가지 노하우를 공유코자 한다.
EKS ControlPlane과 WorkerNode를 Private 네트워크에 구축하고 싶다면 다음의 필수요소가 있다.
1. 해당 Subnet은 Private Subnet이어야 한다 : 당연한 내용으로 보이지만 많이 실수하는 부분이다. Private Subnet이 아니면 YAML에 WorkerNode를 Private으로 정의해도 Public으로 물고옴
- PrivateSubnet에 InternetGW가 연결되면 안됨(IGW가 있을경우 PublicNetwork로 간주)
- PrivateSubnet에 Outbount는 통신할 수 있게 NatGW는 연결필요(EKS Node 컴포넌트를 온라인으로 Download 필요한듯)
2. YAML에 다음 Metadata를 추가하자.
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: test1-docker
region: ap-northeast-2
version: "1.21"
vpc:
subnets:
private:
ap-northeast-2a: { id: subnet-################ }
ap-northeast-2b: { id: subnet-################ }
ap-northeast-2c: { id: subnet-################ }
public:
ap-northeast-2a: { id: subnet-################ }
ap-northeast-2b: { id: subnet-################ }
ap-northeast-2c: { id: subnet-################ }
clusterEndpoints:
publicAccess: false #여기!
privateAccess: true #여기!
managedNodeGroups:
- name: ng-1-workers
labels: { role: workers }
instanceType: t3.medium
desiredCapacity: 2
minSize: 2
maxSize: 4
privateNetworking: true #여기!
iam:
withAddonPolicies:
ImageBuilder: true
albIngress: true
cloudWatch: true
autoScaler: true
ssh:
publicKeyName: ####
3. 이제 ekscli를 사용해서 구축하자
$ eksctl create cluster -f cluster.yaml
$ aws eks update-kubeconfig --name test1-docker
$ eksctl create nodegroup -f cluster.yaml
'IaaS > 퍼블릭클라우드' 카테고리의 다른 글
(AWS) EKS에서 ALB를 생성할 때 유의할점 (0) | 2022.03.18 |
---|---|
(AWS) SSM 에 대해서 (0) | 2022.03.18 |
(AWS) Tag를 어떻게 관리해야할까 (0) | 2022.03.17 |
(AWS) AWS리소스에 ElasticSearch를 적용하는 UseCases (0) | 2022.03.17 |
(AWS) X-Ray에 대해서 (0) | 2022.03.17 |