eksctl을 통한 EKS 배포 가이드 - v0.105.0 / v1.22
(https://eksctl.io/) ❗만약 yaml로 배포하길 원한다면 여길 또는 밑을 참조
📌QA test Region on (ap-northeast-1 / 도쿄)
https://github.com/sysnet4admin
AWS Cloud Shell에 eksctl 설치
(https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/eksctl.html)
1.eksctl v0.105.0을 내려받고 압축 풀기
[cloudshell-user@ip-10-0-46-136 ~]$ curl --silent --location
"https://github.com/weaveworks/eksctl/releases/download/v0.105.0/eksctl_
Linux_amd64.tar.gz" | tar xz -C /tmp
2.eksctl을 실행 디렉터리로 이동
[cloudshell-user@ip-10-0-46-136 ~]$ mkdir -p $HOME/bin && cp /tmp/eksctl
$HOME/bin/eksctl && export PATH=$PATH:$HOME/bin
3.eksctl 설치 상태 및 버전 체크
[cloudshell-user@ip-10-0-46-136 ~]$ eksctl version
0.105.0
❗만약 최신 버전을 내려 받기 원할 경우 다음의 내용 참조
[cloudshell-user@ip-10-0-46-136 ~]$ curl --silent --location
"https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(
uname -s)_amd64.tar.gz" | tar xz -C /tmp
AWS Cloud Shell에 kubectl 설치
(https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/install-kubectl.html)
1.kubectl binary v.1.22 내려받기
[cloudshell-user@ip-10-0-46-136 ~]$ curl -o kubectl
https://s3.us-west-2.amazonaws.com/amazon-eks/1.22.6/2022-03-09/bin/linu
x/amd64/kubectl
% Total % Received % Xferd Average Speed Time Time Time
Current
Dload Upload Total Spent Left
Speed
100 44.7M 100 44.7M 0 0 17.8M 0 0:00:02 0:00:02 --:--:--
17.8M
2.kubectl binary에 실행권한을 줌
[cloudshell-user@ip-10-0-46-136 ~]$ chmod +x ./kubectl
3.kubectl을 실행 디렉토리 들로 옮김
[cloudshell-user@ip-10-0-46-136 ~]$ mkdir -p $HOME/bin && cp ./kubectl
$HOME/bin/kubectl && export PATH=$PATH:$HOME/bin
4.kubectl 상태 및 버전 확인
[cloudshell-user@ip-10-0-46-136 ~]$ kubectl version
Client Version: version.Info{Major:"1", Minor:"22+",
GitVersion:"v1.22.6-eks-7d68063",
GitCommit:"f24e667e49fb137336f7b064dba897beed639bad",
GitTreeState:"clean", BuildDate:"2022-02-23T19:32:14Z",
GoVersion:"go1.16.12", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"22+",
GitVersion:"v1.22.10-eks-84b4fe6",
GitCommit:"cc6a1b4915a99f49f5510ef0667f94b9ca832a8a",
GitTreeState:"clean", BuildDate:"2022-06-09T18:24:04Z",
GoVersion:"go1.16.15", Compiler:"gc", Platform:"linux/amd64"}
설치된 eksctl을 통해서 EKS 배포
(https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/getting-started-eksctl.html)
1.eksctl create cluster (default: --version=1.22)
[cloudshell-user@ip-10-0-46-136 ~]$ eksctl create cluster --name eks-122
--version1.22
2022-07-15 03:47:19 [ℹ] eksctl version 0.105.0
2022-07-15 03:47:19 [ℹ] using region ap-northeast-1
2022-07-15 03:47:19 [ℹ] setting availability zones to [ap-northeast-1c
ap-northeast-1d ap-northeast-1a]
2022-07-15 03:47:19 [ℹ] subnets for ap-northeast-1c -
public:192.168.0.0/19 private:192.168.96.0/19
2022-07-15 03:47:19 [ℹ] subnets for ap-northeast-1d -
public:192.168.32.0/19 private:192.168.128.0/19
2022-07-15 03:47:19 [ℹ] subnets for ap-northeast-1a -
public:192.168.64.0/19 private:192.168.160.0/19
2022-07-15 03:47:19 [ℹ] nodegroup "ng-d4276147" will use ""
[AmazonLinux2/1.22]
2022-07-15 03:47:19 [ℹ] using Kubernetes version 1.22
2022-07-15 03:47:19 [ℹ] creating EKS cluster "eks-122" in
"ap-northeast-1" region with managed nodes
2022-07-15 03:47:19 [ℹ] will create 2 separate CloudFormation stacks for
cluster itself and the initial managed nodegroup
2022-07-15 03:47:19 [ℹ] if you encounter any issues, check
CloudFormation console or try 'eksctl utils describe-stacks
--region=ap-northeast-1 --cluster=eks-122'
2022-07-15 03:47:19 [ℹ] Kubernetes API endpoint access will use default
of {publicAccess=true, privateAccess=false} for cluster "eks-122" in
"ap-northeast-1"
2022-07-15 03:47:19 [ℹ] CloudWatch logging will not be enabled for
cluster "eks-122" in "ap-northeast-1"
2022-07-15 03:47:19 [ℹ] you can enable it with 'eksctl utils
update-cluster-logging --enable-types={SPECIFY-YOUR-LOG-TYPES-HERE (e.g.
all)} --region=ap-northeast-1 --cluster=eks-122'
2022-07-15 03:47:19 [ℹ]
2 sequential tasks: { create cluster control plane "eks-122",
2 sequential sub-tasks: {
wait for control plane to become ready,
create managed nodegroup "ng-d4276147",
}
}
2022-07-15 03:47:19 [ℹ] building cluster stack "eksctl-eks-122-cluster"
2022-07-15 03:47:19 [ℹ] deploying stack "eksctl-eks-122-cluster"
2022-07-15 03:47:49 [ℹ] waiting for CloudFormation stack
"eksctl-eks-122-cluster"
2022-07-15 03:48:19 [ℹ] waiting for CloudFormation stack
"eksctl-eks-122-cluster"
2022-07-15 03:49:20 [ℹ] waiting for CloudFormation stack
"eksctl-eks-122-cluster"
2022-07-15 03:50:20 [ℹ] waiting for CloudFormation stack
"eksctl-eks-122-cluster"
2022-07-15 03:51:20 [ℹ] waiting for CloudFormation stack
"eksctl-eks-122-cluster"
2022-07-15 03:52:20 [ℹ] waiting for CloudFormation stack
"eksctl-eks-122-cluster"
2022-07-15 03:53:20 [ℹ] waiting for CloudFormation stack
"eksctl-eks-122-cluster"
2022-07-15 03:54:20 [ℹ] waiting for CloudFormation stack
"eksctl-eks-122-cluster"
2022-07-15 03:55:20 [ℹ] waiting for CloudFormation stack
"eksctl-eks-122-cluster"
2022-07-15 03:56:20 [ℹ] waiting for CloudFormation stack
"eksctl-eks-122-cluster"
2022-07-15 03:57:20 [ℹ] waiting for CloudFormation stack
"eksctl-eks-122-cluster"
2022-07-15 03:58:20 [ℹ] waiting for CloudFormation stack
"eksctl-eks-122-cluster"
2022-07-15 04:00:21 [ℹ] building managed nodegroup stack
"eksctl-eks-122-nodegroup-ng-d4276147"
2022-07-15 04:00:21 [ℹ] deploying stack
"eksctl-eks-122-nodegroup-ng-d4276147"
2022-07-15 04:00:21 [ℹ] waiting for CloudFormation stack
"eksctl-eks-122-nodegroup-ng-d4276147"
2022-07-15 04:00:52 [ℹ] waiting for CloudFormation stack
"eksctl-eks-122-nodegroup-ng-d4276147"
2022-07-15 04:01:24 [ℹ] waiting for CloudFormation stack
"eksctl-eks-122-nodegroup-ng-d4276147"
2022-07-15 04:03:07 [ℹ] waiting for CloudFormation stack
"eksctl-eks-122-nodegroup-ng-d4276147"
2022-07-15 04:04:51 [ℹ] waiting for CloudFormation stack
"eksctl-eks-122-nodegroup-ng-d4276147"
2022-07-15 04:04:51 [ℹ] waiting for the control plane availability...
2022-07-15 04:04:52 [✔] saved kubeconfig as
"/home/cloudshell-user/.kube/config"
2022-07-15 04:04:52 [ℹ] no tasks
2022-07-15 04:04:52 [✔] all EKS cluster resources for "eks-122" have
been created
2022-07-15 04:04:52 [ℹ] nodegroup "ng-d4276147" has 2 node(s)
2022-07-15 04:04:52 [ℹ] node
"ip-192-168-17-228.ap-northeast-1.compute.internal" is ready
2022-07-15 04:04:52 [ℹ] node
"ip-192-168-47-97.ap-northeast-1.compute.internal" is ready
2022-07-15 04:04:52 [ℹ] waiting for at least 2 node(s) to become ready
in "ng-d4276147"
2022-07-15 04:04:52 [ℹ] nodegroup "ng-d4276147" has 2 node(s)
2022-07-15 04:04:52 [ℹ] node
"ip-192-168-17-228.ap-northeast-1.compute.internal" is ready
2022-07-15 04:04:52 [ℹ] node
"ip-192-168-47-97.ap-northeast-1.compute.internal" is ready
2022-07-15 04:04:53 [ℹ] kubectl command should work with
"/home/cloudshell-user/.kube/config", try 'kubectl get nodes'
2022-07-15 04:04:53 [✔] EKS cluster "eks-122" in "ap-northeast-1"
region is ready
2.배포된 EKS 클러스터 확인
[cloudshell-user@ip-10-0-146-72 ~]$ kubectl get nodes
NAME STATUS ROLES
AGE VERSION
ip-192-168-26-17.ap-northeast-1.compute.internal Ready <none>
47m v1.22.9-eks-810597c
ip-192-168-59-253.ap-northeast-1.compute.internal Ready <none>
47m v1.22.9-eks-810597c
3.배포된 EKS를 AWS GUI에서 확인
❗만약 kubectl이 설치되지 않은 상태로 배포한다면 error 발생
[cloudshell-user@ip-10-0-46-136 ~]$ eksctl create cluster
2022-07-15 01:07:00 [ℹ] eksctl version 0.105.0
2022-07-15 01:07:00 [ℹ] using region ap-northeast-1
2022-07-15 01:07:00 [ℹ] setting availability zones to [ap-northeast-1c
ap-northeast-1a ap-northeast-1d]
2022-07-15 01:07:00 [ℹ] subnets for ap-northeast-1c -
public:192.168.0.0/19 private:192.168.96.0/19
2022-07-15 01:07:00 [ℹ] subnets for ap-northeast-1a -
public:192.168.32.0/19 private:192.168.128.0/19
2022-07-15 01:07:00 [ℹ] subnets for ap-northeast-1d -
public:192.168.64.0/19 private:192.168.160.0/19
2022-07-15 01:07:00 [ℹ] nodegroup "ng-b6218207" will use ""
[AmazonLinux2/1.22]
2022-07-15 01:07:00 [ℹ] using Kubernetes version 1.22
2022-07-15 01:07:00 [ℹ] creating EKS cluster
"extravagant-unicorn-1657847220" in "ap-northeast-1" region with managed
nodes
<snipped>
2022-07-15 01:23:41 [ℹ] node
"ip-192-168-82-13.ap-northeast-1.compute.internal" is ready
2022-07-15 01:23:41 [✖] kubectl not found, v1.10.0 or newer is
required
2022-07-15 01:23:41 [ℹ] cluster should be functional despite missing (or
misconfigured) client binaries
2022-07-15 01:23:41 [✔] EKS cluster "extravagant-unicorn-1657847220"
in "ap-northeast-1" region is ready
설치된 EKS 클러스터 삭제하기
1.설치된 EKS cluster 확인
[cloudshell-user@ip-10-0-146-72 ~]$ eksctl get cluster
NAME REGION EKSCTL CREATED
eks-122 ap-northeast-1 True
❗만약 이름을 지정하지 않았다면?
[cloudshell-user@ip-10-0-46-136 ~]$ eksctl get cluster
NAME REGION EKSCTL CREATED
extravagant-unicorn-1657847220 ap-northeast-1 True
2.eksctl delete cluster
[cloudshell-user@ip-10-0-146-72 ~]$ eksctl delete cluster --name eks-122
2022-07-15 03:23:52 [ℹ] deleting EKS cluster "eks-122"
2022-07-15 03:23:52 [ℹ] will drain 0 unmanaged nodegroup(s) in cluster
"eks-122"
2022-07-15 03:23:52 [ℹ] starting parallel draining, max in-flight of 1
2022-07-15 03:23:52 [ℹ] deleted 0 Fargate profile(s)
2022-07-15 03:23:52 [✔] kubeconfig has been updated
2022-07-15 03:23:52 [ℹ] cleaning up AWS load balancers created by
Kubernetes objects of Kind Service or Ingress
2022-07-15 03:23:54 [ℹ]
2 sequential tasks: { delete nodegroup "ng-711dbf40", delete cluster
control plane "eks-122" [async]
}
2022-07-15 03:23:54 [ℹ] will delete stack
"eksctl-eks-122-nodegroup-ng-711dbf40"
2022-07-15 03:23:54 [ℹ] waiting for stack
"eksctl-eks-122-nodegroup-ng-711dbf40" to get deleted
2022-07-15 03:23:54 [ℹ] waiting for CloudFormation stack
"eksctl-eks-122-nodegroup-ng-711dbf40"
2022-07-15 03:24:24 [ℹ] waiting for CloudFormation stack
"eksctl-eks-122-nodegroup-ng-711dbf40"
2022-07-15 03:25:15 [ℹ] waiting for CloudFormation stack
"eksctl-eks-122-nodegroup-ng-711dbf40"
2022-07-15 03:26:06 [ℹ] waiting for CloudFormation stack
"eksctl-eks-122-nodegroup-ng-711dbf40"
2022-07-15 03:28:03 [ℹ] waiting for CloudFormation stack
"eksctl-eks-122-nodegroup-ng-711dbf40"
2022-07-15 03:28:57 [ℹ] waiting for CloudFormation stack
"eksctl-eks-122-nodegroup-ng-711dbf40"
2022-07-15 03:30:32 [ℹ] waiting for CloudFormation stack
"eksctl-eks-122-nodegroup-ng-711dbf40"
2022-07-15 03:31:25 [ℹ] waiting for CloudFormation stack
"eksctl-eks-122-nodegroup-ng-711dbf40"
2022-07-15 03:31:25 [ℹ] will delete stack "eksctl-eks-122-cluster"
2022-07-15 03:31:25 [✔] all cluster resources were deleted
3.삭제된 EKS를 AWS GUI에서 확인
부록1 yaml로 EKS 배포하기
1.yaml 예제 파일 내려받기
[cloudshell-user@ip-10-0-146-72 ~]$ curl
https://raw.githubusercontent.com/weaveworks/eksctl/main/examples/03-two
-nodegroups.yaml -o /tmp/03-two-nodegroups.yaml
% Total % Received % Xferd Average Speed Time Time Time
Current
Dload Upload Total Spent Left
Speed
100 391 100 391 0 0 987 0 --:--:-- --:--:-- --:--:--
987
2.eksctl create cluster -f <yaml>
[cloudshell-user@ip-10-0-146-72 ~]$ eksctl create cluster -f
/tmp/03-two-nodegroups.yaml
2022-07-15 07:03:56 [ℹ] eksctl version 0.105.0
2022-07-15 07:03:56 [ℹ] using region eu-north-1
2022-07-15 07:03:57 [ℹ] setting availability zones to [eu-north-1a
eu-north-1b eu-north-1c]
2022-07-15 07:03:57 [ℹ] subnets for eu-north-1a - public:192.168.0.0/19
private:192.168.96.0/19
2022-07-15 07:03:57 [ℹ] subnets for eu-north-1b - public:192.168.32.0/19
private:192.168.128.0/19
2022-07-15 07:03:57 [ℹ] subnets for eu-north-1c - public:192.168.64.0/19
private:192.168.160.0/19
2022-07-15 07:03:58 [ℹ] nodegroup "ng1-public" will use
"ami-05f51b54cf23c7116" [AmazonLinux2/1.22]
2022-07-15 07:03:58 [ℹ] nodegroup "ng2-private" will use
"ami-05f51b54cf23c7116" [AmazonLinux2/1.22]
2022-07-15 07:03:59 [ℹ] using Kubernetes version 1.22
2022-07-15 07:03:59 [ℹ] creating EKS cluster "cluster-3" in "eu-north-1"
region with un-managed nodes
2022-07-15 07:03:59 [ℹ] 2 nodegroups (ng1-public, ng2-private) were
included (based on the include/exclude rules)
2022-07-15 07:03:59 [ℹ] will create a CloudFormation stack for cluster
itself and 2 nodegroup stack(s)
2022-07-15 07:03:59 [ℹ] will create a CloudFormation stack for cluster
itself and 0 managed nodegroup stack(s)
2022-07-15 07:03:59 [ℹ] if you encounter any issues, check
CloudFormation console or try 'eksctl utils describe-stacks
--region=eu-north-1 --cluster=cluster-3'
2022-07-15 07:03:59 [ℹ] Kubernetes API endpoint access will use default
of {publicAccess=true, privateAccess=false} for cluster "cluster-3" in
"eu-north-1"
2022-07-15 07:03:59 [ℹ] CloudWatch logging will not be enabled for
cluster "cluster-3" in "eu-north-1"
2022-07-15 07:03:59 [ℹ] you can enable it with 'eksctl utils
update-cluster-logging --enable-types={SPECIFY-YOUR-LOG-TYPES-HERE (e.g.
all)} --region=eu-north-1 --cluster=cluster-3'
2022-07-15 07:03:59 [ℹ]
2 sequential tasks: { create cluster control plane "cluster-3",
2 sequential sub-tasks: {
wait for control plane to become ready,
2 parallel sub-tasks: {
create nodegroup "ng1-public",
create nodegroup "ng2-private",
},
}
}
2022-07-15 07:03:59 [ℹ] building cluster stack
"eksctl-cluster-3-cluster"
2022-07-15 07:04:00 [ℹ] deploying stack "eksctl-cluster-3-cluster"
2022-07-15 07:04:30 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-cluster"
2022-07-15 07:05:01 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-cluster"
2022-07-15 07:06:02 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-cluster"
2022-07-15 07:07:03 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-cluster"
2022-07-15 07:08:04 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-cluster"
2022-07-15 07:09:05 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-cluster"
2022-07-15 07:10:06 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-cluster"
2022-07-15 07:11:07 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-cluster"
2022-07-15 07:12:08 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-cluster"
2022-07-15 07:13:09 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-cluster"
2022-07-15 07:14:10 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-cluster"
2022-07-15 07:16:18 [ℹ] building nodegroup stack
"eksctl-cluster-3-nodegroup-ng1-public"
2022-07-15 07:16:18 [ℹ] --nodes-min=4 was set automatically for
nodegroup ng1-public
2022-07-15 07:16:18 [ℹ] --nodes-max=4 was set automatically for
nodegroup ng1-public
2022-07-15 07:16:18 [ℹ] building nodegroup stack
"eksctl-cluster-3-nodegroup-ng2-private"
2022-07-15 07:16:18 [ℹ] --nodes-min=10 was set automatically for
nodegroup ng2-private
2022-07-15 07:16:18 [ℹ] --nodes-max=10 was set automatically for
nodegroup ng2-private
2022-07-15 07:16:19 [ℹ] deploying stack
"eksctl-cluster-3-nodegroup-ng2-private"
2022-07-15 07:16:19 [ℹ] deploying stack
"eksctl-cluster-3-nodegroup-ng1-public"
2022-07-15 07:16:19 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-nodegroup-ng2-private"
2022-07-15 07:16:19 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-nodegroup-ng1-public"
2022-07-15 07:16:50 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-nodegroup-ng2-private"
2022-07-15 07:16:50 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-nodegroup-ng1-public"
2022-07-15 07:17:22 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-nodegroup-ng2-private"
2022-07-15 07:17:24 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-nodegroup-ng1-public"
2022-07-15 07:18:46 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-nodegroup-ng2-private"
2022-07-15 07:19:11 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-nodegroup-ng1-public"
2022-07-15 07:20:25 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-nodegroup-ng1-public"
2022-07-15 07:20:26 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-nodegroup-ng2-private"
2022-07-15 07:21:45 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-nodegroup-ng1-public"
2022-07-15 07:22:01 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-nodegroup-ng2-private"
2022-07-15 07:23:04 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-nodegroup-ng1-public"
2022-07-15 07:23:27 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-nodegroup-ng2-private"
2022-07-15 07:23:57 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-nodegroup-ng1-public"
2022-07-15 07:24:23 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-nodegroup-ng2-private"
2022-07-15 07:25:07 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-nodegroup-ng1-public"
2022-07-15 07:25:14 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-nodegroup-ng2-private"
2022-07-15 07:26:44 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-nodegroup-ng1-public"
2022-07-15 07:27:05 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-nodegroup-ng2-private"
2022-07-15 07:27:52 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-nodegroup-ng1-public"
2022-07-15 07:28:01 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-nodegroup-ng2-private"
2022-07-15 07:28:02 [ℹ] waiting for the control plane availability...
2022-07-15 07:28:02 [✔] saved kubeconfig as
"/home/cloudshell-user/.kube/config"
2022-07-15 07:28:02 [ℹ] no tasks
2022-07-15 07:28:02 [✔] all EKS cluster resources for "cluster-3" have
been created
2022-07-15 07:28:03 [ℹ] adding identity
"arn:aws:iam::880298856041:role/eksctl-cluster-3-nodegroup-ng1-pu-NodeIn
stanceRole-1ESFR9RNWEIEY" to auth ConfigMap
2022-07-15 07:28:04 [ℹ] nodegroup "ng1-public" has 0 node(s)
2022-07-15 07:28:04 [ℹ] waiting for at least 4 node(s) to become ready
in "ng1-public"
2022-07-15 07:28:58 [ℹ] nodegroup "ng1-public" has 4 node(s)
2022-07-15 07:28:58 [ℹ] node
"ip-192-168-11-150.eu-north-1.compute.internal" is ready
2022-07-15 07:28:58 [ℹ] node
"ip-192-168-6-223.eu-north-1.compute.internal" is ready
2022-07-15 07:28:58 [ℹ] node
"ip-192-168-62-220.eu-north-1.compute.internal" is ready
2022-07-15 07:28:58 [ℹ] node
"ip-192-168-77-236.eu-north-1.compute.internal" is ready
2022-07-15 07:28:58 [ℹ] adding identity
"arn:aws:iam::880298856041:role/eksctl-cluster-3-nodegroup-ng2-pr-NodeIn
stanceRole-1SDLTX7E68HZV" to auth ConfigMap
2022-07-15 07:28:59 [ℹ] nodegroup "ng2-private" has 0 node(s)
2022-07-15 07:28:59 [ℹ] waiting for at least 10 node(s) to become ready
in "ng2-private"
2022-07-15 07:31:32 [ℹ] nodegroup "ng2-private" has 10 node(s)
2022-07-15 07:31:32 [ℹ] node
"ip-192-168-105-13.eu-north-1.compute.internal" is ready
2022-07-15 07:31:32 [ℹ] node
"ip-192-168-106-192.eu-north-1.compute.internal" is ready
2022-07-15 07:31:32 [ℹ] node
"ip-192-168-106-228.eu-north-1.compute.internal" is ready
2022-07-15 07:31:32 [ℹ] node
"ip-192-168-127-188.eu-north-1.compute.internal" is ready
2022-07-15 07:31:32 [ℹ] node
"ip-192-168-128-244.eu-north-1.compute.internal" is ready
2022-07-15 07:31:32 [ℹ] node
"ip-192-168-152-186.eu-north-1.compute.internal" is ready
2022-07-15 07:31:32 [ℹ] node
"ip-192-168-158-59.eu-north-1.compute.internal" is ready
2022-07-15 07:31:32 [ℹ] node
"ip-192-168-173-144.eu-north-1.compute.internal" is ready
2022-07-15 07:31:32 [ℹ] node
"ip-192-168-177-237.eu-north-1.compute.internal" is ready
2022-07-15 07:31:32 [ℹ] node
"ip-192-168-189-236.eu-north-1.compute.internal" is ready
2022-07-15 07:31:35 [ℹ] kubectl command should work with
"/home/cloudshell-user/.kube/config", try 'kubectl get nodes'
2022-07-15 07:31:35 [✔] EKS cluster "cluster-3" in "eu-north-1" region
is ready
❗직접 소스에서 생성하는건 안됨
[cloudshell-user@ip-10-0-146-72 ~]$ eksctl create cluster -f
https://raw.githubusercontent.com/weaveworks/eksctl/main/examples/03-two
-nodegroups.yaml
Error: reading config file
"https://raw.githubusercontent.com/weaveworks/eksctl/main/examples/03-tw
o-nodegroups.yaml": open
https://raw.githubusercontent.com/weaveworks/eksctl/main/examples/03-two
-nodegroups.yaml: no such file or directory
❗또한 --name 지정도 안됨. 필요하면 yaml 내에 기입하도록 함
[cloudshell-user@ip-10-0-146-72 ~]$ eksctl create cluster -f
/tmp/03-two-nodegroups.yaml --name eks-122-2nodegroups
Error: cannot use --name when --config-file/-f is set
3.배포된 EKS 클러스터 확인
[cloudshell-user@ip-10-0-73-129 ~]$ kubectl get node
NAME STATUS ROLES AGE VERSION
ip-192-168-105-13.eu-north-1.compute.internal Ready <none> 17m v1.22.9-eks-810597c
ip-192-168-106-192.eu-north-1.compute.internal Ready <none> 17m v1.22.9-eks-810597c
ip-192-168-106-228.eu-north-1.compute.internal Ready <none> 17m v1.22.9-eks-810597c
ip-192-168-11-150.eu-north-1.compute.internal Ready <none> 18m v1.22.9-eks-810597c
ip-192-168-127-188.eu-north-1.compute.internal Ready <none> 17m v1.22.9-eks-810597c
ip-192-168-128-244.eu-north-1.compute.internal Ready <none> 17m v1.22.9-eks-810597c
ip-192-168-152-186.eu-north-1.compute.internal Ready <none> 17m v1.22.9-eks-810597c
ip-192-168-158-59.eu-north-1.compute.internal Ready <none> 17m v1.22.9-eks-810597c
ip-192-168-173-144.eu-north-1.compute.internal Ready <none> 17m v1.22.9-eks-810597c
ip-192-168-177-237.eu-north-1.compute.internal Ready <none> 17m v1.22.9-eks-810597c
ip-192-168-189-236.eu-north-1.compute.internal Ready <none> 17m v1.22.9-eks-810597c
ip-192-168-6-223.eu-north-1.compute.internal Ready <none> 18m v1.22.9-eks-810597c
ip-192-168-62-220.eu-north-1.compute.internal Ready <none> 18m v1.22.9-eks-810597c
ip-192-168-77-236.eu-north-1.compute.internal Ready <none> 18m v1.22.9-eks-810597c
4.배포된 EKS 클러스터의 노드그룹 확인
[cloudshell-user@ip-10-0-73-129 ~]$ eksctl get nodegroup
--cluster=cluster-3 --region=eu-north-1
CLUSTER NODEGROUP STATUS CREATED MIN SIZE
MAX SIZE DESIRED CAPACITY INSTANCE TYPE IMAGE ID
ASG NAME TYPE
cluster-3 ng1-public CREATE_COMPLETE 2022-07-15T07:16:19Z 4
4 4 m5.xlarge ami-05f51b54cf23c7116
eksctl-cluster-3-nodegroup-ng1-public-NodeGroup-7JY8Z9GUVN0J unmanaged
cluster-3 ng2-private CREATE_COMPLETE 2022-07-15T07:16:19Z 10
10 10 m5.large ami-05f51b54cf23c7116
eksctl-cluster-3-nodegroup-ng2-private-NodeGroup-G8OUJ4H7ULSJ unmanaged
5.Yaml 파일로 설치된 EKS 클러스터 삭제
[cloudshell-user@ip-10-0-73-129 ~]$ eksctl delete cluster -f
/tmp/03-two-nodegroups.yaml
2022-07-15 07:51:58 [ℹ] deleting EKS cluster "cluster-3"
2022-07-15 07:52:01 [ℹ] will drain 2 unmanaged nodegroup(s) in cluster
"cluster-3"
2022-07-15 07:52:01 [ℹ] starting parallel draining, max in-flight of 1
2022-07-15 07:52:03 [ℹ] cordon node
"ip-192-168-11-150.eu-north-1.compute.internal"
2022-07-15 07:52:03 [ℹ] cordon node
"ip-192-168-105-13.eu-north-1.compute.internal"
2022-07-15 07:52:03 [ℹ] cordon node
"ip-192-168-106-192.eu-north-1.compute.internal"
2022-07-15 07:52:03 [ℹ] cordon node
"ip-192-168-6-223.eu-north-1.compute.internal"
2022-07-15 07:52:04 [ℹ] cordon node
"ip-192-168-62-220.eu-north-1.compute.internal"
2022-07-15 07:52:04 [ℹ] cordon node
"ip-192-168-106-228.eu-north-1.compute.internal"
2022-07-15 07:52:04 [ℹ] cordon node
"ip-192-168-127-188.eu-north-1.compute.internal"
2022-07-15 07:52:04 [ℹ] cordon node
"ip-192-168-77-236.eu-north-1.compute.internal"
2022-07-15 07:52:04 [ℹ] cordon node
"ip-192-168-128-244.eu-north-1.compute.internal"
2022-07-15 07:52:04 [ℹ] cordon node
"ip-192-168-152-186.eu-north-1.compute.internal"
2022-07-15 07:52:05 [ℹ] cordon node
"ip-192-168-158-59.eu-north-1.compute.internal"
2022-07-15 07:52:05 [ℹ] cordon node
"ip-192-168-173-144.eu-north-1.compute.internal"
2022-07-15 07:52:05 [ℹ] cordon node
"ip-192-168-177-237.eu-north-1.compute.internal"
2022-07-15 07:52:05 [ℹ] cordon node
"ip-192-168-189-236.eu-north-1.compute.internal"
2022-07-15 07:52:20 [✔] drained all nodes:
[ip-192-168-77-236.eu-north-1.compute.internal
ip-192-168-6-223.eu-north-1.compute.internal
ip-192-168-11-150.eu-north-1.compute.internal
ip-192-168-62-220.eu-north-1.compute.internal]
2022-07-15 07:52:28 [✔] drained all nodes:
[ip-192-168-158-59.eu-north-1.compute.internal
ip-192-168-105-13.eu-north-1.compute.internal
ip-192-168-128-244.eu-north-1.compute.internal
ip-192-168-106-228.eu-north-1.compute.internal
ip-192-168-177-237.eu-north-1.compute.internal
ip-192-168-173-144.eu-north-1.compute.internal
ip-192-168-189-236.eu-north-1.compute.internal
ip-192-168-127-188.eu-north-1.compute.internal
ip-192-168-152-186.eu-north-1.compute.internal
ip-192-168-106-192.eu-north-1.compute.internal]
2022-07-15 07:52:29 [ℹ] deleted 0 Fargate profile(s)
2022-07-15 07:52:32 [✔] kubeconfig has been updated
2022-07-15 07:52:32 [ℹ] cleaning up AWS load balancers created by
Kubernetes objects of Kind Service or Ingress
2022-07-15 07:52:35 [ℹ]
2 sequential tasks: {
2 parallel sub-tasks: {
delete nodegroup "ng2-private",
delete nodegroup "ng1-public",
}, delete cluster control plane "cluster-3" [async]
}
2022-07-15 07:52:36 [ℹ] will delete stack
"eksctl-cluster-3-nodegroup-ng2-private"
2022-07-15 07:52:36 [ℹ] waiting for stack
"eksctl-cluster-3-nodegroup-ng2-private" to get deleted
2022-07-15 07:52:36 [ℹ] will delete stack
"eksctl-cluster-3-nodegroup-ng1-public"
2022-07-15 07:52:36 [ℹ] waiting for stack
"eksctl-cluster-3-nodegroup-ng1-public" to get deleted
2022-07-15 07:52:36 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-nodegroup-ng2-private"
2022-07-15 07:52:36 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-nodegroup-ng1-public"
2022-07-15 07:53:07 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-nodegroup-ng2-private"
2022-07-15 07:53:07 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-nodegroup-ng1-public"
2022-07-15 07:53:43 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-nodegroup-ng1-public"
2022-07-15 07:53:44 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-nodegroup-ng2-private"
2022-07-15 07:54:42 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-nodegroup-ng1-public"
2022-07-15 07:54:45 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-nodegroup-ng2-private"
2022-07-15 07:56:31 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-nodegroup-ng2-private"
2022-07-15 07:56:42 [ℹ] waiting for CloudFormation stack
"eksctl-cluster-3-nodegroup-ng1-public"
2022-07-15 07:56:44 [ℹ] will delete stack "eksctl-cluster-3-cluster"
2022-07-15 07:56:45 [✔] all cluster resources were deleted

[GuideDoc] Deploy EKS thru eksctl - v1.22_v0.105.0.pdf

  • 1.
    eksctl을 통한 EKS배포 가이드 - v0.105.0 / v1.22 (https://eksctl.io/) ❗만약 yaml로 배포하길 원한다면 여길 또는 밑을 참조 📌QA test Region on (ap-northeast-1 / 도쿄) https://github.com/sysnet4admin
  • 2.
    AWS Cloud Shell에eksctl 설치 (https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/eksctl.html) 1.eksctl v0.105.0을 내려받고 압축 풀기 [cloudshell-user@ip-10-0-46-136 ~]$ curl --silent --location "https://github.com/weaveworks/eksctl/releases/download/v0.105.0/eksctl_ Linux_amd64.tar.gz" | tar xz -C /tmp 2.eksctl을 실행 디렉터리로 이동 [cloudshell-user@ip-10-0-46-136 ~]$ mkdir -p $HOME/bin && cp /tmp/eksctl $HOME/bin/eksctl && export PATH=$PATH:$HOME/bin 3.eksctl 설치 상태 및 버전 체크 [cloudshell-user@ip-10-0-46-136 ~]$ eksctl version 0.105.0 ❗만약 최신 버전을 내려 받기 원할 경우 다음의 내용 참조 [cloudshell-user@ip-10-0-46-136 ~]$ curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$( uname -s)_amd64.tar.gz" | tar xz -C /tmp
  • 3.
    AWS Cloud Shell에kubectl 설치 (https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/install-kubectl.html) 1.kubectl binary v.1.22 내려받기 [cloudshell-user@ip-10-0-46-136 ~]$ curl -o kubectl https://s3.us-west-2.amazonaws.com/amazon-eks/1.22.6/2022-03-09/bin/linu x/amd64/kubectl % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 44.7M 100 44.7M 0 0 17.8M 0 0:00:02 0:00:02 --:--:-- 17.8M 2.kubectl binary에 실행권한을 줌 [cloudshell-user@ip-10-0-46-136 ~]$ chmod +x ./kubectl 3.kubectl을 실행 디렉토리 들로 옮김 [cloudshell-user@ip-10-0-46-136 ~]$ mkdir -p $HOME/bin && cp ./kubectl $HOME/bin/kubectl && export PATH=$PATH:$HOME/bin 4.kubectl 상태 및 버전 확인 [cloudshell-user@ip-10-0-46-136 ~]$ kubectl version Client Version: version.Info{Major:"1", Minor:"22+", GitVersion:"v1.22.6-eks-7d68063", GitCommit:"f24e667e49fb137336f7b064dba897beed639bad", GitTreeState:"clean", BuildDate:"2022-02-23T19:32:14Z", GoVersion:"go1.16.12", Compiler:"gc", Platform:"linux/amd64"} Server Version: version.Info{Major:"1", Minor:"22+", GitVersion:"v1.22.10-eks-84b4fe6", GitCommit:"cc6a1b4915a99f49f5510ef0667f94b9ca832a8a", GitTreeState:"clean", BuildDate:"2022-06-09T18:24:04Z", GoVersion:"go1.16.15", Compiler:"gc", Platform:"linux/amd64"}
  • 4.
    설치된 eksctl을 통해서EKS 배포 (https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/getting-started-eksctl.html) 1.eksctl create cluster (default: --version=1.22) [cloudshell-user@ip-10-0-46-136 ~]$ eksctl create cluster --name eks-122 --version1.22 2022-07-15 03:47:19 [ℹ] eksctl version 0.105.0 2022-07-15 03:47:19 [ℹ] using region ap-northeast-1 2022-07-15 03:47:19 [ℹ] setting availability zones to [ap-northeast-1c ap-northeast-1d ap-northeast-1a] 2022-07-15 03:47:19 [ℹ] subnets for ap-northeast-1c - public:192.168.0.0/19 private:192.168.96.0/19 2022-07-15 03:47:19 [ℹ] subnets for ap-northeast-1d - public:192.168.32.0/19 private:192.168.128.0/19 2022-07-15 03:47:19 [ℹ] subnets for ap-northeast-1a - public:192.168.64.0/19 private:192.168.160.0/19 2022-07-15 03:47:19 [ℹ] nodegroup "ng-d4276147" will use "" [AmazonLinux2/1.22] 2022-07-15 03:47:19 [ℹ] using Kubernetes version 1.22 2022-07-15 03:47:19 [ℹ] creating EKS cluster "eks-122" in "ap-northeast-1" region with managed nodes 2022-07-15 03:47:19 [ℹ] will create 2 separate CloudFormation stacks for cluster itself and the initial managed nodegroup 2022-07-15 03:47:19 [ℹ] if you encounter any issues, check CloudFormation console or try 'eksctl utils describe-stacks --region=ap-northeast-1 --cluster=eks-122' 2022-07-15 03:47:19 [ℹ] Kubernetes API endpoint access will use default of {publicAccess=true, privateAccess=false} for cluster "eks-122" in "ap-northeast-1" 2022-07-15 03:47:19 [ℹ] CloudWatch logging will not be enabled for cluster "eks-122" in "ap-northeast-1" 2022-07-15 03:47:19 [ℹ] you can enable it with 'eksctl utils update-cluster-logging --enable-types={SPECIFY-YOUR-LOG-TYPES-HERE (e.g. all)} --region=ap-northeast-1 --cluster=eks-122' 2022-07-15 03:47:19 [ℹ] 2 sequential tasks: { create cluster control plane "eks-122", 2 sequential sub-tasks: { wait for control plane to become ready, create managed nodegroup "ng-d4276147", } } 2022-07-15 03:47:19 [ℹ] building cluster stack "eksctl-eks-122-cluster" 2022-07-15 03:47:19 [ℹ] deploying stack "eksctl-eks-122-cluster" 2022-07-15 03:47:49 [ℹ] waiting for CloudFormation stack
  • 5.
    "eksctl-eks-122-cluster" 2022-07-15 03:48:19 [ℹ]waiting for CloudFormation stack "eksctl-eks-122-cluster" 2022-07-15 03:49:20 [ℹ] waiting for CloudFormation stack "eksctl-eks-122-cluster" 2022-07-15 03:50:20 [ℹ] waiting for CloudFormation stack "eksctl-eks-122-cluster" 2022-07-15 03:51:20 [ℹ] waiting for CloudFormation stack "eksctl-eks-122-cluster" 2022-07-15 03:52:20 [ℹ] waiting for CloudFormation stack "eksctl-eks-122-cluster" 2022-07-15 03:53:20 [ℹ] waiting for CloudFormation stack "eksctl-eks-122-cluster" 2022-07-15 03:54:20 [ℹ] waiting for CloudFormation stack "eksctl-eks-122-cluster" 2022-07-15 03:55:20 [ℹ] waiting for CloudFormation stack "eksctl-eks-122-cluster" 2022-07-15 03:56:20 [ℹ] waiting for CloudFormation stack "eksctl-eks-122-cluster" 2022-07-15 03:57:20 [ℹ] waiting for CloudFormation stack "eksctl-eks-122-cluster" 2022-07-15 03:58:20 [ℹ] waiting for CloudFormation stack "eksctl-eks-122-cluster" 2022-07-15 04:00:21 [ℹ] building managed nodegroup stack "eksctl-eks-122-nodegroup-ng-d4276147" 2022-07-15 04:00:21 [ℹ] deploying stack "eksctl-eks-122-nodegroup-ng-d4276147" 2022-07-15 04:00:21 [ℹ] waiting for CloudFormation stack "eksctl-eks-122-nodegroup-ng-d4276147" 2022-07-15 04:00:52 [ℹ] waiting for CloudFormation stack "eksctl-eks-122-nodegroup-ng-d4276147" 2022-07-15 04:01:24 [ℹ] waiting for CloudFormation stack "eksctl-eks-122-nodegroup-ng-d4276147" 2022-07-15 04:03:07 [ℹ] waiting for CloudFormation stack "eksctl-eks-122-nodegroup-ng-d4276147" 2022-07-15 04:04:51 [ℹ] waiting for CloudFormation stack "eksctl-eks-122-nodegroup-ng-d4276147" 2022-07-15 04:04:51 [ℹ] waiting for the control plane availability... 2022-07-15 04:04:52 [✔] saved kubeconfig as "/home/cloudshell-user/.kube/config" 2022-07-15 04:04:52 [ℹ] no tasks 2022-07-15 04:04:52 [✔] all EKS cluster resources for "eks-122" have been created 2022-07-15 04:04:52 [ℹ] nodegroup "ng-d4276147" has 2 node(s) 2022-07-15 04:04:52 [ℹ] node "ip-192-168-17-228.ap-northeast-1.compute.internal" is ready
  • 6.
    2022-07-15 04:04:52 [ℹ]node "ip-192-168-47-97.ap-northeast-1.compute.internal" is ready 2022-07-15 04:04:52 [ℹ] waiting for at least 2 node(s) to become ready in "ng-d4276147" 2022-07-15 04:04:52 [ℹ] nodegroup "ng-d4276147" has 2 node(s) 2022-07-15 04:04:52 [ℹ] node "ip-192-168-17-228.ap-northeast-1.compute.internal" is ready 2022-07-15 04:04:52 [ℹ] node "ip-192-168-47-97.ap-northeast-1.compute.internal" is ready 2022-07-15 04:04:53 [ℹ] kubectl command should work with "/home/cloudshell-user/.kube/config", try 'kubectl get nodes' 2022-07-15 04:04:53 [✔] EKS cluster "eks-122" in "ap-northeast-1" region is ready 2.배포된 EKS 클러스터 확인 [cloudshell-user@ip-10-0-146-72 ~]$ kubectl get nodes NAME STATUS ROLES AGE VERSION ip-192-168-26-17.ap-northeast-1.compute.internal Ready <none> 47m v1.22.9-eks-810597c ip-192-168-59-253.ap-northeast-1.compute.internal Ready <none> 47m v1.22.9-eks-810597c 3.배포된 EKS를 AWS GUI에서 확인 ❗만약 kubectl이 설치되지 않은 상태로 배포한다면 error 발생 [cloudshell-user@ip-10-0-46-136 ~]$ eksctl create cluster 2022-07-15 01:07:00 [ℹ] eksctl version 0.105.0 2022-07-15 01:07:00 [ℹ] using region ap-northeast-1 2022-07-15 01:07:00 [ℹ] setting availability zones to [ap-northeast-1c ap-northeast-1a ap-northeast-1d]
  • 7.
    2022-07-15 01:07:00 [ℹ]subnets for ap-northeast-1c - public:192.168.0.0/19 private:192.168.96.0/19 2022-07-15 01:07:00 [ℹ] subnets for ap-northeast-1a - public:192.168.32.0/19 private:192.168.128.0/19 2022-07-15 01:07:00 [ℹ] subnets for ap-northeast-1d - public:192.168.64.0/19 private:192.168.160.0/19 2022-07-15 01:07:00 [ℹ] nodegroup "ng-b6218207" will use "" [AmazonLinux2/1.22] 2022-07-15 01:07:00 [ℹ] using Kubernetes version 1.22 2022-07-15 01:07:00 [ℹ] creating EKS cluster "extravagant-unicorn-1657847220" in "ap-northeast-1" region with managed nodes <snipped> 2022-07-15 01:23:41 [ℹ] node "ip-192-168-82-13.ap-northeast-1.compute.internal" is ready 2022-07-15 01:23:41 [✖] kubectl not found, v1.10.0 or newer is required 2022-07-15 01:23:41 [ℹ] cluster should be functional despite missing (or misconfigured) client binaries 2022-07-15 01:23:41 [✔] EKS cluster "extravagant-unicorn-1657847220" in "ap-northeast-1" region is ready
  • 8.
    설치된 EKS 클러스터삭제하기 1.설치된 EKS cluster 확인 [cloudshell-user@ip-10-0-146-72 ~]$ eksctl get cluster NAME REGION EKSCTL CREATED eks-122 ap-northeast-1 True ❗만약 이름을 지정하지 않았다면? [cloudshell-user@ip-10-0-46-136 ~]$ eksctl get cluster NAME REGION EKSCTL CREATED extravagant-unicorn-1657847220 ap-northeast-1 True 2.eksctl delete cluster [cloudshell-user@ip-10-0-146-72 ~]$ eksctl delete cluster --name eks-122 2022-07-15 03:23:52 [ℹ] deleting EKS cluster "eks-122" 2022-07-15 03:23:52 [ℹ] will drain 0 unmanaged nodegroup(s) in cluster "eks-122" 2022-07-15 03:23:52 [ℹ] starting parallel draining, max in-flight of 1 2022-07-15 03:23:52 [ℹ] deleted 0 Fargate profile(s) 2022-07-15 03:23:52 [✔] kubeconfig has been updated 2022-07-15 03:23:52 [ℹ] cleaning up AWS load balancers created by Kubernetes objects of Kind Service or Ingress 2022-07-15 03:23:54 [ℹ] 2 sequential tasks: { delete nodegroup "ng-711dbf40", delete cluster control plane "eks-122" [async] } 2022-07-15 03:23:54 [ℹ] will delete stack "eksctl-eks-122-nodegroup-ng-711dbf40" 2022-07-15 03:23:54 [ℹ] waiting for stack "eksctl-eks-122-nodegroup-ng-711dbf40" to get deleted 2022-07-15 03:23:54 [ℹ] waiting for CloudFormation stack "eksctl-eks-122-nodegroup-ng-711dbf40" 2022-07-15 03:24:24 [ℹ] waiting for CloudFormation stack "eksctl-eks-122-nodegroup-ng-711dbf40" 2022-07-15 03:25:15 [ℹ] waiting for CloudFormation stack "eksctl-eks-122-nodegroup-ng-711dbf40" 2022-07-15 03:26:06 [ℹ] waiting for CloudFormation stack "eksctl-eks-122-nodegroup-ng-711dbf40" 2022-07-15 03:28:03 [ℹ] waiting for CloudFormation stack "eksctl-eks-122-nodegroup-ng-711dbf40"
  • 9.
    2022-07-15 03:28:57 [ℹ]waiting for CloudFormation stack "eksctl-eks-122-nodegroup-ng-711dbf40" 2022-07-15 03:30:32 [ℹ] waiting for CloudFormation stack "eksctl-eks-122-nodegroup-ng-711dbf40" 2022-07-15 03:31:25 [ℹ] waiting for CloudFormation stack "eksctl-eks-122-nodegroup-ng-711dbf40" 2022-07-15 03:31:25 [ℹ] will delete stack "eksctl-eks-122-cluster" 2022-07-15 03:31:25 [✔] all cluster resources were deleted 3.삭제된 EKS를 AWS GUI에서 확인
  • 10.
    부록1 yaml로 EKS배포하기 1.yaml 예제 파일 내려받기 [cloudshell-user@ip-10-0-146-72 ~]$ curl https://raw.githubusercontent.com/weaveworks/eksctl/main/examples/03-two -nodegroups.yaml -o /tmp/03-two-nodegroups.yaml % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 391 100 391 0 0 987 0 --:--:-- --:--:-- --:--:-- 987 2.eksctl create cluster -f <yaml> [cloudshell-user@ip-10-0-146-72 ~]$ eksctl create cluster -f /tmp/03-two-nodegroups.yaml 2022-07-15 07:03:56 [ℹ] eksctl version 0.105.0 2022-07-15 07:03:56 [ℹ] using region eu-north-1 2022-07-15 07:03:57 [ℹ] setting availability zones to [eu-north-1a eu-north-1b eu-north-1c] 2022-07-15 07:03:57 [ℹ] subnets for eu-north-1a - public:192.168.0.0/19 private:192.168.96.0/19 2022-07-15 07:03:57 [ℹ] subnets for eu-north-1b - public:192.168.32.0/19 private:192.168.128.0/19 2022-07-15 07:03:57 [ℹ] subnets for eu-north-1c - public:192.168.64.0/19 private:192.168.160.0/19 2022-07-15 07:03:58 [ℹ] nodegroup "ng1-public" will use "ami-05f51b54cf23c7116" [AmazonLinux2/1.22] 2022-07-15 07:03:58 [ℹ] nodegroup "ng2-private" will use "ami-05f51b54cf23c7116" [AmazonLinux2/1.22] 2022-07-15 07:03:59 [ℹ] using Kubernetes version 1.22 2022-07-15 07:03:59 [ℹ] creating EKS cluster "cluster-3" in "eu-north-1" region with un-managed nodes 2022-07-15 07:03:59 [ℹ] 2 nodegroups (ng1-public, ng2-private) were included (based on the include/exclude rules) 2022-07-15 07:03:59 [ℹ] will create a CloudFormation stack for cluster itself and 2 nodegroup stack(s) 2022-07-15 07:03:59 [ℹ] will create a CloudFormation stack for cluster itself and 0 managed nodegroup stack(s) 2022-07-15 07:03:59 [ℹ] if you encounter any issues, check CloudFormation console or try 'eksctl utils describe-stacks --region=eu-north-1 --cluster=cluster-3' 2022-07-15 07:03:59 [ℹ] Kubernetes API endpoint access will use default
  • 11.
    of {publicAccess=true, privateAccess=false}for cluster "cluster-3" in "eu-north-1" 2022-07-15 07:03:59 [ℹ] CloudWatch logging will not be enabled for cluster "cluster-3" in "eu-north-1" 2022-07-15 07:03:59 [ℹ] you can enable it with 'eksctl utils update-cluster-logging --enable-types={SPECIFY-YOUR-LOG-TYPES-HERE (e.g. all)} --region=eu-north-1 --cluster=cluster-3' 2022-07-15 07:03:59 [ℹ] 2 sequential tasks: { create cluster control plane "cluster-3", 2 sequential sub-tasks: { wait for control plane to become ready, 2 parallel sub-tasks: { create nodegroup "ng1-public", create nodegroup "ng2-private", }, } } 2022-07-15 07:03:59 [ℹ] building cluster stack "eksctl-cluster-3-cluster" 2022-07-15 07:04:00 [ℹ] deploying stack "eksctl-cluster-3-cluster" 2022-07-15 07:04:30 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-cluster" 2022-07-15 07:05:01 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-cluster" 2022-07-15 07:06:02 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-cluster" 2022-07-15 07:07:03 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-cluster" 2022-07-15 07:08:04 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-cluster" 2022-07-15 07:09:05 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-cluster" 2022-07-15 07:10:06 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-cluster" 2022-07-15 07:11:07 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-cluster" 2022-07-15 07:12:08 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-cluster" 2022-07-15 07:13:09 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-cluster" 2022-07-15 07:14:10 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-cluster" 2022-07-15 07:16:18 [ℹ] building nodegroup stack "eksctl-cluster-3-nodegroup-ng1-public" 2022-07-15 07:16:18 [ℹ] --nodes-min=4 was set automatically for nodegroup ng1-public
  • 12.
    2022-07-15 07:16:18 [ℹ]--nodes-max=4 was set automatically for nodegroup ng1-public 2022-07-15 07:16:18 [ℹ] building nodegroup stack "eksctl-cluster-3-nodegroup-ng2-private" 2022-07-15 07:16:18 [ℹ] --nodes-min=10 was set automatically for nodegroup ng2-private 2022-07-15 07:16:18 [ℹ] --nodes-max=10 was set automatically for nodegroup ng2-private 2022-07-15 07:16:19 [ℹ] deploying stack "eksctl-cluster-3-nodegroup-ng2-private" 2022-07-15 07:16:19 [ℹ] deploying stack "eksctl-cluster-3-nodegroup-ng1-public" 2022-07-15 07:16:19 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-nodegroup-ng2-private" 2022-07-15 07:16:19 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-nodegroup-ng1-public" 2022-07-15 07:16:50 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-nodegroup-ng2-private" 2022-07-15 07:16:50 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-nodegroup-ng1-public" 2022-07-15 07:17:22 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-nodegroup-ng2-private" 2022-07-15 07:17:24 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-nodegroup-ng1-public" 2022-07-15 07:18:46 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-nodegroup-ng2-private" 2022-07-15 07:19:11 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-nodegroup-ng1-public" 2022-07-15 07:20:25 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-nodegroup-ng1-public" 2022-07-15 07:20:26 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-nodegroup-ng2-private" 2022-07-15 07:21:45 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-nodegroup-ng1-public" 2022-07-15 07:22:01 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-nodegroup-ng2-private" 2022-07-15 07:23:04 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-nodegroup-ng1-public" 2022-07-15 07:23:27 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-nodegroup-ng2-private" 2022-07-15 07:23:57 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-nodegroup-ng1-public" 2022-07-15 07:24:23 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-nodegroup-ng2-private" 2022-07-15 07:25:07 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-nodegroup-ng1-public"
  • 13.
    2022-07-15 07:25:14 [ℹ]waiting for CloudFormation stack "eksctl-cluster-3-nodegroup-ng2-private" 2022-07-15 07:26:44 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-nodegroup-ng1-public" 2022-07-15 07:27:05 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-nodegroup-ng2-private" 2022-07-15 07:27:52 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-nodegroup-ng1-public" 2022-07-15 07:28:01 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-nodegroup-ng2-private" 2022-07-15 07:28:02 [ℹ] waiting for the control plane availability... 2022-07-15 07:28:02 [✔] saved kubeconfig as "/home/cloudshell-user/.kube/config" 2022-07-15 07:28:02 [ℹ] no tasks 2022-07-15 07:28:02 [✔] all EKS cluster resources for "cluster-3" have been created 2022-07-15 07:28:03 [ℹ] adding identity "arn:aws:iam::880298856041:role/eksctl-cluster-3-nodegroup-ng1-pu-NodeIn stanceRole-1ESFR9RNWEIEY" to auth ConfigMap 2022-07-15 07:28:04 [ℹ] nodegroup "ng1-public" has 0 node(s) 2022-07-15 07:28:04 [ℹ] waiting for at least 4 node(s) to become ready in "ng1-public" 2022-07-15 07:28:58 [ℹ] nodegroup "ng1-public" has 4 node(s) 2022-07-15 07:28:58 [ℹ] node "ip-192-168-11-150.eu-north-1.compute.internal" is ready 2022-07-15 07:28:58 [ℹ] node "ip-192-168-6-223.eu-north-1.compute.internal" is ready 2022-07-15 07:28:58 [ℹ] node "ip-192-168-62-220.eu-north-1.compute.internal" is ready 2022-07-15 07:28:58 [ℹ] node "ip-192-168-77-236.eu-north-1.compute.internal" is ready 2022-07-15 07:28:58 [ℹ] adding identity "arn:aws:iam::880298856041:role/eksctl-cluster-3-nodegroup-ng2-pr-NodeIn stanceRole-1SDLTX7E68HZV" to auth ConfigMap 2022-07-15 07:28:59 [ℹ] nodegroup "ng2-private" has 0 node(s) 2022-07-15 07:28:59 [ℹ] waiting for at least 10 node(s) to become ready in "ng2-private" 2022-07-15 07:31:32 [ℹ] nodegroup "ng2-private" has 10 node(s) 2022-07-15 07:31:32 [ℹ] node "ip-192-168-105-13.eu-north-1.compute.internal" is ready 2022-07-15 07:31:32 [ℹ] node "ip-192-168-106-192.eu-north-1.compute.internal" is ready 2022-07-15 07:31:32 [ℹ] node "ip-192-168-106-228.eu-north-1.compute.internal" is ready 2022-07-15 07:31:32 [ℹ] node "ip-192-168-127-188.eu-north-1.compute.internal" is ready
  • 14.
    2022-07-15 07:31:32 [ℹ]node "ip-192-168-128-244.eu-north-1.compute.internal" is ready 2022-07-15 07:31:32 [ℹ] node "ip-192-168-152-186.eu-north-1.compute.internal" is ready 2022-07-15 07:31:32 [ℹ] node "ip-192-168-158-59.eu-north-1.compute.internal" is ready 2022-07-15 07:31:32 [ℹ] node "ip-192-168-173-144.eu-north-1.compute.internal" is ready 2022-07-15 07:31:32 [ℹ] node "ip-192-168-177-237.eu-north-1.compute.internal" is ready 2022-07-15 07:31:32 [ℹ] node "ip-192-168-189-236.eu-north-1.compute.internal" is ready 2022-07-15 07:31:35 [ℹ] kubectl command should work with "/home/cloudshell-user/.kube/config", try 'kubectl get nodes' 2022-07-15 07:31:35 [✔] EKS cluster "cluster-3" in "eu-north-1" region is ready ❗직접 소스에서 생성하는건 안됨 [cloudshell-user@ip-10-0-146-72 ~]$ eksctl create cluster -f https://raw.githubusercontent.com/weaveworks/eksctl/main/examples/03-two -nodegroups.yaml Error: reading config file "https://raw.githubusercontent.com/weaveworks/eksctl/main/examples/03-tw o-nodegroups.yaml": open https://raw.githubusercontent.com/weaveworks/eksctl/main/examples/03-two -nodegroups.yaml: no such file or directory ❗또한 --name 지정도 안됨. 필요하면 yaml 내에 기입하도록 함 [cloudshell-user@ip-10-0-146-72 ~]$ eksctl create cluster -f /tmp/03-two-nodegroups.yaml --name eks-122-2nodegroups Error: cannot use --name when --config-file/-f is set 3.배포된 EKS 클러스터 확인 [cloudshell-user@ip-10-0-73-129 ~]$ kubectl get node NAME STATUS ROLES AGE VERSION ip-192-168-105-13.eu-north-1.compute.internal Ready <none> 17m v1.22.9-eks-810597c ip-192-168-106-192.eu-north-1.compute.internal Ready <none> 17m v1.22.9-eks-810597c ip-192-168-106-228.eu-north-1.compute.internal Ready <none> 17m v1.22.9-eks-810597c ip-192-168-11-150.eu-north-1.compute.internal Ready <none> 18m v1.22.9-eks-810597c ip-192-168-127-188.eu-north-1.compute.internal Ready <none> 17m v1.22.9-eks-810597c
  • 15.
    ip-192-168-128-244.eu-north-1.compute.internal Ready <none>17m v1.22.9-eks-810597c ip-192-168-152-186.eu-north-1.compute.internal Ready <none> 17m v1.22.9-eks-810597c ip-192-168-158-59.eu-north-1.compute.internal Ready <none> 17m v1.22.9-eks-810597c ip-192-168-173-144.eu-north-1.compute.internal Ready <none> 17m v1.22.9-eks-810597c ip-192-168-177-237.eu-north-1.compute.internal Ready <none> 17m v1.22.9-eks-810597c ip-192-168-189-236.eu-north-1.compute.internal Ready <none> 17m v1.22.9-eks-810597c ip-192-168-6-223.eu-north-1.compute.internal Ready <none> 18m v1.22.9-eks-810597c ip-192-168-62-220.eu-north-1.compute.internal Ready <none> 18m v1.22.9-eks-810597c ip-192-168-77-236.eu-north-1.compute.internal Ready <none> 18m v1.22.9-eks-810597c 4.배포된 EKS 클러스터의 노드그룹 확인 [cloudshell-user@ip-10-0-73-129 ~]$ eksctl get nodegroup --cluster=cluster-3 --region=eu-north-1 CLUSTER NODEGROUP STATUS CREATED MIN SIZE MAX SIZE DESIRED CAPACITY INSTANCE TYPE IMAGE ID ASG NAME TYPE cluster-3 ng1-public CREATE_COMPLETE 2022-07-15T07:16:19Z 4 4 4 m5.xlarge ami-05f51b54cf23c7116 eksctl-cluster-3-nodegroup-ng1-public-NodeGroup-7JY8Z9GUVN0J unmanaged cluster-3 ng2-private CREATE_COMPLETE 2022-07-15T07:16:19Z 10 10 10 m5.large ami-05f51b54cf23c7116 eksctl-cluster-3-nodegroup-ng2-private-NodeGroup-G8OUJ4H7ULSJ unmanaged 5.Yaml 파일로 설치된 EKS 클러스터 삭제 [cloudshell-user@ip-10-0-73-129 ~]$ eksctl delete cluster -f /tmp/03-two-nodegroups.yaml 2022-07-15 07:51:58 [ℹ] deleting EKS cluster "cluster-3" 2022-07-15 07:52:01 [ℹ] will drain 2 unmanaged nodegroup(s) in cluster "cluster-3" 2022-07-15 07:52:01 [ℹ] starting parallel draining, max in-flight of 1 2022-07-15 07:52:03 [ℹ] cordon node "ip-192-168-11-150.eu-north-1.compute.internal" 2022-07-15 07:52:03 [ℹ] cordon node "ip-192-168-105-13.eu-north-1.compute.internal" 2022-07-15 07:52:03 [ℹ] cordon node "ip-192-168-106-192.eu-north-1.compute.internal" 2022-07-15 07:52:03 [ℹ] cordon node "ip-192-168-6-223.eu-north-1.compute.internal" 2022-07-15 07:52:04 [ℹ] cordon node "ip-192-168-62-220.eu-north-1.compute.internal" 2022-07-15 07:52:04 [ℹ] cordon node "ip-192-168-106-228.eu-north-1.compute.internal" 2022-07-15 07:52:04 [ℹ] cordon node "ip-192-168-127-188.eu-north-1.compute.internal"
  • 16.
    2022-07-15 07:52:04 [ℹ]cordon node "ip-192-168-77-236.eu-north-1.compute.internal" 2022-07-15 07:52:04 [ℹ] cordon node "ip-192-168-128-244.eu-north-1.compute.internal" 2022-07-15 07:52:04 [ℹ] cordon node "ip-192-168-152-186.eu-north-1.compute.internal" 2022-07-15 07:52:05 [ℹ] cordon node "ip-192-168-158-59.eu-north-1.compute.internal" 2022-07-15 07:52:05 [ℹ] cordon node "ip-192-168-173-144.eu-north-1.compute.internal" 2022-07-15 07:52:05 [ℹ] cordon node "ip-192-168-177-237.eu-north-1.compute.internal" 2022-07-15 07:52:05 [ℹ] cordon node "ip-192-168-189-236.eu-north-1.compute.internal" 2022-07-15 07:52:20 [✔] drained all nodes: [ip-192-168-77-236.eu-north-1.compute.internal ip-192-168-6-223.eu-north-1.compute.internal ip-192-168-11-150.eu-north-1.compute.internal ip-192-168-62-220.eu-north-1.compute.internal] 2022-07-15 07:52:28 [✔] drained all nodes: [ip-192-168-158-59.eu-north-1.compute.internal ip-192-168-105-13.eu-north-1.compute.internal ip-192-168-128-244.eu-north-1.compute.internal ip-192-168-106-228.eu-north-1.compute.internal ip-192-168-177-237.eu-north-1.compute.internal ip-192-168-173-144.eu-north-1.compute.internal ip-192-168-189-236.eu-north-1.compute.internal ip-192-168-127-188.eu-north-1.compute.internal ip-192-168-152-186.eu-north-1.compute.internal ip-192-168-106-192.eu-north-1.compute.internal] 2022-07-15 07:52:29 [ℹ] deleted 0 Fargate profile(s) 2022-07-15 07:52:32 [✔] kubeconfig has been updated 2022-07-15 07:52:32 [ℹ] cleaning up AWS load balancers created by Kubernetes objects of Kind Service or Ingress 2022-07-15 07:52:35 [ℹ] 2 sequential tasks: { 2 parallel sub-tasks: { delete nodegroup "ng2-private", delete nodegroup "ng1-public", }, delete cluster control plane "cluster-3" [async] } 2022-07-15 07:52:36 [ℹ] will delete stack "eksctl-cluster-3-nodegroup-ng2-private" 2022-07-15 07:52:36 [ℹ] waiting for stack "eksctl-cluster-3-nodegroup-ng2-private" to get deleted 2022-07-15 07:52:36 [ℹ] will delete stack
  • 17.
    "eksctl-cluster-3-nodegroup-ng1-public" 2022-07-15 07:52:36 [ℹ]waiting for stack "eksctl-cluster-3-nodegroup-ng1-public" to get deleted 2022-07-15 07:52:36 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-nodegroup-ng2-private" 2022-07-15 07:52:36 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-nodegroup-ng1-public" 2022-07-15 07:53:07 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-nodegroup-ng2-private" 2022-07-15 07:53:07 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-nodegroup-ng1-public" 2022-07-15 07:53:43 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-nodegroup-ng1-public" 2022-07-15 07:53:44 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-nodegroup-ng2-private" 2022-07-15 07:54:42 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-nodegroup-ng1-public" 2022-07-15 07:54:45 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-nodegroup-ng2-private" 2022-07-15 07:56:31 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-nodegroup-ng2-private" 2022-07-15 07:56:42 [ℹ] waiting for CloudFormation stack "eksctl-cluster-3-nodegroup-ng1-public" 2022-07-15 07:56:44 [ℹ] will delete stack "eksctl-cluster-3-cluster" 2022-07-15 07:56:45 [✔] all cluster resources were deleted