Amazon EKS 클러스터 설정 - Amazon EMR

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon EKS 클러스터 설정

Amazon EKS는 자체 Kubernetes 컨트롤 플레인 또는 노드를 설치, 운영 및 유지 관리할 필요 AWS 없이 Kubernetes를 쉽게 실행할 수 있는 관리형 서비스입니다. Amazon EKS에서 노드와 함께 새 Kubernetes 클러스터를 생성하려면 아래 설명된 단계를 따릅니다.

필수 조건

중요

Amazon EKS 클러스터를 생성하기 전에 Amazon EKS 사용 설명서에서 Amazon EKS VPC 및 서브넷 요구 사항과 고려 사항을 완료하여 Amazon EKS 클러스터가 예상대로 작동하고 조정되는지 확인합니다.

Amazon EKS 클러스터를 생성하고 관리할 때 필요한 다음 도구 및 리소스를 설치하고 구성해야 합니다.

  • 의 최신 버전입니다. AWS CLI

  • kubectl 버전 1.20 이상.

  • eksctl의 최신 버전.

자세한 내용은 설치 AWS CLI, kubectl 설치, eksctl 설치 섹션을 참조하세요.

eksctl을 사용하여 Amazon EKS 클러스터 생성

다음 단계를 수행하여 eksctl을 사용해 Amazon EKS 클러스터를 생성합니다.

중요

빨리 시작하려면 EKS 클러스터와 노드를 기본 설정으로 생성할 수 있습니다. 그러나 프로덕션 용도로 특정 요구 사항을 충족하도록 클러스터와 노드에 대한 설정을 사용자 지정하는 것이 좋습니다. 모든 설정 및 옵션 목록을 보려면 eksctl create cluster -h 명령을 실행합니다. 자세한 내용은 eksctl 설명서에서 Creating and Managing Clusters를 참조하세요.

  1. Amazon EC2 키 페어를 생성합니다.

    기존 키 페어가 없는 경우 다음 명령을 실행하여 새 키 페어를 생성할 수 있습니다. us-west-2를 클러스터를 생성할 리전으로 바꿉니다.

    aws ec2 create-key-pair --region us-west-2 --key-name myKeyPair

    반환된 출력을 로컬 컴퓨터의 파일에 저장합니다. 자세한 내용은 Linux 인스턴스용 Amazon EC2 사용 설명서에서 키 페어 생성 또는 가져오기 섹션을 참조하세요.

    참고

    EKS 클러스터를 생성하는 데 키 페어는 필요하지 않습니다. 하지만 키를 지정하면 노드를 생성할 때 해당 노드에 SSH로 연결할 수 있습니다. 노드 그룹을 생성할 때만 키 페어를 지정할 수 있습니다.

  2. EKS 클러스터를 생성합니다.

    다음 명령을 실행하여 EKS 클러스터 및 노드를 생성합니다. my-cluster 를 자체 클러스터 이름 및 myKeyPair키 페어 이름으로 바꾸십시오. us-west-2를 클러스터를 생성할 리전으로 바꿉니다. Amazon EKS 지원 리전에 대한 자세한 내용은 Amazon Elastic Kubernetes Service endpoints and quotas를 참조하세요.

    eksctl create cluster \ --name my-cluster \ --region us-west-2 \ --with-oidc \ --ssh-access \ --ssh-public-key myKeyPair \ --instance-types=m5.xlarge \ --managed
    중요

    EKS 클러스터를 생성할 때 m5.xlarge를 인스턴스 유형으로 사용하거나 CPU와 메모리가 더 큰 다른 인스턴스 유형으로 사용합니다. m5.xlarge보다 CPU 또는 메모리가 더 적은 인스턴스 유형을 사용하면 클러스터에서 사용 가능한 리소스가 부족하여 작업이 실패할 수 있습니다. 생성된 모든 리소스를 보려면 AWS CloudFormation 콘솔에서 eksctl-my-cluster-cluster라는 스택을 확인합니다.

    클러스터 및 노드 생성에는 몇 분 정도 걸립니다. 클러스터 및 노드가 생성되면 여러 줄의 출력이 표시됩니다. 다음 예제에서는 출력의 마지막 줄을 보여줍니다.

    ... [✓] EKS cluster "my-cluster" in "us-west-2" region is ready

    eksctl~/.kubekubectl 구성 파일을 생성했거나 ~/.kube의 기존 파일에 새 클러스터의 구성을 추가했습니다.

  3. 리소스 보기 및 검증

    다음 명령을 실행하여 클러스터 노드를 확인합니다.

    kubectl get nodes -o wide

    다음은 출력 예제입니다.

    Amazon EC2 node output NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME ip-192-168-12-49.us-west-2.compute.internal Ready none 6m7s v1.18.9-eks-d1db3c 192.168.12.49 52.35.116.65 Amazon Linux 2 4.14.209-160.335.amzn2.x86_64 docker://19.3.6 ip-192-168-72-129.us-west-2.compute.internal Ready none 6m4s v1.18.9-eks-d1db3c 192.168.72.129 44.242.140.21 Amazon Linux 2 4.14.209-160.335.amzn2.x86_64 docker://19.3.6

    자세한 내용은 노드 보기를 참조하세요.

    다음 명령을 사용하여 클러스터에서 실행 중인 워크로드를 봅니다.

    kubectl get pods --all-namespaces -o wide

    다음은 출력 예제입니다.

    Amazon EC2 output NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES kube-system aws-node-6ctpm 1/1 Running 0 7m43s 192.168.72.129 ip-192-168-72-129.us-west-2.compute.internal none none kube-system aws-node-cbntg 1/1 Running 0 7m46s 192.168.12.49 ip-192-168-12-49.us-west-2.compute.internal none none kube-system coredns-559b5db75d-26t47 1/1 Running 0 14m 192.168.78.81 ip-192-168-72-129.us-west-2.compute.internal none none kube-system coredns-559b5db75d-9rvnk 1/1 Running 0 14m 192.168.29.248 ip-192-168-12-49.us-west-2.compute.internal none none kube-system kube-proxy-l8pbd 1/1 Running 0 7m46s 192.168.12.49 ip-192-168-12-49.us-west-2.compute.internal none none kube-system kube-proxy-zh85h 1/1 Running 0 7m43s 192.168.72.129 ip-192-168-72-129.us-west-2.compute.internal none none

    여기에 표시되는 항목에 대한 자세한 내용은 워크로드 보기를 참조하세요.

