EKS 핸즈온 : 클러스터 생성
목차는 이쪽
EKS 핸즈온 : 목차
TL;DR
첫 번째 단계 EKS 클러스터를 만듭니다.
클러스터는 eksctl을 사용하여 생성됩니다.
클라이언트는 환경 의존성을 최대한 제거하기 위해 Cloud9를 사용합니다.
클라이언트 환경 정비
Cloud9 시작
첫 번째 단계 EKS 클러스터를 만듭니다.
클러스터는 eksctl을 사용하여 생성됩니다.
클라이언트는 환경 의존성을 최대한 제거하기 위해 Cloud9를 사용합니다.
클라이언트 환경 정비
Cloud9 시작
-에서 기존 VPC/Subnet도 선택할 수 있고, 신규 VPC도 만들 수 있습니다만, 외부에서 액세스 가능한 public subnet을 선택하면 어느 쪽이라도 좋다고 생각합니다.
보충
Cloud9에 EKS 관련 도구 다운로드
kubectl 설치
클러스터 인증 관리 를 참고로 합니다.
# 最新のバイナリでない可能性があるので、実行される場合はあその都度URLを確認したほうがいいと思います
curl -o kubectl https://amazon-eks.s3-us-west-2.amazonaws.com/1.11.5/2018-12-06/bin/linux/amd64/kubectl
chmod +x ./kubectl
mkdir $HOME/bin && cp ./kubectl $HOME/bin/kubectl && export PATH=$HOME/bin:$PATH
echo 'export PATH=$HOME/bin:$PATH' >> ~/.bashrc
#インストールされたことを確認します。タイミングによってはバージョンは異なるかもしれません
kubectl version --short --client
Client Version: v1.11.5
aws-iam-authenticator 설치
# 同様に上記リンクより、最新のURLを確認したほうがいいと思います
curl -o aws-iam-authenticator https://amazon-eks.s3-us-west-2.amazonaws.com/1.11.5/2018-12-06/bin/linux/amd64/aws-iam-authenticator
chmod +x ./aws-iam-authenticator
cp ./aws-iam-authenticator $HOME/bin/aws-iam-authenticator && export PATH=$HOME/bin:$PATH
echo 'export PATH=$HOME/bin:$PATH' >> ~/.bashrc
#インストールされたことを確認します。
aws-iam-authenticator help
## こんな感じでhelpが表示されればOKです
A tool to authenticate to Kubernetes using AWS IAM credentials
Usage:
aws-iam-authenticator [command]
Available Commands:
help Help about any command
init Pre-generate certificate, private key, and kubeconfig files for the server.
server Run a webhook validation server suitable that validates tokens using AWS IAM
token Authenticate using AWS IAM and get token for Kubernetes
verify Verify a token for debugging purpose
version Version will output the current build information
Flags:
-i, --cluster-id ID Specify the cluster ID, a unique-per-cluster identifier for your aws-iam-authenticator installation.
-c, --config filename Load configuration from filename
-h, --help help for aws-iam-authenticator
-l, --log-format string Specify log format to use when logging to stderr [text or json] (default "text")
Use "aws-iam-authenticator [command] --help" for more information about a command.
eksctl 설치
여기 를 참고했습니다.
curl --silent --location "https://github.com/weaveworks/eksctl/releases/download/latest_release/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
sudo mv /tmp/eksctl /usr/local/bin
#インストールされたことを確認します
eksctl --help
a CLI for Amazon EKS
EKS 클러스터 만들기
eksctl create cluster --name=test-cluster --node-type=t2.large --nodes=2
# こんな感じの出力が表示されます
[ℹ] using region us-west-2
[ℹ] setting availability zones to [us-west-2a us-west-2b us-west-2d]
[ℹ] subnets for us-west-2a - public:192.168.0.0/19 private:192.168.96.0/19
[ℹ] subnets for us-west-2b - public:192.168.32.0/19 private:192.168.128.0/19
[ℹ] subnets for us-west-2d - public:192.168.64.0/19 private:192.168.160.0/19
[ℹ] nodegroup "ng-7bc19846" will use "ami-0923e4b35a30a5f53" [AmazonLinux2/1.12]
[ℹ] creating EKS cluster "test-cluster" in "us-west-2" region
[ℹ] will create 2 separate CloudFormation stacks for cluster itself and the initial nodegroup
[ℹ] if you encounter any issues, check CloudFormation console or try 'eksctl utils describe-stacks --region=us-west-2 --name=test-cluster'
[ℹ] 2 sequential tasks: { create cluster control plane "test-cluster", create nodegroup "ng-7bc19846" }
[ℹ] building cluster stack "eksctl-test-cluster-cluster"
[ℹ] deploying stack "eksctl-test-cluster-cluster"
[ℹ] buildings nodegroup stack "eksctl-test-cluster-nodegroup-ng-7bc19846"
[ℹ] --nodes-min=2 was set automatically for nodegroup ng-7bc19846
[ℹ] --nodes-max=2 was set automatically for nodegroup ng-7bc19846
[ℹ] deploying stack "eksctl-test-cluster-nodegroup-ng-7bc19846"
[✔] all EKS cluster resource for "test-cluster" had been created
[✔] saved kubeconfig as "/home/ec2-user/.kube/config"
[ℹ] adding role "arn:aws:iam::748762807827:role/eksctl-test-cluster-nodegroup-ng-NodeInstanceRole-PBAU38LJJM31" to auth ConfigMap
[ℹ] nodegroup "ng-7bc19846" has 0 node(s)
[ℹ] waiting for at least 2 node(s) to become ready in "ng-7bc19846"
[ℹ] nodegroup "ng-7bc19846" has 2 node(s)
[ℹ] node "ip-192-168-26-104.us-west-2.compute.internal" is ready
[ℹ] node "ip-192-168-56-26.us-west-2.compute.internal" is ready
[ℹ] kubectl command should work with "/home/ec2-user/.kube/config", try 'kubectl get nodes'
[✔] EKS cluster "test-cluster" in "us-west-2" region is ready
보충
실제 상황은 CloudFormation이므로 관리 콘솔에서 확인하면 다음과 같이 리소스가 생성되었음을 알 수 있습니다.
조금 시간이 걸리므로 완료할 때까지 기다리자.
클러스터가 생성되었는지 확인
[✔] EKS cluster "test-cluster"in "us-west-2"region is ready
라는 것이 표시되면 작성 완료입니다. 즉시 확인합시다.
# worker node を確認するコマンドを実行します
kubectl get nodes
NAME STATUS ROLES AGE VERSION
ip-192-168-26-104.us-west-2.compute.internal Ready <none> 13m v1.12.7
ip-192-168-56-26.us-west-2.compute.internal Ready <none> 12m v1.12.7
#2台作成したので、ちゃんと2台作成されていますね
요약
cloud9의 시작 ~ EKS 클러스터 + worker node의 작성까지 실시했습니다.
다음 기사에서는 실제로 컨테이너를 만들려고합니다.
(선택 사항) 환경 삭제
다음 기사를 쓸 때까지 환경을 시작하지 않으면 돈이 걸려 버리므로, 그것이 싫은 분(아마 모두?)은 환경을 삭제합시다. 필요할 때 다시 만들어야 합니다.
# クラスターの削除コマンド
eksctl delete cluster --name=test-cluster
[ℹ] using region us-west-2
[ℹ] deleting EKS cluster "test-cluster"
[✔] kubeconfig has been updated
[ℹ] 2 sequential tasks: { delete nodegroup "ng-7c2bd618", delete cluster control plane "test-cluster" [async] }
[ℹ] will delete stack "eksctl-test-cluster-nodegroup-ng-7c2bd618"
[ℹ] waiting for stack "eksctl-test-cluster-nodegroup-ng-7c2bd618" to get deleted
[ℹ] will delete stack "eksctl-test-cluster-cluster"
[✔] all cluster resources were deleted
cloudformation 템플릿도 잠시 지나면 삭제됩니다.
이를 위해 cloudformation의 관리 콘솔에서 리소스가 완전히 삭제되었는지 확인하는 것이 더 확실합니다.
그런 다음 cloud9 삭제는 Cloud9 관리 콘솔에서 삭제할 수 있습니다.
다만, 브라우저를 닫고 30분 후에 자동 정지하기 때문에, 무료 테두리가 남아 있는 경우는 거의 돈은 들지 않기 때문에, 그대로 두는 것도 있을까 생각합니다.
# worker node を確認するコマンドを実行します
kubectl get nodes
NAME STATUS ROLES AGE VERSION
ip-192-168-26-104.us-west-2.compute.internal Ready <none> 13m v1.12.7
ip-192-168-56-26.us-west-2.compute.internal Ready <none> 12m v1.12.7
#2台作成したので、ちゃんと2台作成されていますね
cloud9의 시작 ~ EKS 클러스터 + worker node의 작성까지 실시했습니다.
다음 기사에서는 실제로 컨테이너를 만들려고합니다.
(선택 사항) 환경 삭제
다음 기사를 쓸 때까지 환경을 시작하지 않으면 돈이 걸려 버리므로, 그것이 싫은 분(아마 모두?)은 환경을 삭제합시다. 필요할 때 다시 만들어야 합니다.
# クラスターの削除コマンド
eksctl delete cluster --name=test-cluster
[ℹ] using region us-west-2
[ℹ] deleting EKS cluster "test-cluster"
[✔] kubeconfig has been updated
[ℹ] 2 sequential tasks: { delete nodegroup "ng-7c2bd618", delete cluster control plane "test-cluster" [async] }
[ℹ] will delete stack "eksctl-test-cluster-nodegroup-ng-7c2bd618"
[ℹ] waiting for stack "eksctl-test-cluster-nodegroup-ng-7c2bd618" to get deleted
[ℹ] will delete stack "eksctl-test-cluster-cluster"
[✔] all cluster resources were deleted
cloudformation 템플릿도 잠시 지나면 삭제됩니다.
이를 위해 cloudformation의 관리 콘솔에서 리소스가 완전히 삭제되었는지 확인하는 것이 더 확실합니다.
그런 다음 cloud9 삭제는 Cloud9 관리 콘솔에서 삭제할 수 있습니다.
다만, 브라우저를 닫고 30분 후에 자동 정지하기 때문에, 무료 테두리가 남아 있는 경우는 거의 돈은 들지 않기 때문에, 그대로 두는 것도 있을까 생각합니다.
# クラスターの削除コマンド
eksctl delete cluster --name=test-cluster
[ℹ] using region us-west-2
[ℹ] deleting EKS cluster "test-cluster"
[✔] kubeconfig has been updated
[ℹ] 2 sequential tasks: { delete nodegroup "ng-7c2bd618", delete cluster control plane "test-cluster" [async] }
[ℹ] will delete stack "eksctl-test-cluster-nodegroup-ng-7c2bd618"
[ℹ] waiting for stack "eksctl-test-cluster-nodegroup-ng-7c2bd618" to get deleted
[ℹ] will delete stack "eksctl-test-cluster-cluster"
[✔] all cluster resources were deleted
Reference
이 문제에 관하여(EKS 핸즈온 : 클러스터 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/asahi0301/items/62f4b7949a7bf8457258텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)