티스토리 뷰
1.EKSCTL
1) kubectlEKS 클러스터 구축 및 관리를 하기 위한 오픈소스 명령줄 도구 : 사용을 위해 사전 설치 필요
2) EKS 배포시 CloudFormation을 이용해서 배포
3) AWS에서 직접 제공하는 것은 아니지만, 공식적으로 지원하는 관리 도구이며, EKS 외 다른 리소스에 대한 관리 불가
4) 기본 설치시
- VPC CNI plugin for K8s, kube-froxy, CoreDNS와 같은 자체 관리형 추가 기능을 자동으로 함께 설치
- VPC : 3개의 AZ에 6개의 subnet, 1개의 NAT GW, IGW 설치
2. 목표 구성도
1) 가장 간소화된 환경 : 2개의 AZ, 4개의 Subnet 구성
1단계. CloudFormation을 이용하여 EKS 생성을 위한 작업용 EC2를 PrivateSubnet에 배포
1) CloudFormation : Template
- CusterBaseName: EKS 클러스터의 기본 이름 (생성되는 리소스들의 주석에 접두어로 활용)
- KeyName: EC2 접속에 사용하는 SSH 키페어
- SgIngressSshCidr: EKSCTL 작업을 수행할 EC2 인스턴스를 접속할 수 있는 IP 주소 입력 - Bastion 접속용 보안그룹
- MyInstanceType: EKSCTL 작업을 수행할 EC2 인스턴스의 타입
2단계 : 배포된 작업용 EC2에 SSH로 접근하여 EKS 클러스터 배포
1) EC2에 접근하여 설치 정보 확인
2) AWS Configure로 AWS 환경 정보 입력
3) EKSCTL에서 사용할 기본 환경 변수 지정
4) EKSCTL을 이용하여 배포 시작
5) 약 15~20분 후 배포 완료
3단계. 배포 확인
- aws ec2 describe-instances --query "Reservations[*].Instances[*].{PublicIPAdd:PublicIpAddress,PrivateIPAdd:PrivateIpAddress,InstanceName:Tags[?Key=='Name']|[0].Value,Status:State.Name}" --filters Name=instance-state-name,Values=running --output table
- kubectl cluster-info
- aws eks describe-cluster --name $CLUSTER_NAME | jq -r .cluster.endpoint
- eksctl get nodegroup --cluster $CLUSTER_NAME --name $CLUSTER_NAME-nodegroup
- kubectl describe nodes | grep "node.kubernetes.io/instance-type"
- kubectl get node -owide
- kubectl get node -v=6
- kubectl get pod -n kube-system -o wide
- kubectl get pod -A
4단계. Test APP 배포 - 슈퍼마리오
- curl -s -O https://raw.githubusercontent.com/gasida/PKOS/main/1/mario.yaml
- kubectl apply -f mario.yaml
- cat mario.yaml | yh
- kubectl get deploy,svc,ep mario
5단계. EKS 구성 삭제 : 배포된 EKS 클러스터 삭제 후 CloudFormation 삭제
- eksctl delete cluster --name $CLUSTER_NAME
- aws cloudformation delete-stack --stack-name myeks
-----------------------------------------------------------------------------------------------
이 내용은 AEWS(AWS EKS Workshop Study) 1기의 과제로써 작성되었습니다.
AEWS는 '가시다'님이 속한 CloudNet@에서 진행하는 AWS EKS workshop에 대한 스터디입니다.
매주 일요일마다 소중한 정보를 퍼주시는 '가시다'님께 무한 감사 드립니다.
https://gasidaseo.notion.site/23-AWS-EKS-Workshop-07165aec800042b9ac9357aee18fdf17
'에디.Container' 카테고리의 다른 글
AEWS 2주차. EKS Networking - 실습 (0) | 2023.05.04 |
---|---|
AEWS 2주차. EKS Networking (0) | 2023.05.03 |
AEWS 1주차. Amazon EKS 설치 및 기본 사용 (0) | 2023.04.27 |
Calico의 Overlay 네트워킹 (0) | 2021.12.26 |
PAUSE 컨테이너 (0) | 2021.11.25 |