Amazon EKS 클러스터 생성 - Amazon EKS

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.22인 경우 kubectl 버전 1.21, 1.22 또는 1.23를 함께 사용할 수 있습니다. kubectl을 설치하거나 업그레이드하려면 kubectl 설치 또는 업데이트 섹션을 참조하세요.

  • AWS CLI 버전 2.8.6 이상 또는 1.26.3 이상이 디바이스나 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 클러스터가 생성될 때 클러스터를 생성하는 IAM 엔터티(사용자 또는 역할)가 Kubernetes RBAC 권한 부여 표에 관리자로 영구적으로 추가됩니다. 이 엔터티에는 system:masters 권한이 있습니다. 이 엔터티의 ID는 클러스터 구성에 표시되지 않습니다. 따라서 클러스터를 생성한 엔터티를 기록하고 절대로 삭제하지 않도록 하는 것이 중요합니다. 처음에는 서버를 생성한 IAM 엔터티만 kubectl을 사용하여 Kubernetes API 서버를 호출할 수 있습니다. 콘솔을 사용하여 클러스터를 생성하는 경우 클러스터에서 kubectl 명령을 실행할 때 동일한 IAM 보안 인증 정보가 AWS SDK 보안 인증 정보 체인에 있어야 합니다. 클러스터가 생성되면 클러스터에 대한 액세스 권한을 다른 IAM 엔터티에 부여할 수 있습니다.

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 작업(권한) iam:CreateRole을 할당해야 합니다.

      aws iam create-role --role-name myAmazonEKSClusterRole --assume-role-policy-document file://"eks-cluster-role-trust-policy.json"
    3. Amazon EKS 관리형 AmazonEKSClusterPolicy를 역할에 연결합니다. IAM 정책을 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.117.0에 설치된 버전 AWS CloudShell 이상의 eksctl 명령줄 도구. eksctl를 설치 또는 업데이트하려면 eksctl 설치 또는 업데이트 섹션을 참조하세요.

    클러스터 생성

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

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

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

    • 1.23모든 Amazon EKS 지원 버전으로 바꿉니다.

    • 요구 사항을 충족하는 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.23 --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 주소를 할당합니다.

    • 버전 1.21 이상의 클러스터를 생성하고 해당 클러스터가 pods 및 서비스에 IPv4 주소가 아닌 IPv6 주소를 할당하게 하려는 경우 ipFamily 옵션을 지정합니다.

      Kubernetes는 기본적으로 포드와 서비스에 IPv4 주소를 할당합니다. IPv6 패밀리를 사용하기로 결정하기 전에 VPC 요구 사항 및 고려 사항, 서브넷 요구 사항 및 고려 사항, Amazon EKS 보안 그룹 요구 사항 및 고려 사항자습서: pods 및 services에 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) - 클러스터의 이름 AWS 계정에서 고유해야 합니다. 이름에는 영숫자(대소문자 구분)와 하이픈만 사용할 수 있습니다. 영문자로 시작해야 하며 100자 이하여야 합니다. 이름은 클러스터를 생성하는 AWS 리전과 AWS 계정 내에서 고유해야 합니다.

      • Kubernetes 버전 - 클러스터에 대해 사용할 Kubernetes 버전.

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

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

      • 태그(Tags) - (선택 사항) 클러스터에 태그를 추가합니다. 자세한 정보는 Amazon EKS 리소스 태깅 섹션을 참조하세요.

    4. 다음(Next)을 선택합니다.

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

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

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

        선택한 서브넷은 Amazon EKS 서브넷 요구 사항을 충족해야 합니다. 서브넷을 선택하기 전에 Amazon EKS VPC 및 서브넷 요구 사항 및 고려 사항 모두를 숙지하는 것이 좋습니다. 클러스터 생성 후에는 사용하려는 서브넷을 변경할 수 없습니다.

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

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

      • 클러스터 IP 주소 패밀리 선택(Choose cluster IP address family) - 클러스터에 대해 선택한 버전이 1.20 이하인 경우 IPv4 옵션만 사용할 수 있습니다. 1.21 이상을 선택한 경우 IPv4IPv6를 사용할 수 있습니다.

        Kubernetes는 기본적으로 포드와 서비스에 IPv4 주소를 할당합니다. IPv6 패밀리를 사용하기로 결정하기 전에 VPC 요구 사항 및 고려 사항, 서브넷 요구 사항 및 고려 사항, Amazon EKS 보안 그룹 요구 사항 및 고려 사항자습서: pods 및 services에 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)에서 옵션을 선택합니다. 클러스터를 생성한 후에는 이 옵션을 변경할 수 있습니다. 기본값이 아닌 옵션을 선택하기 전에 옵션과 그 의미를 숙지해야 합니다. 자세한 정보는 Amazon EKS 클러스터 엔드포인트 액세스 제어을 참조하십시오.

    6. 네트워킹 추가 기능(Networking add-ons) 섹션의 기본값을 그대로 두어 Amazon VPC CNI plugin for Kubernetes, CoreDNS, 및 kube-proxy Amazon EKS 추가 기능의 기본 버전을 설치할 수 있습니다. 또는 다른 버전을 선택할 수도 있습니다. 추가 기능의 기능이 필요하지 않은 경우 클러스터가 생성된 후 추가 기능을 제거할 수 있습니다. 이러한 추가 기능에 대한 Amazon EKS 관리 설정을 직접 관리해야 하는 경우 클러스터가 생성되면 추가 기능의 Amazon EKS 관리를 제거합니다. 자세한 정보는 Amazon EKS 추가 기능을 참조하십시오.

    7. 다음(Next)을 선택합니다.

    8. 로깅 구성 페이지에서 활성화할 로그 유형을 선택적으로 선택할 수 있습니다. 기본적으로 각 로그 유형은 비활성(Disabled)입니다. 다른 옵션을 선택하기 전에 Amazon EKS 컨트롤 영역 로깅의 정보를 숙지합니다. 클러스터를 생성하면 이 옵션을 변경할 수 있습니다.

    9. 다음(Next)을 선택합니다.

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

      참고

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

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

    AWS CLI

    클러스터 생성

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

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

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

      • 1.23를 모든 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.23 \ --role-arn arn:aws:iam::111122223333:role/myAmazonEKSClusterRole \ --resources-vpc-config subnetIds=subnet-ExampleID1,subnet-ExampleID2,securityGroupIds=sg-ExampleID1
      참고

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

      설정(선택 사항)

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

      • 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 주소를 할당합니다.

      • 버전 1.21 이상의 클러스터를 생성하고 해당 클러스터가 pods 및 서비스에 IPv4 주소가 아닌 IPv6 주소를 할당하게 하려는 경우 다음 명령에 --kubernetes-network-config ipFamily=ipv6를 추가합니다.

        Kubernetes는 기본적으로 포드와 서비스에 IPv4 주소를 할당합니다. IPv6 패밀리를 사용하기로 결정하기 전에 VPC 요구 사항 및 고려 사항, 서브넷 요구 사항 및 고려 사항, Amazon EKS 보안 그룹 요구 사항 및 고려 사항자습서: pods 및 services에 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이 클러스터와 통신하도록 사용 설정합니다. 파일 생성 및 업데이트 방법에 대한 자세한 내용을 알아보려면 Amazon EKS 클러스터용 kubeconfig 파일 생성 또는 업데이트 섹션을 참조하세요.

    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 제공업체를 생성하는 방법에 대한 지침은 클러스터의 IAM OIDC 제공업체 생성 섹션을 참조하세요. 클러스터에 대해 IAM OIDC 제공업체를 한 번만 생성하면 됩니다. Amazon EKS 추가 기능에 대한 자세한 내용은 Amazon EKS 추가 기능 섹션을 참조하세요. 워크로드에 특정 IAM 권한을 할당하는 방법에 대한 자세한 내용은 서비스 계정에 대한 IAM 역할 섹션을 참조하세요.

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

    정책을 연결하는 IAM 역할은 노드 IAM 역할이거나 플러그 인에만 사용되는 전용 역할일 수 있습니다. 이 역할에 정책을 연결하는 것이 좋습니다. 역할 생성에 대한 자세한 내용을 알아보려면 서비스 계정에 IAM 역할을 사용하도록 Amazon VPC CNI plugin for Kubernetes 구성 또는 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 추가 기능을 참조하십시오.

