Amazon EKS 클러스터 생성 - Amazon EKS

이 페이지 개선에 도움 주기

이 사용자 설명서에 기여하고 싶으신가요? 이 페이지 하단으로 스크롤하여 GitHub에서 이 페이지 편집을 선택하세요. 여러분의 기여는 모두를 위한 더 나은 사용자 설명서를 만드는 데 도움이 됩니다.

Amazon EKS 클러스터 생성

이 주제에서는 사용 가능한 옵션에 대한 개요와 Amazon EKS 클러스터를 생성할 때 고려해야 할 사항을 설명합니다. AWS Outpost에서 클러스터를 생성해야 하는 경우 고가용성을 위해 AWS Outposts에서 로컬 Amazon EKS 클러스터 생성 부분을 참조하세요. Amazon EKS 클러스터를 처음 생성하는 경우 Amazon EKS 시작하기 가이드 중 한 가지를 따르는 것이 좋습니다. 이 가이드를 사용하면 사용 가능한 모든 옵션으로 확장하지 않고 간단한 기본 클러스터를 생성할 수 있습니다.

사전 조건
  • Amazon EKS 요구 사항을 충족하는 기존 VPC 및 서브넷 보유. 프로덕션 용도로 클러스터를 배포하기 전에 VPC 및 서브넷 요구 사항을 충분히 이해하는 것이 좋습니다. VPC 및 서브넷이 없는 경우 Amazon EKS 제공 AWS CloudFormation 템플릿을 사용하여 생성할 수 있습니다.

  • 디바이스 또는 AWS CloudShell에 설치된 kubectl 명령줄 도구. 버전은 클러스터의 Kubernetes 버전과 동일하거나 최대 하나 이전 또는 이후의 마이너 버전일 수 있습니다. 예를 들어 클러스터 버전이 1.30인 경우 kubectl 버전 1.29, 1.30 또는 1.31를 함께 사용할 수 있습니다. kubectl을 설치하거나 업그레이드하려면 kubectl 및 eksctl 설정 부분을 참조하세요.

  • AWS Command Line Interface(AWS CLI) 버전 2.12.3 이상 또는 1.27.160 이상이 디바이스나 AWS CloudShell에 설치 및 구성되어 있습니다. 현재 버전을 확인하려면 aws --version | cut -d / -f2 | cut -d ' ' -f1을 사용합니다. macOS용 yum, apt-get 또는 Homebrew와 같은 패키지 관리자는 최신 버전의 AWS CLI보다 여러 버전 이전인 경우가 많습니다. 최신 버전을 설치하려면 AWS Command Line Interface 사용 설명서의 AWS CLI 설치, 업데이트 및 제거aws configure를 통한 빠른 구성을 참조하세요. AWS CloudShell에 설치된 AWS CLI 버전도 최신 버전보다 여러 버전 이전일 수도 있습니다. 업데이트하려면 AWS CloudShell 사용 설명서의 홈 디렉터리에 AWS CLI 설치를 참조하세요.

  • Amazon EKS 클러스터를 createdescribe 할 수 있는 권한이 있는 IAM 보안 주체. 자세한 내용은 Outpost에서 로컬 Kubernetes 클러스터 생성모든 클러스터 나열 또는 설명 단원을 참조하세요.

