eksctl을 사용하여 EKS 클러스터 생성
4850 단어 awskubernetes
공식 문서에서 Amazon Elastic Kubernetes Service(EKS)는 AWS 클라우드에서 Kubernetes를 실행하기 위한 관리형 Kubernetes 서비스입니다. 클라우드에서 Amazon EKS는 컨테이너 예약, 애플리케이션 가용성 관리, 클러스터 데이터 저장 및 기타 주요 작업을 담당하는 Kubernetes 제어 플레인 노드의 가용성과 확장성을 자동으로 관리합니다. Amazon EKS를 사용하면 AWS 인프라의 모든 성능, 규모, 안정성 및 가용성은 물론 AWS 네트워킹 및 보안 서비스와의 통합을 활용할 수 있습니다.
참조: https://aws.amazon.com/eks/
eksctl은 Amazon EKS의 공식 CLI입니다. Amazon의 EC2용 관리형 Kubernetes 서비스인 EKS에서 클러스터를 생성하고 관리하기 위한 간단한 CLI 도구입니다. Go로 작성되었으며 CloudFormation을 사용하고 Weaveworks에서 만들었습니다.
참조: https://eksctl.io/
여기서 로컬 환경 설정에 사용된 Linux 배포판은 Ubuntu 20.04입니다.
필수 도구를 설치합니다.
$ sudo apt update
$ sudo apt install curl unzip
AWS CLI를 다운로드하고 설치합니다.
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
$ unzip awscliv2.zip
$ ./aws/install -i /usr/local/aws-cli -b /usr/local/bin
$ aws --version
eksctl을 다운로드하고 설치합니다.
$ curl --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C $PWD
$ sudo install eksctl /usr/local/bin/eksctl
$ eksctl version
kubectl을 다운로드하고 설치합니다.
$ curl -LO https://dl.k8s.io/release/v1.23.7/bin/linux/amd64/kubectl
$ sudo install kubectl /usr/local/bin/kubectl
$ kubectl version --client
액세스 키, 비밀 키, 리전 및 출력 형식으로 AWS CLI를 구성합니다.
$ aws configure
AWS Access Key ID [None]: xxxxxx
AWS Secret Access Key [None]: xxxxxx
Default region name [None]: us-east-1
Default output format [None]: yaml
아래 구성 파일을 사용하여 클러스터를 생성합니다.
클러스터 생성을 완료하는 데 약 15분이 소요됩니다.
$ cat dev-eks.yml
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: dev-cluster
region: us-east-1
version: "1.23"
vpc:
cidr: 10.0.0.0/16
managedNodeGroups:
- name: dev-node
amiFamily: Ubuntu2004
instanceType: t3.micro
desiredCapacity: 2
$ eksctl create cluster -f dev-eks.yml
위의 클러스터 생성 명령을 실행하면 백엔드에서 CloudFormation을 사용하여 필요한 리소스를 생성합니다. 아래 이미지에서 컨트롤 플레인과 노드 그룹을 프로비저닝하기 위해 생성된 두 개의 CloudFormation 스택을 볼 수 있습니다.
EKS 콘솔에서 클러스터 상태를 볼 수 있으며 활성 상태이고 모든 노드가 준비 상태에 있습니다.
워크로드 배포를 위해 클러스터에 연결합니다.
$ aws eks --region us-east-1 update-kubeconfig --name dev-cluster
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
ip-10-0-26-165.ec2.internal Ready <none> 18m v1.23.7
ip-10-0-34-91.ec2.internal Ready <none> 18m v1.23.7
Nginx 포드를 생성하고 상태를 확인합니다.
$ kubectl run nginx --image=nginx:1.23 --port 80
pod/nginx created
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx 1/1 Running 0 64s
Nginx 포드를 LoadBalancer 서비스에 노출합니다.
$ kubectl expose pod nginx --name=nginx-lb --port=80 --target-port=80 --type=LoadBalancer
service/nginx-lb exposed
$ kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 172.20.0.1 <none> 443/TCP 35m
nginx-lb LoadBalancer 172.20.61.15 a9afa907a47bb4ec3b77cb2d59663b49-598454773.us-east-1.elb.amazonaws.com 80:32165/TCP 41s
EXTERNAL-IP 섹션에 있는 URL을 복사하고 브라우저에서 확인하십시오.
eksctl 명령을 사용하여 클러스터를 삭제할 수도 있습니다.
$ eksctl delete cluster -f dev-eks.yml --wait
지금은 그게 다야, 고마워!
Reference
이 문제에 관하여(eksctl을 사용하여 EKS 클러스터 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/iamunnip/creating-an-eks-cluster-using-eksctl-5ef5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)