| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 27 |
| 28 | 29 | 30 | 31 |
- 딥레이서
- Firelens
- Solution Architecture
- 딥레이서 보상함수
- SAA 합격 후기
- github action 사용법
- blue-green
- helm
- LoadBalancer Controller
- Kubernets on Jenkins
- terraform
- 그라파나 대시보드
- 솔데스크
- 쿠버네티스
- 깃허브 액션
- AWS 딥레이서
- livenessPorbe
- Aurora cluster
- kubernetes 동작 원리
- EKS 클러스터
- EFS CSI Driver
- 그라파나 시각화
- jenkins
- 쿠버네티스 컴포넌트
- headless service
- Kubernetes
- 로드밸런서 컨트롤러
- Prometheus install
- grafana on kubernetes
- 메탈LB
mingming
EKS 클러스터 배포하기 (eksctl 명령어) 본문
EKS 클러스터 배포하는 방법엔 여러가지가 있는데 총 세가지를 소개해보려고 합니다 .
1. eksctl 명령어를 통한 클러스터 배포
2. 클러스터 컨피그 파일 작성후 배포하기
3. 테라폼으로 배포하기
이 글에선 1번 , 2번 방법으로 배포하는 방법을 알아보려고 합니다.
[ EKS ]
Amazon Elastic Kubernetes Service(Amazon EKS)는 자체 Kubernetes 컨트롤 플레인 또는 노드를 설치, 운영 및 유지 관리할 필요 없이 AWS의 Kubernetes 실행에 사용할 수 있는 관리형 서비스입니다. Kubernetes는 컨테이너화된 애플리케이션의 배포, 확장, 관리를 자동화하기 위한 오픈 소스 시스템입니다.
[ 실습환경 ]
OS : Amazon linux
Instance Type : t2.micro
[ 사전 준비사항 ]
1. AWS CLI 설치
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
export PATH=/usr/local/bin:$PATH
source ~/.bash_profile
버전 확인
aws --version
2. Kubectl 설치
kubectl 설치
sudo curl -o /usr/local/bin/kubectl \
https://s3.us-west-2.amazonaws.com/amazon-eks/1.23.13/2022-10-31/bin/linux/amd64/kubectl
실행권한 부여
sudo chmod +x /usr/local/bin/kubectl
버전 확인
kubectl version --client=true --short=true
3. bash-completion 설치하기
sudo yum install -y bash-completion
4. eksctl 설치하기
curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
sudo mv -v /tmp/eksctl /usr/local/bin
버전 확인
eksctl version
[ eks cluster 배포 ]
1. eksctl 명령어를 통한 배포
클러스터 배포하기
eksctl create cluster --name <cluster_name> --version 1.24 \
--region ap-northeast-2 \
--nodegroup-name linux-noded \
--nodes 2 --nodes-min 1 --nodes-max 4 \
--ssh-access --ssh-public-key <Key_name> --node-type t3.small --managed
eksctl 명령어로 간단하게 클러스터를 배포할 수 있습니다. <cluster_name> 과 <Key_name> 부분에
실제 사용할 클러스터 이름과 ssh key name을 입력하시면 됩니다.
해당 명령어를 입력하면 클라우드 포메이션에 eks cluster 스택이 생성됩니다.


클러스터 삭제하기
eksctl delete cluster --name <cluster_name>
2. 클러스터 컨피그 파일 작성후 배포하기
클러스터컨피그 파일 생성하기
cat << EOF > eks-demo-cluster.yaml
---
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: eks-demo # 생성할 EKS 클러스터명
region: ap-northeast-2 # 클러스터를 생성할 리전
version: "1.23"
vpc:
cidr: "10.0.0.0/16" # 클러스터에서 사용할 VPC의 CIDR
nat:
gateway: HighlyAvailable
managedNodeGroups:
- name: node-group # 클러스터의 노드 그룹명
instanceType: t3.small # 클러스터 워커 노드의 인스턴스 타입
desiredCapacity: 3 # 클러스터 워커 노드의 갯수
volumeSize: 20 # 클러스터 워커 노드의 EBS 용량 (단위: GiB)
privateNetworking: true
ssh:
enableSsm: true
iam:
withAddonPolicies:
imageBuilder: true # Amazon ECR에 대한 권한 추가
albIngress: true # albIngress에 대한 권한 추가
cloudWatch: true # cloudWatch에 대한 권한 추가
autoScaler: true # auto scaling에 대한 권한 추가
ebs: true # EBS CSI Driver에 대한 권한 추가
cloudWatch:
clusterLogging:
enableTypes: ["*"]
iam:
withOIDC: true
EOF
생성한 클러스터 컨피그 파일 배포하기
eksctl create cluster -f eks-demo-cluster.yaml
클러스터 삭제하기
eksctl delete -f eks-demo-cluster.yaml
클러스터 배포 결과

생성이 완료되면 kubernetes 객체에 엑세스 할 수 없습니다. 라는 문구가 나오는데 이걸 해결해보도록 하겠습니다.
콘솔에 접근할 수있는 credential 추가
kubectl edit configmap aws-auth -n kube-system
mapRoles: 하단에 아래내용 추가
- groups:
- system:masters
rolearn: arn:aws:iam::AWS본인계정ID:root
username: admin
해당 작업을 완료하고 나면 콘솔에서 클러스터 정보를 조회할 수 있습니다.
이상으로 글을 마치겠습니다. 다음 글은 terraform을 통한 EKS 클러스터 배포에 관한 글일것 같습니다.
해당 내용은 AWS Workshop 내용을 기반으로 작성하였습니다.
'kubernetes' 카테고리의 다른 글
| Kubernetes 컴포넌트 (0) | 2023.08.14 |
|---|---|
| kubernetes 동작원리 (1) | 2023.08.13 |
| kubernetes 연습장 (0) | 2023.08.13 |
| EKS 클러스터 배포하기 (Terraform) (0) | 2023.08.11 |
| Kubernetes 설치하기 (Ubuntu 20.04) (0) | 2023.08.08 |