Amazon EKS 클러스터 생성하는 방법
  1. 이미 클러스터 IAM 역할이 있거나 eksctl을 사용하여 클러스터를 생성하려는 경우 이 단계를 건너뛸 수 있습니다. 기본적으로 eksctl은 사용자를 위한 역할을 생성합니다.

    Amazon EKS 클러스터 IAM 역할 생성
    1. 다음 명령을 실행하여 IAM 신뢰 정책 JSON 파일을 생성합니다.

      cat >eks-cluster-role-trust-policy.json <<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "eks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } EOF
    2. Amazon EKS 클러스터 IAM 역할을 생성합니다. 필요한 경우 eks-cluster-role-trust-policy.json 앞에 이전 단계에서 파일을 작성한 컴퓨터의 경로를 붙입니다. 명령은 사용자가 이전 단계에서 생성한 신뢰 정책을 역할에 연결합니다. IAM 역할을 생성하려면 역할을 생성하는 IAM 보안 주체에 iam:CreateRole 작업(권한)을 할당해야 합니다.

      aws iam create-role --role-name myAmazonEKSClusterRole --assume-role-policy-document file://"eks-cluster-role-trust-policy.json"
    3. Amazon EKS 관리형 정책을 할당하거나 사용자 지정 정책을 생성할 수 있습니다. 사용자 지정 정책에서 사용해야 하는 최소 권한은 Amazon EKS 클러스터 IAM 역할을(를) 참조하십시오.

      Amazon EKS 관리형 AmazonEKSClusterPolicy를 역할에 연결합니다. IAM 정책을 IAM 보안 주체에 연결하려면 정책을 연결하는 보안 주체에 iam:AttachUserPolicy 또는 iam:AttachRolePolicy의 IAM 작업(권한) 중 하나를 할당해야 합니다.

      aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/AmazonEKSClusterPolicy --role-name myAmazonEKSClusterRole
  2. Amazon EKS 클러스터를 생성합니다.

    eksctl, AWS Management Console 또는 AWS CLI를 사용하여 클러스터를 생성할 수 있습니다.

    eksctl
    전제 조건

    디바이스 또는 0.191.0에 설치된 버전 AWS CloudShell 이상의 eksctl 명령줄 도구. eksctl을 설치 또는 업그레이드하려면 eksctl 설명서에서 Installation을 참조하세요.

    클러스터 생성

    기본 AWS 리전에서 Amazon EKS 기본 Kubernetes 버전으로 Amazon EKS IPv4 클러스터를 생성합니다. 명령을 실행하기 전에 다음과 같은 바꾸기를 합니다.

    • region-code를 클러스터를 생성할 AWS 리전으로 바꿉니다.

    • my-cluster를 클러스터 이름으로 바꿉니다. 이름에는 영숫자(대소문자 구분)와 하이픈만 사용할 수 있습니다. 영숫자로 시작해야 하며 100자 이하여야 합니다. 이름은 클러스터를 생성하는 AWS 리전과 AWS 계정 내에서 고유해야 합니다.

    • 1.31를 모든 Amazon EKS 지원 버전으로 변경합니다.

      참고

      현재 1.31 클러스터를 배포하려면 AWS Management Console 또는 AWS CLI를 사용해야 합니다.

    • 요구 사항을 충족하는 vpc-private-subnets의 값을 변경합니다. 또한 추가 ID를 추가할 수 있습니다. 2개 이상의 서브넷 ID를 지정해야 합니다. 퍼블릭 서브넷을 지정하려는 경우 --vpc-private-subnets--vpc-public-subnets으로 변경할 수 있습니다. 퍼블릭 서브넷에는 인터넷 게이트웨이에 대한 경로가 포함된 연결된 라우팅 테이블이 있지만 프라이빗 서브넷에는 연결된 라우팅 테이블이 없습니다. 가능하면 프라이빗 서브넷을 사용하는 것이 좋습니다.

      선택한 서브넷은 Amazon EKS 서브넷 요구 사항을 충족해야 합니다. 서브넷을 선택하기 전에 Amazon EKS VPC 및 서브넷 요구 사항 및 고려 사항 모두를 숙지하는 것이 좋습니다.

    eksctl create cluster --name my-cluster --region region-code --version 1.31 --vpc-private-subnets subnet-ExampleID1,subnet-ExampleID2 --without-nodegroup

    클러스터 프로비저닝에는 몇 분 정도 걸립니다. 클러스터가 생성되는 동안 여러 줄의 출력이 나타납니다. 출력의 마지막 줄은 다음 예제와 유사합니다.

    [✓] EKS cluster "my-cluster" in "region-code" region is ready
    작은 정보

    eksctl을 사용하여 클러스터를 생성할 때 지정할 수 있는 대부분의 옵션을 보려면 eksctl create cluster --help 명령을 사용합니다. 사용 가능한 옵션을 모두 확인하려면 config 파일을 사용할 수 있습니다. 자세한 내용은 eksctl 설명서에서 config 파일 사용config 파일 스키마 부분을 참조하세요. GitHub에서 구성 파일 예제를 찾을 수 있습니다.

    설정(선택 사항)

    다음은 필요한 경우 이전 명령에 추가해야 하는 선택 가능한 설정입니다. 클러스터 생성 후가 아닌 생성할 때만 이러한 옵션을 사용 설정할 수 없습니다. 이러한 옵션을 지정해야 하는 경우 eksctl 구성 파일을 사용하여 클러스터를 생성한 다음 이전 명령을 사용하지 않고 설정을 지정해야 합니다.

    • 생성하는 네트워크 인터페이스에 Amazon EKS가 할당하는 보안 그룹을 하나 이상 지정하는 경우 securityGroup 옵션을 지정합니다.

      보안 그룹 선택 여부에 관계없이 Amazon EKS는 클러스터와 VPC 간에 통신을 사용 설정할 수 있는 보안 그룹을 생성합니다. Amazon EKS는 이 보안 그룹과 사용자가 선택한 보안 그룹을 생성하는 네트워크 인터페이스에 연결합니다. Amazon EKS에서 생성하는 클러스터 보안 그룹에 대한 자세한 내용을 알아보려면 클러스터에 대한 Amazon EKS 보안 그룹 요구 사항 보기 부분을 참조하세요. Amazon EKS가 생성하는 클러스터 보안 그룹에서 규칙을 수정할 수 있습니다.

    • Kubernetes가 서비스 IP 주소를 할당하는 IPv4 Classless Inter-Domain Routing(CIDR) 블록 Kubernetes를 지정하려는 경우 serviceIPv4CIDR 옵션을 지정합니다.

      자체 범위를 지정하면 VPC에 피어링되거나 연결된 Kubernetes 서비스 및 기타 네트워크 사이의 충돌을 방지할 수 있습니다. CIDR 표기법으로 범위를 입력합니다. 예: 10.2.0.0/16.

      CIDR 블록은 다음 요구 사항을 충족해야 합니다.

      • 다음 범위 10.0.0.0/8, 172.16.0.0/12 또는 192.168.0.0/16 중 하나 내에 있어야 합니다..

      • 최소 크기는 /24고 최대 크기는 /12입니다.

      • Amazon EKS 리소스의 VPC 범위와 겹치지 않습니다.

      이 옵션은 IPv4 주소 패밀리를 사용할 때 및 클러스터 생성 시에만 지정할 수 있습니다. 이 옵션을 지정하지 않은 경우 Kubernetes는 10.100.0.0/16 또는 172.20.0.0/16 CIDR 블록 중 하나에서 서비스 IP 주소를 할당합니다.

    • 클러스터를 생성하고 클러스터가 IPv4 주소 대신 Pods와 서비스에 IPv6 주소를 할당하도록 하려면 ipFamily 옵션을 지정합니다.

      Kubernetes는 기본적으로 Pods와 서비스에 IPv4 주소를 할당합니다. IPv6 패밀리를 사용하기로 결정하기 전에 VPC 요구 사항 및 고려 사항, 서브넷 요구 사항 및 고려 사항, 클러스터에 대한 Amazon EKS 보안 그룹 요구 사항 보기클러스터, pods 및 서비스에 IPv6 주소 할당 주제의 모든 고려 사항 및 요구 사항을 숙지해야 합니다. IPv6 패밀리를 선택하는 경우 IPv4 패밀리와 마찬가지로 Kubernetes의 주소 범위를 지정하여 IPv6 서비스 주소를 할당할 수 없습니다. Kubernetes는 고유 로컬 주소 범위(fc00::/7)에서 서비스 주소를 할당합니다.

    AWS Management Console
    클러스터 생성
    1. https://console.aws.amazon.com/eks/home#/clusters에서 Amazon EKS 콘솔을 엽니다.

    2. 클러스터 추가(Add cluster)를 선택하고 생성(Create)을 선택합니다.

    3. 클러스터 구성(Configure cluster) 페이지에서 다음 필드를 입력합니다.

      • 이름(Name) - 클러스터의 이름 이름에는 영숫자(대소문자 구분)와 하이픈, 밑줄만 사용할 수 있습니다. 영숫자로 시작해야 하며 100자 이하여야 합니다. 이름은 클러스터를 생성하는 AWS 리전과 AWS 계정 내에서 고유해야 합니다.

      • Kubernetes 버전 - 클러스터에 대해 사용할 Kubernetes 버전. 이전 버전이 필요한 경우가 아니면 최신 버전을 선택하는 것이 좋습니다.

      • 지원 유형 - 클러스터에 설정하려는 Kubernetes 버전 정책입니다. 클러스터가 표준 지원 버전에서만 실행되도록 하려면 표준 지원을 선택할 수 있습니다. 버전에 대한 표준 지원이 종료될 때 클러스터가 추가 지원을 시작하도록 하려면 추가 지원을 선택할 수 있습니다. 현재 추가 지원 중인 Kubernetes 버전을 선택한 경우에는 표준 지원을 옵션으로 선택할 수 없습니다.

      • 클러스터 서비스 역할 - 생성한 Amazon EKS 클러스터 IAM 역할을 선택하여 Kubernetes 컨트롤 플레인이 사용자를 대신하여 AWS 리소스를 관리하게 할 수 있습니다.

      • 비밀 암호화 - (선택 사항) KMS 키를 사용하여 Kubernetes 비밀의 비밀 암호화를 사용하도록 선택합니다. 클러스터를 생성한 후에도 이 기능을 사용 설정할 수 있습니다. 이 기능을 사용 설정하기 전에 기존 클러스터에서 AWS KMS를 사용하여 Kubernetes 비밀 암호화의 정보를 숙지해야 합니다.

      • 태그(Tags) - (선택 사항) 클러스터에 태그를 추가합니다. 자세한 내용은 태그를 사용하여 Amazon EKS 리소스 구성 단원을 참조하십시오.

        이 페이지를 모두 완료하면 다음을 선택합니다.

    4. 네트워킹 지정(Specify networking) 페이지에서 다음 필드의 값을 선택합니다.

      • VPC - 클러스터를 생성하려면 Amazon EKS VPC 요구 사항을 충족하는 기존 VPC를 선택합니다. VPC를 선택하기 전에 VPC 및 서브넷에 대한 Amazon EKS 네트워킹 요구 사항 보기의 요구 사항 및 고려 사항 모두를 숙지하는 것이 좋습니다. 클러스터 생성 후에는 사용하려는 VPC를 변경할 수 없습니다. 목록에 기존 VPC가 없는 경우 먼저 VPC를 생성해야 합니다. 자세한 내용은 Amazon EKS 클러스터에 대한 Amazon VPC 생성 단원을 참조하십시오.

      • 서브넷(Subnets) - 기본적으로 이전 필드에서 지정한 VPC에서 사용 가능한 모든 서브넷이 사전 선택됩니다. 두 개 이상을 선택해야 합니다.

        선택한 서브넷은 Amazon EKS 서브넷 요구 사항을 충족해야 합니다. 서브넷을 선택하기 전에 Amazon EKS VPC 및 서브넷 요구 사항 및 고려 사항 모두를 숙지하는 것이 좋습니다.

        보안 그룹(Security groups) – (선택 사항) 생성하는 네트워크 인터페이스에 Amazon EKS가 연결하려는 보안 그룹을 하나 이상 지정합니다.

        보안 그룹 선택 여부에 관계없이 Amazon EKS는 클러스터와 VPC 간에 통신을 사용 설정할 수 있는 보안 그룹을 생성합니다. Amazon EKS는 이 보안 그룹과 사용자가 선택한 보안 그룹을 생성하는 네트워크 인터페이스에 연결합니다. Amazon EKS에서 생성하는 클러스터 보안 그룹에 대한 자세한 내용을 알아보려면 클러스터에 대한 Amazon EKS 보안 그룹 요구 사항 보기 부분을 참조하세요. Amazon EKS가 생성하는 클러스터 보안 그룹에서 규칙을 수정할 수 있습니다.

      • 클러스터 IP 주소 패밀리 선택 - IPv4와 IPv6 중 하나를 선택할 수 있습니다.

        Kubernetes는 기본적으로 Pods와 서비스에 IPv4 주소를 할당합니다. IPv6 패밀리를 사용하기로 결정하기 전에 VPC 요구 사항 및 고려 사항, 서브넷 요구 사항 및 고려 사항, 클러스터에 대한 Amazon EKS 보안 그룹 요구 사항 보기클러스터, pods 및 서비스에 IPv6 주소 할당 주제의 모든 고려 사항 및 요구 사항을 숙지해야 합니다. IPv6 패밀리를 선택하는 경우 IPv4 패밀리와 마찬가지로 Kubernetes의 주소 범위를 지정하여 IPv6 서비스 주소를 할당할 수 없습니다. Kubernetes는 고유 로컬 주소 범위(fc00::/7)에서 서비스 주소를 할당합니다.

      • (선택 사항) Kubernetes 서비스 IP 주소 범위 구성을 선택하고 서비스 IPv4 범위를 지정합니다.

        자체 범위를 지정하면 VPC에 피어링되거나 연결된 Kubernetes 서비스 및 기타 네트워크 사이의 충돌을 방지할 수 있습니다. CIDR 표기법으로 범위를 입력합니다. 예: 10.2.0.0/16.

        CIDR 블록은 다음 요구 사항을 충족해야 합니다.

        • 다음 범위 10.0.0.0/8, 172.16.0.0/12 또는 192.168.0.0/16 중 하나 내에 있어야 합니다..

        • 최소 크기는 /24고 최대 크기는 /12입니다.

        • Amazon EKS 리소스의 VPC 범위와 겹치지 않습니다.

        이 옵션은 IPv4 주소 패밀리를 사용할 때 및 클러스터 생성 시에만 지정할 수 있습니다. 이 옵션을 지정하지 않은 경우 Kubernetes는 10.100.0.0/16 또는 172.20.0.0/16 CIDR 블록 중 하나에서 서비스 IP 주소를 할당합니다.

      • 클러스터 엔드포인트 액세스(Cluster endpoint access)에서 옵션을 선택합니다. 클러스터를 생성한 후에는 이 옵션을 변경할 수 있습니다. 기본값이 아닌 옵션을 선택하기 전에 옵션과 그 의미를 숙지해야 합니다. 자세한 내용은 클러스터 API 서버 엔드포인트에 대한 네트워크 액세스 제어 단원을 참조하십시오.

        이 페이지를 모두 완료하면 다음을 선택합니다.

    5. (선택 사항) 관찰성 구성 페이지에서 설정할 지표컨트롤 플레인 로깅 옵션을 선택합니다. 기본적으로 각 로그 유형은 해제되어 있습니다.

      이 페이지를 모두 완료하면 다음을 선택합니다.

    6. Select add-ons(추가 기능 선택) 페이지에서 클러스터에 추가할 추가 기능을 선택합니다. Amazon EKS add-ons(Amazon EKS 추가 기능)와 AWS Marketplace add-ons( 추가 기능)는 필요한 만큼 선택할 수 있습니다. 설치하려는 AWS Marketplace add-ons(추가 기능)가 목록에 없는 경우 검색 상자에 텍스트를 입력하여 사용 가능한 AWS Marketplace add-ons(추가 기능)를 검색할 수 있습니다. category(카테고리), vendor(공급업체) 또는 pricing model(요금 모델)로 검색한 다음에 검색 결과 중에서 추가 기능을 선택할 수도 있습니다. 이 페이지를 모두 완료하면 다음을 선택합니다.

      Amazon VPC CNI, CoreDNS, kube-proxy와 같은 일부 추가 기능은 기본적으로 설치됩니다. 기본 추가 기능을 비활성화하면 Kubernetes 애플리케이션 실행 기능에 영향을 미칠 수 있습니다.

    7. 선택한 추가 기능 설정 구성 페이지에서 설치할 버전을 선택합니다. 클러스터 생성 후 언제든지 최신 버전으로 업데이트할 수 있습니다. 클러스터 생성 후 각 추가 기능의 구성을 업데이트할 수 있습니다. 추가 기능 구성에 대한 자세한 내용은 Amazon EKS 추가 기능 업데이트 섹션을 참조하세요. 이 페이지를 모두 완료하면 다음을 선택합니다.

    8. 검토 및 생성 페이지에서 이전 페이지에서 입력하거나 선택한 정보를 검토합니다. 변경해야 하는 경우 편집(Edit)을 선택합니다 만족하는 경우 생성(Create)을 선택합니다. 클러스터가 프로비저닝되는 동안 상태(Status) 필드에는 생성 중(CREATING)이 표시됩니다.

      참고

      요청의 가용 영역 중 하나에 Amazon EKS 클러스터를 생성하는 데 충분한 용량이 없다는 오류가 표시될 수 있습니다. 이 경우 오류 출력에는 새 클러스터를 지원할 수 있는 가용 영역이 포함됩니다. 사용자 계정의 지원 가용 영역에 있는 2개 이상의 서브넷을 사용하여 클러스터를 다시 생성합니다. 자세한 내용은 용량 부족 단원을 참조하십시오.

      클러스터 프로비저닝에는 몇 분 정도 걸립니다.

    AWS CLI
    클러스터 생성
    1. 다음 명령을 사용하여 클러스터를 생성합니다. 명령을 실행하기 전에 다음과 같은 바꾸기를 합니다.

      • region-code를 클러스터를 생성할 AWS 리전으로 바꿉니다.

      • my-cluster를 클러스터 이름으로 바꿉니다. 이름에는 영숫자(대소문자 구분)와 하이픈, 밑줄만 사용할 수 있습니다. 영숫자로 시작해야 하며 100자 이하여야 합니다. 이름은 클러스터를 생성하는 AWS 리전과 AWS 계정 내에서 고유해야 합니다.

      • 1.31를 모든 Amazon EKS 지원 버전으로 변경합니다.

      • 111122223333를 계정 ID로, myAmazonEKSClusterRole를 클러스터 IAM 역할의 이름으로 변경합니다.

      • subnetIds의 값을 고유한 값으로 바꿉니다. 또한 추가 ID를 추가할 수 있습니다. 2개 이상의 서브넷 ID를 지정해야 합니다.

        선택한 서브넷은 Amazon EKS 서브넷 요구 사항을 충족해야 합니다. 서브넷을 선택하기 전에 Amazon EKS VPC 및 서브넷 요구 사항 및 고려 사항 모두를 숙지하는 것이 좋습니다.

      • 보안 그룹 ID를 지정하지 않으려면 명령에서 ,securityGroupIds=sg-ExampleID1을 제거합니다. 하나 이상의 보안 그룹 ID를 지정하려는 경우 securityGroupIds의 값을 고유한 값으로 바꿉니다. 또한 추가 ID를 추가할 수 있습니다.

        보안 그룹 선택 여부에 관계없이 Amazon EKS는 클러스터와 VPC 간에 통신을 사용 설정할 수 있는 보안 그룹을 생성합니다. Amazon EKS는 이 보안 그룹과 사용자가 선택한 보안 그룹을 생성하는 네트워크 인터페이스에 연결합니다. Amazon EKS에서 생성하는 클러스터 보안 그룹에 대한 자세한 내용을 알아보려면 클러스터에 대한 Amazon EKS 보안 그룹 요구 사항 보기 부분을 참조하세요. Amazon EKS가 생성하는 클러스터 보안 그룹에서 규칙을 수정할 수 있습니다.

      aws eks create-cluster --region region-code --name my-cluster --kubernetes-version 1.31 \ --role-arn arn:aws:iam::111122223333:role/myAmazonEKSClusterRole \ --resources-vpc-config subnetIds=subnet-ExampleID1,subnet-ExampleID2,securityGroupIds=sg-ExampleID1
      참고

      요청의 가용 영역 중 하나에 Amazon EKS 클러스터를 생성하는 데 충분한 용량이 없다는 오류가 표시될 수 있습니다. 이 경우 오류 출력에는 새 클러스터를 지원할 수 있는 가용 영역이 포함됩니다. 사용자 계정의 지원 가용 영역에 있는 2개 이상의 서브넷을 사용하여 클러스터를 다시 생성합니다. 자세한 내용은 용량 부족 단원을 참조하십시오.

      설정(선택 사항)

      다음은 필요한 경우 이전 명령에 추가해야 하는 선택 가능한 설정입니다. 클러스터 생성 후가 아닌 생성할 때만 이러한 옵션을 사용 설정할 수 없습니다.

      • 기본적으로 EKS는 클러스터 생성 중에 여러 네트워킹 추가 기능을 설치합니다. 여기에는 Amazon VPC CNI, CoreDNS, kube-proxy가 포함되어 있습니다.

        이러한 기본 네트워킹 추가 기능의 설치를 비활성화하려면 아래 파라미터를 사용하세요. 이는 Cilium과 같은 대체 CNI에 사용될 수 있습니다. 자세한 내용은 EKS API 참조를 검토하세요.

        aws eks create-cluster --bootstrapSelfManagedAddons false

      • Kubernetes가 서비스 IP 주소를 할당하는 IPv4 Classless Inter-Domain Routing(CIDR) 블록을 지정하려는 경우 다음 명령에 --kubernetes-network-config serviceIpv4Cidr=CIDR block을 추가하여 해당 블록을 지정해야 합니다.

        자체 범위를 지정하면 VPC에 피어링되거나 연결된 Kubernetes 서비스 및 기타 네트워크 사이의 충돌을 방지할 수 있습니다. CIDR 표기법으로 범위를 입력합니다. 예: 10.2.0.0/16.

        CIDR 블록은 다음 요구 사항을 충족해야 합니다.

        • 다음 범위 10.0.0.0/8, 172.16.0.0/12 또는 192.168.0.0/16 중 하나 내에 있어야 합니다..

        • 최소 크기는 /24고 최대 크기는 /12입니다.

        • Amazon EKS 리소스의 VPC 범위와 겹치지 않습니다.

        이 옵션은 IPv4 주소 패밀리를 사용할 때 및 클러스터 생성 시에만 지정할 수 있습니다. 이 옵션을 지정하지 않은 경우 Kubernetes는 10.100.0.0/16 또는 172.20.0.0/16 CIDR 블록 중 하나에서 서비스 IP 주소를 할당합니다.

      • 클러스터를 생성하고 클러스터가 IPv4 주소 대신 Pods와 서비스에 IPv6 주소를 할당하도록 하려면 다음 명령에 --kubernetes-network-config ipFamily=ipv6을 추가합니다.

        Kubernetes는 기본적으로 Pods와 서비스에 IPv4 주소를 할당합니다. IPv6 패밀리를 사용하기로 결정하기 전에 VPC 요구 사항 및 고려 사항, 서브넷 요구 사항 및 고려 사항, 클러스터에 대한 Amazon EKS 보안 그룹 요구 사항 보기클러스터, pods 및 서비스에 IPv6 주소 할당 주제의 모든 고려 사항 및 요구 사항을 숙지해야 합니다. IPv6 패밀리를 선택하는 경우 IPv4 패밀리와 마찬가지로 Kubernetes의 주소 범위를 지정하여 IPv6 서비스 주소를 할당할 수 없습니다. Kubernetes는 고유 로컬 주소 범위(fc00::/7)에서 서비스 주소를 할당합니다.

    2. 클러스터를 프로비저닝하는 데 몇 분 정도 걸립니다. 다음 명령을 사용하여 클러스터의 상태를 쿼리할 수 있습니다.

      aws eks describe-cluster --region region-code --name my-cluster --query "cluster.status"

      반환되는 출력이 ACTIVE가 되면 다음 단계로 진행하세요.

  3. eksctl을 사용하여 클러스터를 생성한 경우 이 단계를 건너뛸 수 있습니다. 이는 eksctl이 사용자 대신 이 단계를 이미 완료했기 때문입니다. kubectl config 파일에 새 컨텍스트를 추가하여 kubectl이 클러스터와 통신하도록 사용 설정합니다. 파일 생성 및 업데이트 방법에 대한 자세한 내용을 알아보려면 kubeconfig 파일을 생성하여 kubectl을 EKS 클러스터에 연결 부분을 참조하세요.

    aws eks update-kubeconfig --region region-code --name my-cluster

    예제 출력은 다음과 같습니다.

    Added new context arn:aws:eks:region-code:111122223333:cluster/my-cluster to /home/username/.kube/config
  4. 다음 명령을 실행하여 클러스터와의 통신을 확인합니다.

    kubectl get svc

    예제 출력은 다음과 같습니다.

    NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 28h
  5. (권장 사항) 일부 Amazon EKS 추가 기능을 사용하거나 개별 Kubernetes 워크로드에 특정 AWS Identity and Access Management(IAM) 권한을 부여하려면 클러스터에 알맞은 IAM OpenID Connect(OIDC) 제공업체를 생성합니다. 클러스터에 대해 IAM OIDC 제공업체를 한 번만 생성하면 됩니다. Amazon EKS 추가 기능에 대한 자세한 내용은 Amazon EKS 추가 기능 부분을 참조하세요. 워크로드에 특정 IAM 권한을 할당하는 방법에 대한 자세한 내용은 서비스 계정에 대한 IAM 역할 부분을 참조하세요.

  6. (권장 사항) Amazon EC2 노드를 클러스터에 배포하기 전에 Amazon VPC CNI plugin for Kubernetes 플러그 인에 대한 클러스터를 구성합니다. 기본적으로 플러그 인은 클러스터와 함께 설치되어 있습니다. 클러스터에 Amazon EC2 노드를 추가하면 추가하는 각 Amazon EC2 노드에 플러그 인이 자동으로 배포됩니다. 플러그 인을 사용하려면 다음 IAM 정책 중 하나를 IAM 역할에 연결해야 합니다.

    AmazonEKS_CNI_Policy 관리형 IAM 정책

    클러스터에서 IPv4 패밀리를 사용한 경우

    생성한 IAM 정책

    클러스터에서 IPv6 패밀리를 사용한 경우

    정책을 연결하는 IAM 역할은 노드 IAM 역할이거나 플러그 인에만 사용되는 전용 역할일 수 있습니다. 이 역할에 정책을 연결하는 것이 좋습니다. 역할 생성에 대한 자세한 내용을 알아보려면 IRSA를 사용하도록 Amazon VPC CNI 플러그인 구성 또는 Amazon EKS 노드 IAM 역할 부분을 참조하세요.

  7. AWS Management Console을 사용하여 클러스터를 배포한 경우 이 단계를 건너뛸 수 있습니다. AWS Management Console은 기본적으로 Amazon VPC CNI plugin for Kubernetes, CoreDNS 및 kube-proxy Amazon EKS 추가 기능을 배포합니다.

    eksctl 또는 AWS CLI 중 하나를 사용하여 클러스터를 배포하는 경우 Amazon VPC CNI plugin for Kubernetes, CoreDNS 및 kube-proxy 자체 관리형 추가 기능이 배포됩니다. 클러스터와 함께 배포되는 Amazon VPC CNI plugin for Kubernetes, CoreDNS 및 kube-proxy 자체 관리형 추가 기능을 Amazon EKS 추가 기능으로 마이그레이션할 수 있습니다. 자세한 내용은 Amazon EKS 추가 기능 단원을 참조하십시오.

  8. (선택 사항) 아직 수행하지 않은 경우 클러스터의 Prometheus 지표를 활성화할 수 있습니다. 자세한 내용은 Amazon Managed Service for Prometheus 사용 설명서의 스크레이퍼 생성을 참조하세요.

  9. Prometheus 지표를 활성화한 경우 스크레이퍼에 클러스터 내 권한을 부여하려면 aws-auth ConfigMap을 설정해야 합니다. 자세한 내용은 Amazon Managed Service for Prometheus 사용 설명서의 Amazon EKS 클러스터 구성을 참조하세요.

  10. Amazon EBS 볼륨을 사용하는 클러스터에 워크로드를 배포할 계획이고 1.23 이상의 클러스터를 생성한 경우 워크로드를 배포하기 전에 클러스터에 Amazon EBS를 사용한 Kubernetes 볼륨 저장를 설치해야 합니다.

권장되는 다음 단계: