반응형
- AWS EKS
- Amazon Web Services에서 제공하는 관리형 Kubernetes 서비스
- kubectl : Kubernetes 클러스터와 상호작용하는 명령줄 인터페이스(CLI) 도구입니다. Kubernetes 클러스터의 리소스를 관리하고, 클러스터 상태를 모니터링하며, 애플리케이션을 배포하는 데 사용
- Control Plane
- Scheduler : 예약되지 않은 파드(pod)를 어떤 노드에 배치할지 결정하는 역할을 합니다
- etcd : 분산형 키-값 저장소로, Kubernetes 클러스터의 모든 데이터를 저장하는 역할
- Controller Manager : 클러스터의 상태를 관리하는 여러 컨트롤러들을 실행하는 역할
- API Server : Kubernetes의 API를 외부에 노출하는 중앙 서버, 러스터의 상태를 조회하거나 자원을 배포하는 등의 작업이 API 서버를 통해 이루어집니다
- Node
- kubelet : 클러스터 내 모든 노드에서 실행되는 에이전트입니다. 각 노드에서 파드가 실행될 수 있도록 관리하고, 파드와 컨테이너의 상태를 Kubernetes API 서버에 보고하는 역할
- pod : Kubernetes에서 실행되는 가장 작은 단위의 작업 단위
- kube-proxy : 노드에서 네트워크 규칙을 관리하고, 서비스에 대한 트래픽을 적절한 파드로 라우팅하는 역할
- AWS EKS 수명주기
https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html
- AWS EKS 설치 방법 종류
- AWS Console 활용
- aws cloudshell -> eksctl (활용) / cloud9 서비스 종료
- aws cloudformation
- terraform
- rancher
- AWS EKS 설치를 위한 사전 준비 사항
- VPC
- IAM
- eksctl
- kubectl
- EKS용 VPC 생성
- cloudformation 활용
- VPC 정보
- VPC CIDR : 192.168.0.0/16
- Public Subnet : 192.168.0.0/18 , 192.168.64.0/18
- Private Subnet : 192.168.128.0/18 , 192.168.192.0/18
https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/creating-a-vpc.html
https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2020-10-29/amazon-eks-vpc-private-subnets.yaml
- EKS IAM 생성
cat >eks-cluster-role-trust-policy.json <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "eks.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
EOF
- Amazon EKS 클러스터 IAM Role 생성
aws iam create-role --role-name myAmazonEKSClusterRole --assume-role-policy-document file://"eks-cluster-role-trust-policy.json"
- 생성된 IAM Role에 IAM Policy 연결
- AmazonEKSClusterPolicy Policy 추가
aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/AmazonEKSClusterPolicy --role-name myAmazonEKSClusterRole
- ekstctl
ARCH=amd64
PLATFORM=$(uname -s)_$ARCH
curl -sLO "https://github.com/eksctl-io/eksctl/releases/latest/download/eksctl_$PLATFORM.tar.gz"
tar -xzf eksctl_$PLATFORM.tar.gz -C /tmp && rm eksctl_$PLATFORM.tar.gz
sudo mv /tmp/eksctl /usr/local/bin
eksctl version
- kubectl 설치
- eks 리소스 확인을 위함
curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/1.31.0/2024-09-12/bin/darwin/amd64/kubectl
- AWS EKS 설치(Controll Plane만 설치)
- 약 12~15분 소요
eksctl create cluster \
--name my-cluster \
--region "리전" \
--version "버전" \
--vpc-private-subnets "서브넷ID","서브넷ID" \
--without-nodegroup
eksctl create cluster \
--name my-cluster \
--region ap-northeast-2 \
--version 1.31 \
--vpc-private-subnets subnet-02d956d4b173510b0,subnet-043db24036e8038ec \
--without-nodegroup
- eks config 파일 등록
- kubectl 명령어를 통해 제어하기 위해서는 설정 필요
aws eks --region ap-northeast-2 update-kubeconfig --name my-cluster
- 기존 AWS EKS Cluster -> nodeGroup 추가
eksctl create nodegroup \
--cluster my-cluster \
--region ap-northeast-2 \
--name my-mng \
--node-ami-family AmazonLinux2 \
--node-type t3.medium \
--nodes 3 \
--nodes-min 2 \
--nodes-max 4 \
--ssh-access \
--ssh-public-key my-key \
--subnet-ids subnet-02d956d4b173510b0,subnet-043db24036e8038ec \
--node-private-networking
- AWS EKS 삭제
eksctl delete cluster my-cluster
반응형
'AWS > EKS' 카테고리의 다른 글
AWS EFS CSI Driver 설치 가이드 (0) | 2024.12.01 |
---|---|
AWS EKS EBS CSI Driver (0) | 2024.11.08 |
댓글