및 를 사용하여 EKS 클러스터를 생성합니다. AWS Management ConsoleAWS CLI

AWS Management Console 및 를 사용하여 EKS AWS CLI 클러스터를 생성할 수도 있습니다. Amazon EKS AWS Management Console 시작하기—의 단계를 따르십시오. AWS CLI그러면 각 리소스가 생성되는 방식과 리소스가 상호 작용하는 방식을 완벽하게 파악할 수 있습니다.

중요

EKS 클러스터에 대한 노드를 생성할 때 m5.xlarge를 인스턴스 유형으로 사용하거나 CPU와 메모리가 더 큰 다른 인스턴스 유형으로 사용합니다.

AWS Fargate에서 EKS 클러스터 생성

AWS Fargate에서 포드가 실행되는 EKS 클러스터를 생성할 수도 있습니다.

  1. Fargate에서 실행되는 포드로 EKS 클러스터를 생성하려면 Amazon EKS 사용 시작하기에 설명된 단계를 따르십시오. AWS Fargate

    참고

    EKS 클러스터에서 작업을 실행하려면 Amazon EMR on EKS에 CoreDNS가 필요합니다. Fargate에서만 포드를 실행하려면 CoreDNS 업데이트 단계를 따라야 합니다.

  2. 다음 명령을 실행하여 클러스터 노드를 확인합니다.

    kubectl get nodes -o wide

    다음은 Fargate 출력 예제입니다.

    Fargate node output NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME fargate-ip-192-168-141-147.us-west-2.compute.internal Ready none 8m3s v1.18.8-eks-7c9bda 192.168.141.147 none Amazon Linux 2 4.14.209-160.335.amzn2.x86_64 containerd://1.3.2 fargate-ip-192-168-164-53.us-west-2.compute.internal Ready none 7m30s v1.18.8-eks-7c9bda 192.168.164.53 none Amazon Linux 2 4.14.209-160.335.amzn2.x86_64 containerd://1.3.2

    자세한 내용은 노드 보기를 참조하세요.

  3. 다음 명령을 실행하여 클러스터에서 실행 중인 워크로드를 봅니다.

    kubectl get pods --all-namespaces -o wide

    다음은 Fargate 출력 예제입니다.

    Fargate output NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES kube-system coredns-69dfb8f894-9z95l 1/1 Running 0 18m 192.168.164.53 fargate-ip-192-168-164-53.us-west-2.compute.internal none none kube-system coredns-69dfb8f894-c8v66 1/1 Running 0 18m 192.168.141.147 fargate-ip-192-168-141-147.us-west-2.compute.internal none none

    자세한 내용은 워크로드 보기를 참조하세요.