권장되는 다음 단계:

  • 클러스터를 생성한 IAM 사용자 또는 역할은 클러스터에 대한 액세스 권한이 있는 유일한 IAM 엔터티입니다. 클러스터에 액세스할 수 있도록 다른 IAM 사용자 또는 역할에 권한을 부여합니다.

  • 클러스터를 생성한 IAM 사용자 또는 역할에 사전 조건에서 참조하는 최소 IAM 권한만 있는 경우 해당 IAM 엔터티에 대한 Amazon EKS 권한을 추가할 수 있습니다. IAM 엔터티에 Amazon EKS 권한 부여에 대한 자세한 내용을 알아보려면 Amazon EKS용 자격 증명 및 액세스 관리 섹션을 참조하세요.

  • 클러스터를 생성한 IAM 엔터티 또는 다른 IAM 엔터티가 Amazon EKS 콘솔에서 Kubernetes 리소스를 보도록 하려면 엔터티에 필수 권한을 부여합니다.

  • 노드와 사용자가 VPC 내에서 클러스터에 액세스하도록 하려면 클러스터에 대한 프라이빗 엔드포인트를 활성화합니다. 퍼블릭 엔드포인트는 기본적으로 활성화되어 있습니다. 원하는 경우 프라이빗 엔드포인트를 활성화한 후 퍼블릭 엔드포인트를 비활성화할 수 있습니다. 자세한 정보는 Amazon EKS 클러스터 엔드포인트 액세스 제어을 참조하십시오.

  • 클러스터에서 보안 암호 암호화 활성화

  • 클러스터에서 로깅 구성

  • 클러스터에 노드 추가

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