โ๏ธ Amazon EKS ์น ์ ํ๋ฆฌ์ผ์ด์
๊ตฌ์ถํ๊ธฐ
์ํฌ์ต์ ์ค์ตํ ๋ด์ฉ์
๋๋ค.
Amazon EKS ํด๋ฌ์คํฐ๋ ๋ค์ํ ๋ฐฉ์์ผ๋ก ๋ฐฐํฌํ ์ ์๋ค.
eksctl๋ก Cluster ์์ฑํ๊ธฐ
์๋ฌด ์ต์
์์ด eksctl create cluster
์คํํ๋ฉด default parameter๋ก ํด๋ฌ์คํฐ๊ฐ ๋ฐฐํฌ๋๋ค. ๊ทธ๋ฌ๋ yaml
ํ์ผ๋ก ์์ฑํ ๊ตฌ์ฑ ํ์ผ์ ์์ฑํ์ฌ ๋ฐฐํฌํ๋ฉด ๊ตฌ์ฑํ์ผ์ ๋ช
์ํ ์ค๋ธ์ ํธ๋ค์ ๋ฐ๋ผ๋ ์ํ(desired state)๋ฅผ ์ฝ๊ฒ ํ์
ํ๊ณ ๊ด๋ฆฌํ ์ ์๋ ์ด์ ์ด ์๋ค.
1. Cluster ๊ตฌ์ฑํ์ผ ์์ฑ
~/environment/eks-demo-cluster.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
apiVersion : eksctl.io/v1alpha5
kind : ClusterConfig
metadata :
name : eks-demo # ์์ฑํ EKS ํด๋ฌ์คํฐ๋ช
region : ap-northeast-2 # ํด๋ฌ์คํฐ๋ฅผ ์์ฑํ ๋ฆฌ์
version : "1.21"
vpc :
cidr : "192.168.0.0/16" # ํด๋ฌ์คํฐ์์ ์ฌ์ฉํ VPC์ CIDR
managedNodeGroups :
- name : node-group # ํด๋ฌ์คํฐ์ ๋
ธ๋ ๊ทธ๋ฃน๋ช
instanceType : m5.large # ํด๋ฌ์คํฐ ์์ปค ๋
ธ๋์ ์ธ์คํด์ค ํ์
desiredCapacity : 3 # ํด๋ฌ์คํฐ ์์ปค ๋
ธ๋์ ๊ฐฏ์
volumeSize: 10 # ํด๋ฌ์คํฐ ์์ปค ๋
ธ๋์ EBS ์ฉ๋ (๋จ์ : GiB)
iam :
withAddonPolicies :
imageBuilder : true # Amazon ECR์ ๋ํ ๊ถํ ์ถ๊ฐ
# albIngress: true # albIngress์ ๋ํ ๊ถํ ์ถ๊ฐ
cloudWatch : true # cloudWatch์ ๋ํ ๊ถํ ์ถ๊ฐ
autoScaler : true # auto scaling์ ๋ํ ๊ถํ ์ถ๊ฐ
cloudWatch :
clusterLogging :
enableTypes : [ "*" ]
2. ๋ช
๋ น์ด๋ฅผ ํตํด ํด๋ฌ์คํฐ๋ฅผ ๋ฐฐํฌํ๋ค.
1
eksctl create cluster -f eks-demo-cluster.yaml
ํด๋ฌ์คํฐ๊ฐ ์์ ํ ๋ฐฐํฌ๋๋๋ฐ๊น์ง๋ ์ฝ 15~20๋ถ์ด ์์๋๋ค. AWS CloudFormation ์ฝ์์ฐฝ ์์๋ ์งํ์ฌํญ์ ํ์
ํ ์ ์๋ค.
์์ฑํ ํด๋ฌ์คํฐ ์ ๋ณด ํ์ธ
1
2
3
4
5
6
$ AWS_PROFILE = riley-admin eksctl get clusters
2022-05-07 22:52:40 [ โน] eksctl version 0.95.0
2022-05-07 22:52:40 [ โน] using region ap-northeast-2
NAME REGION EKSCTL CREATED
eks-demo ap-northeast-2 True
3. kubectl ์ธ์ฆ ์ ๋ณด ์ค์
์ปจํ
์คํธ ๋ฆฌ์คํธ ์ถ๋ ฅํ๊ธฐ
1
2
3
4
$ kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
* eks-demo-cluster eks-demo.ap-northeast-2.eksctl.io Administrator@eks-demo.ap-northeast-2.eksctl.io
kubectl ์ธ์ฆ์ ๋ณด alias ์ง์
1
2
3
$ kubectx eks-demo-cluster= Administrator@eks-demo.ap-northeast-2.eksctl.io
Context "Administrator@eks-demo.ap-northeast-2.eksctl.io" renamed to "eks-demo-cluster" .
์ปจํ
์คํธ ์ค์์นญ
1
2
3
4
5
# switch context
kubectl config use-context eks-demo-cluster
# kubectx๋ก switch context
kubectx eks-demo-cluster
๋ฐฐํฌ๋ ๋
ธ๋ ํ์ธ
1
2
3
4
5
6
7
8
$ kubectx eks-demo-cluster
Switched to context "eks-demo-cluster" .
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
ip-192-168-22-34.ap-northeast-2.compute.internal Ready <none> 29m v1.21.5-eks-9017834
ip-192-168-58-247.ap-northeast-2.compute.internal Ready <none> 29m v1.21.5-eks-9017834
ip-192-168-81-71.ap-northeast-2.compute.internal Ready <none> 29m v1.21.5-eks-9017834