본문 바로가기
AWS/EKS

AWS EKS 생성하기

by aws-evan 2024. 11. 7.
반응형

 



 

  • 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

 

Understand the Kubernetes version lifecycle on EKS - Amazon EKS

If you update the control plane, you must still update the Fargate nodes yourself. To update Fargate nodes, delete the Fargate Pod represented by the node and redeploy the Pod. The new Pod is deployed with a kubelet version that’s the same version as you

docs.aws.amazon.com

 

 

 

  • 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

 

Amazon EKS 클러스터에 대한 Amazon VPC 생성 - Amazon EKS

이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.

docs.aws.amazon.com

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

댓글