Amazon EKS 클러스터 생성하기
Amazon EKS 클러스터 생성하기
Amazon EKS 클러스터를 만드는 방법과 고려 사항을 알아봐요. eksctl, AWS Management Console, AWS CLI 세 가지 방법으로 클러스터를 만들 수 있어요.
출처: 문서
본문
참고: 이 토픽은 EKS Auto Mode 없이 Amazon EKS 클러스터를 만드는 방법을 다뤄요. EKS Auto Mode 클러스터 생성에 대한 상세 지침은 Create an Amazon EKS Auto Mode cluster를 참고해 주세요. EKS Auto Mode로 시작하려면 Get started with Amazon EKS – EKS Auto Mode를 참고해 주세요.
이 토픽은 Amazon EKS 클러스터를 만들 때 사용할 수 있는 옵션 개요와 고려 사항을 설명해요. 노드의 컴퓨트로 온프레미스 인프라를 사용해 클러스터를 만들어야 한다면 Create an Amazon EKS cluster with hybrid nodes를 참고해 주세요. Amazon EKS 클러스터를 처음 만드는 경우 Get started with Amazon EKS의 가이드 중 하나를 따르는 것을 권장해요. 이 가이드는 모든 옵션을 펼치지 않고 단순한 기본 클러스터를 만드는 데 도움을 줘요.
사전 조건 (Prerequisites)
- Amazon EKS 요구 사항을 충족하는 기존 VPC와 서브넷. 프로덕션용으로 클러스터를 배포하기 전에 VPC와 서브넷 요구 사항을 충분히 이해할 것을 권장해요. VPC와 서브넷이 없다면 Amazon EKS가 제공하는 AWS CloudFormation 템플릿으로 만들 수 있어요.
- 기기 또는 AWS CloudShell에 설치된
kubectl명령줄 도구. 버전은 클러스터의 Kubernetes 버전과 같거나 최대 한 마이너 버전 차이가 나야 해요. 설치 또는 업그레이드는 Set up kubectl and eksctl을 참고해 주세요. - AWS CLI 버전
2.12.3이상 또는1.27.160이상이 기기 또는 AWS CloudShell에 설치·구성되어 있어야 해요. 현재 버전 확인은aws --version | cut -d / -f2 | cut -d ' ' -f1을 사용해요.yum,apt-get, macOS의 Homebrew 같은 패키지 관리자는 AWS CLI 최신 버전보다 몇 버전 뒤처지는 경우가 많아요. 최신 버전 설치는 AWS CLI 사용자 안내서의 Installing and Quick configuration with aws configure를 참고해 주세요. AWS CloudShell에 설치된 AWS CLI 버전도 최신보다 몇 버전 뒤처질 수 있어요. 업데이트는 AWS CloudShell 사용자 안내서의 Installing AWS CLI to your home directory를 참고해 주세요. - Amazon EKS 클러스터를
create하고describe할 권한이 있는 IAM 주체. 자세한 내용은 Create a local Kubernetes cluster on an Outpost 및 List or describe all clusters를 참고해 주세요.
1단계: 클러스터 IAM 역할 만들기 (Step 1: Create cluster IAM role)
클러스터 IAM 역할이 이미 있거나 eksctl로 클러스터를 만들 예정이라면 이 단계를 건너뛸 수 있어요. 기본적으로 eksctl이 역할을 만들어 줘요.
IAM 신뢰 정책 JSON 파일을 만들기 위해 다음을 실행합니다.
{
"Version":"2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "eks.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
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"
Amazon EKS 관리형 정책을 할당하거나 직접 만든 사용자 지정 정책을 사용할 수 있어요. 사용자 지정 정책에서 사용해야 하는 최소 권한은 Amazon EKS cluster IAM role을 참고해 주세요.
AmazonEKSClusterPolicy라는 Amazon EKS 관리형 정책을 역할에 연결합니다. IAM 정책을 IAM 주체에 연결하려면 정책을 연결하는 주체에 iam:AttachUserPolicy 또는 iam:AttachRolePolicy 중 하나의 IAM 작업(권한)이 할당되어 있어야 해요.
aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/AmazonEKSClusterPolicy --role-name myAmazonEKSClusterRole
서비스 연결 역할 (Service-Linked Role)
Amazon EKS는 AWSServiceRoleForAmazonEKS라는 서비스 연결 역할을 자동으로 만들어요.
이는 클러스터 IAM 역할과 별개의 것이에요. 서비스 연결 역할은 Amazon EKS에 직접 연결된 독특한 유형의 IAM 역할이에요. 이 역할은 Amazon EKS가 계정의 클러스터를 관리할 수 있게 해요. 자세한 내용은 Using roles for Amazon EKS clusters를 참고해 주세요.
EKS 클러스터를 만드는 데 사용하는 IAM 주체는 서비스 연결 역할을 만들 권한이 있어야 해요. 여기에는 iam:CreateServiceLinkedRole 권한이 포함돼요.
서비스 연결 역할이 아직 존재하지 않고 현재 IAM 역할에 이를 만들 충분한 권한이 없다면 클러스터 생성 작업이 실패할 거예요.
2단계: 클러스터 만들기 (Step 2: Create cluster)
다음을 사용해 클러스터를 만들 수 있어요:
eksctl- AWS Management Console
- AWS CLI
클러스터 생성 - eksctl (Create cluster - eksctl)
기기 또는 AWS CloudShell에 eksctl 명령줄 도구 버전 0.215.0 이상이 필요해요. eksctl 설치 또는 업데이트는 eksctl 문서의 Installation을 참고해 주세요.
기본 AWS 리전에서 Amazon EKS 기본 Kubernetes 버전으로 Amazon EKS IPv4 클러스터를 만듭니다. 명령을 실행하기 전에 다음을 바꿔 주세요:
-
region-code를 클러스터를 만들 AWS 리전으로 바꿉니다. -
my-cluster를 클러스터 이름으로 바꿉니다. 이름에는 영숫자(대소문자 구분)와 하이픈만 포함할 수 있어요. 영숫자로 시작해야 하며 100자를 넘을 수 없어요. 이름은 클러스터를 만드는 AWS 리전과 AWS 계정 내에서 고유해야 해요. -
1.36을 지원되는 Amazon EKS 버전으로 바꿉니다. -
vpc-private-subnets값을 요구 사항에 맞게 바꿉니다. 추가 ID도 넣을 수 있어요. 최소 두 개의 서브넷 ID를 지정해야 해요. 공용 서브넷을 지정하려면--vpc-private-subnets를--vpc-public-subnets로 바꿀 수 있어요. 공용 서브넷에는 인터넷 게이트웨이로 가는 라우트가 있는 연결된 라우트 테이블이 있지만, 프라이빗 서브넷에는 연결된 라우트 테이블이 없어요. 가능하면 프라이빗 서브넷을 사용할 것을 권장합니다.선택한 서브넷은 Amazon EKS 서브넷 요구 사항을 충족해야 해요. 모든 Amazon EKS VPC 및 서브넷 요구 사항과 고려 사항을 숙지할 것을 권장합니다.
다음 명령을 실행합니다:
eksctl create cluster --name my-cluster --region region-code --version 1.36 --vpc-private-subnets subnet-ExampleID1,subnet-ExampleID2 --without-nodegroup
클러스터 프로비저닝은 몇 분이 걸립니다. 클러스터를 만드는 동안 여러 줄의 출력이 나타납니다. 마지막 출력 줄은 다음 예시 줄과 비슷합니다.
[✓] EKS cluster "my-cluster" in "region-code" region is ready
3단계: kubeconfig 업데이트로 계속 진행합니다.
선택적 설정 (Optional Settings)
eksctl로 클러스터를 만들 때 지정할 수 있는 대부분의 옵션을 보려면 eksctl create cluster --help 명령을 사용해 주세요. 사용 가능한 모든 옵션을 보려면 config 파일을 사용할 수 있어요. 자세한 내용은 eksctl 문서의 Using config files 및 config 파일 스키마를 참고해 주세요. config 파일 예시는 GitHub에서 찾을 수 있어요.
필요한 경우 이전 명령에 추가해야 하는 선택적 설정은 다음과 같아요. 이 옵션은 클러스터를 만들 때만 활성화할 수 있고 이후에는 할 수 없어요. 이 옵션을 지정해야 한다면 이전 명령 대신 eksctl config 파일로 클러스터를 만들고 설정을 지정해야 해요.
-
Amazon EKS가 만드는 네트워크 인터페이스에 할당하는 보안 그룹을 하나 이상 지정하려면
securityGroup옵션을 지정합니다. 보안 그룹을 선택하든 선택하지 않든 Amazon EKS는 클러스터와 VPC 간 통신을 활성화하는 보안 그룹을 만들어요. Amazon EKS는 이 보안 그룹과 선택한 보안 그룹을 자체가 만드는 네트워크 인터페이스에 연결해요. 자세한 내용은 View Amazon EKS security group requirements for clusters를 참고해 주세요. Amazon EKS가 만드는 클러스터 보안 그룹의 규칙을 수정할 수 있어요. -
Kubernetes가 서비스 IP 주소를 할당할
IPv4CIDR 블록을 지정하려면serviceIPv4CIDR옵션을 지정합니다. 자체 범위를 지정하면 Kubernetes 서비스와 VPC에 피어링되거나 연결된 다른 네트워크 간의 충돌을 방지하는 데 도움이 돼요. 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/16CIDR 블록 중 하나에서 서비스 IP 주소를 할당해요. 하이브리드 노드가 활성화된 클러스터에서는 Amazon EKS가 구성된 원격 노드 및 파드 네트워크와의 충돌을 피하기 위해 다른 CIDR을 선택할 수 있어요. -
IPv4대신 파드와 서비스에IPv6주소를 할당하길 원하면ipFamily옵션을 지정합니다. Kubernetes는 기본적으로 파드와 서비스에IPv4주소를 할당해요.IPv6패밀리를 사용하기 전에 VPC 요구 사항 및 고려 사항, 서브넷 요구 사항 및 고려 사항, View Amazon EKS security group requirements for clusters, Learn about IPv6 addresses to clusters, Pods, and services 토픽을 모두 숙지해야 해요.IPv6패밀리를 선택하면IPv4패밀리처럼IPv6서비스 주소 범위를 지정할 수 없어요. Kubernetes는 고유 로컬 주소 범위(fc00::/7)에서 서비스 주소를 할당해요.
클러스터 생성 - AWS 콘솔 (Create cluster - AWS console)
-
Amazon EKS 콘솔을 엽니다.
-
Add cluster를 선택한 다음 Create를 선택합니다.
-
Configuration options에서 Custom configuration을 선택합니다.
EKS Auto Mode로 클러스터를 빠르게 만드는 방법은 Create an EKS Auto Mode Cluster with the AWS Management Console을 참고해 주세요.
-
EKS Auto Mode 아래에서 Use EKS Auto Mode를 끕니다.
사용자 지정 구성으로 EKS Auto Mode 클러스터를 만드는 방법은 Create an Amazon EKS Auto Mode cluster를 참고해 주세요.
-
Configure cluster 페이지에서 다음 필드를 입력합니다:
- Name — 클러스터 이름입니다. 영숫자(대소문자 구분), 하이픈, 밑줄만 포함할 수 있어요. 영숫자로 시작해야 하며 100자를 넘을 수 없어요. 클러스터를 만드는 AWS 리전과 계정 내에서 고유해야 해요.
- Cluster IAM role — Kubernetes 제어 플레인이 사용자를 대신해 AWS 리소스를 관리하도록 만든 Amazon EKS 클러스터 IAM 역할을 선택합니다.
- Kubernetes version — 클러스터에 사용할 Kubernetes 버전입니다. 이전 버전이 필요하지 않다면 최신 버전을 선택할 것을 권장합니다.
- Support type — 클러스터에 설정할 Kubernetes 버전 정책입니다. 표준 지원 버전에서만 실행되게 하려면 Standard support를, 표준 지원이 끝날 때 확장 지원에 들어가게 하려면 Extended support를 선택할 수 있어요. 현재 확장 지원 중인 Kubernetes 버전을 선택하면 표준 지원을 옵션으로 선택할 수 없어요.
- Secrets encryption — (선택사항) KMS 키로 Kubernetes 시크릿 암호화를 활성화합니다. 클러스터 생성 후에도 활성화할 수 있어요. 이 기능 활성화 전에 Encrypt Kubernetes secrets with KMS on existing clusters의 내용을 숙지해야 해요.
- Tags — (선택사항) 클러스터에 태그를 추가합니다. 자세한 내용은 Organize Amazon EKS resources with tags 참고.
- ARC Zonal shift — (선택사항) Amazon Application Recovery Controller로 손상된 가용 영역을 완화할 수 있어요. 자세한 내용은 Learn about Amazon Application Recovery Controller (ARC) zonal shift in Amazon EKS 참고.
-
Configure cluster 페이지의 Cluster access 섹션에서 다음 필드를 입력합니다:
- Bootstrap cluster administrator access — 클러스터 생성자는 자동으로 Kubernetes 관리자가 됩니다. 비활성화하려면 Disallow cluster administrator access를 선택합니다.
- Cluster authentication mode — IAM 사용자와 역할에 Kubernetes API 접근을 부여할 방법을 결정합니다. 자세한 내용은 Set Cluster Authentication Mode 참고.
-
이 페이지를 마치면 Next를 선택합니다.
-
Specify networking 페이지에서 다음 필드의 값을 선택합니다:
-
VPC — Amazon EKS VPC 요구 사항을 충족하는 기존 VPC를 선택합니다. VPC 선택 전에 View Amazon EKS networking requirements for VPC and subnets의 모든 요구 사항과 고려 사항을 숙지할 것을 권장합니다. 클러스터 생성 후에는 사용할 VPC를 변경할 수 없어요. VPC가 나열되지 않으면 먼저 만들어야 해요. 자세한 내용은 Create an Amazon VPC for your Amazon EKS cluster 참고.
-
Subnets — 기본적으로 이전 필드에서 지정한 VPC의 사용 가능한 모든 서브넷이 미리 선택됩니다. 최소 두 개를 선택해야 해요. 선택한 서브넷은 Amazon EKS 서브넷 요구 사항을 충족해야 해요.
-
Security groups — (선택사항) Amazon EKS가 만드는 네트워크 인터페이스에 연결할 보안 그룹을 하나 이상 지정합니다. 보안 그룹을 선택하든 선택하지 않든 Amazon EKS는 클러스터와 VPC 간 통신을 활성화하는 보안 그룹을 만들어요. 자세한 내용은 View Amazon EKS security group requirements for clusters 참고. 클러스터 보안 그룹 내 규칙을 수정할 수 있어요.
-
Choose cluster IP address family — IPv4 또는 IPv6 중에서 선택합니다. Kubernetes는 기본적으로 파드와 서비스에
IPv4주소를 할당해요.IPv6패밀리를 사용하기 전에 관련 토픽들을 모두 숙지해야 해요.IPv6패밀리를 선택하면IPv4처럼IPv6서비스 주소 범위를 지정할 수 없어요. Kubernetes는 고유 로컬 주소 범위(fc00::/7)에서 서비스 주소를 할당해요. -
(선택사항) Configure Kubernetes Service IP address range를 선택하고 Service
IPv4범위를 지정합니다. 자체 범위를 지정하면 Kubernetes 서비스와 VPC에 피어링되거나 연결된 다른 네트워크 간의 충돌을 방지하는 데 도움이 돼요. 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/16CIDR 블록 중 하나에서 서비스 IP 주소를 할당해요. 하이브리드 노드가 활성화된 클러스터에서는 Amazon EKS가 다른 CIDR을 선택할 수 있어요. -
Cluster endpoint access — 옵션을 선택합니다. 생성 후 변경할 수 있어요. 기본이 아닌 옵션 선택 전에 각 옵션과 영향을 숙지해야 해요. 자세한 내용은 Cluster API server endpoint 참고.
-
(선택사항) Control plane egress — 제어 플레인에서 VPC로의 이그레스 트래픽이 라우팅되는 방식을 선택합니다. 기본값은 Amazon EKS 관리형(AWS managed)이에요. Customer routed를 선택하면 제어 플레인에서 VPC 리소스까지의 네트워크 경로를 직접 책임지게 됩니다. 자세한 내용은 Configuring control plane egress routing 참고.
-
-
이 페이지를 마치면 Next를 선택합니다.
-
(선택사항) Configure observability 페이지에서 켤 Metrics와 Control plane logging 옵션을 선택합니다. 기본적으로 각 로그 유형은 꺼져 있어요. Prometheus 메트릭 옵션은 Step 1: Turn on Prometheus metrics를, 제어 플레인 로깅 옵션은 Send control plane logs to CloudWatch Logs를 참고해 주세요.
-
이 페이지를 마치면 Next를 선택합니다.
-
Select add-ons 페이지에서 클러스터에 추가할 애드온을 선택합니다. 일부 애드온은 미리 선택되어 있어요. 필요한 만큼 Amazon EKS 애드온과 AWS Marketplace 애드온을 선택할 수 있어요. 설치하려는 AWS Marketplace 애드온이 나열되지 않으면 페이지 번호를 선택해 추가 결과를 보거나 검색 상자에 텍스트를 입력해 검색할 수 있어요. 카테고리, 공급업체, 요금 모델로 필터링할 수도 있어요. EKS Pod Identities를 지원하는 모든 애드온을 보고 선택하고 설치할 수 있어요.
-
이 페이지를 마치면 Next를 선택합니다.
Amazon VPC CNI, CoreDNS, kube-proxy 같은 일부 애드온은 기본으로 설치돼요. 기본 애드온을 비활성화하면 Kubernetes 애플리케이션을 실행하는 능력에 영향을 줄 수 있어요.
-
Configure selected add-ons settings 페이지에서 설치할 버전을 선택합니다. 클러스터 생성 후 언제든지 나중 버전으로 업데이트할 수 있어요.
EKS Pod Identities를 지원하는 애드온의 경우 콘솔로 애드온에 특화된 역할을 자동으로 생성할 수 있어요. 지원되는 애드온에 기존 역할을 재사용하거나 새 역할을 만들 수 있어요. 단계는 Create add-on (AWS Console) 참고. EKS Pod Identity를 지원하지 않는 애드온은 클러스터 생성 후 IRSA 역할을 만들라는 지침 메시지가 표시돼요.
클러스터 생성 후 각 애드온의 구성을 업데이트할 수 있어요. 자세한 내용은 Update an Amazon EKS add-on 참고. 이 페이지를 마치면 Next를 선택합니다.
-
Review and create 페이지에서 이전 정보를 검토합니다. 변경이 필요하면 Edit을 선택합니다. 만족하면 Create를 선택합니다. 프로비저닝 중 Status 필드가
CREATING으로 표시됩니다.
참고: 가용 영역 중 하나에 충분한 용량이 없다는 오류를 받을 수 있어요. 오류 출력에 새 클러스터를 지원할 수 있는 가용 영역이 포함됩니다. 지원되는 가용 영역의 최소 두 개 서브넷으로 다시 시도해 주세요. 자세한 내용은 Insufficient capacity 참고.
클러스터 프로비저닝은 몇 분이 걸립니다.
3단계: kubeconfig 업데이트로 계속 진행합니다.
클러스터 생성 - AWS CLI (Create cluster - AWS CLI)
다음 명령으로 클러스터를 만듭니다. 실행 전에 다음을 바꿔 주세요:
region-code를 클러스터를 만들 AWS 리전으로.my-cluster를 클러스터 이름으로. 영숫자(대소문자 구분), 하이픈, 밑줄만 포함 가능, 영숫자로 시작, 100자 이내, 리전과 계정 내 고유해야 함.1.36을 지원되는 Amazon EKS 버전으로.111122223333을 계정 ID로,myAmazonEKSClusterRole을 클러스터 IAM 역할 이름으로.subnetIds값을 자신의 값으로. 최소 두 개의 서브넷 ID를 지정해야 해요. 선택한 서브넷은 Amazon EKS 서브넷 요구 사항을 충족해야 해요.- 보안 그룹 ID를 지정하지 않으려면
,securityGroupIds=sg-...를 제거합니다. 지정하려면 값을 자신의 값으로 바꿉니다.
(선택사항) 제어 플레인에서 VPC로의 이그레스 경로를 직접 관리하려면 --resources-vpc-config에 controlPlaneEgressMode=CUSTOMER_ROUTED를 추가합니다. 기본값은 AWS_MANAGED예요. 이 설정은 클러스터 생성 후에도 변경할 수 있어요. 자세한 내용은 Configuring control plane egress routing 참고.
aws eks create-cluster --region region-code --name my-cluster --kubernetes-version 1.36 \
--role-arn arn:aws:iam::111122223333:role/myAmazonEKSClusterRole \
--resources-vpc-config subnetIds=subnet-ExampleID1,subnet-ExampleID2,securityGroupIds=sg-ExampleID1
참고: 가용 영역 중 하나에 충분한 용량이 없다는 오류를 받을 수 있어요. 오류 출력의 지원 가능한 가용 영역의 최소 두 개 서브넷으로 다시 시도해 주세요. 자세한 내용은 Insufficient capacity 참고.
필요한 경우 이전 명령에 추가해야 하는 선택적 설정:
-
기본적으로 EKS는 클러스터 생성 중 Amazon VPC CNI, CoreDNS, kube-proxy를 포함한 여러 네트워킹 애드온을 설치해요. 이 기본 네트워킹 애드온 설치를 비활성화하려면 아래 파라미터를 사용합니다. Cilium 같은 대체 CNI를 위해 사용할 수 있어요. 자세한 내용은 EKS API 참조를 검토해 주세요.
aws eks create-cluster --no-bootstrap-self-managed-addons …
-
Kubernetes가 서비스 IP 주소를 할당할
IPv4CIDR 블록을 지정하려면--kubernetes-network-config serviceIpv4Cidr=<value>를 추가합니다. 자체 범위를 지정하면 피어링되거나 연결된 네트워크와의 충돌을 방지하는 데 도움이 돼요. 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/16CIDR 블록 중 하나에서 서비스 IP 주소를 할당해요. 하이브리드 노드가 활성화된 클러스터에서는 Amazon EKS가 다른 CIDR을 선택할 수 있어요. -
IPv4대신 파드와 서비스에IPv6주소를 할당하길 원하면--kubernetes-network-config ipFamily=ipv6을 추가합니다. Kubernetes는 기본적으로IPv4를 할당해요.IPv6패밀리 선택 전 관련 토픽을 모두 숙지해야 해요.IPv6패밀리에서는IPv6서비스 주소 범위를 지정할 수 없고, Kubernetes는 고유 로컬 주소 범위(fc00::/7)에서 할당해요.
클러스터 프로비저닝은 몇 분이 걸립니다. 다음 명령으로 클러스터 상태를 쿼리할 수 있어요.
aws eks describe-cluster --region region-code --name my-cluster --query "cluster.status"
출력이 ACTIVE가 될 때까지 다음 단계로 진행하지 마세요.
3단계: kubeconfig 업데이트로 계속 진행합니다.
3단계: kubeconfig 업데이트 (Step 3: Update kubeconfig)
eksctl로 클러스터를 만들었다면 이 단계를 건너뛸 수 있어요. eksctl이 이미 이 단계를 완료했기 때문이에요. kubectl의 config 파일에 새 컨텍스트를 추가해 kubectl이 클러스터와 통신할 수 있게 합니다. 파일 생성 및 업데이트 방법은 Connect kubectl to an EKS cluster by creating a kubeconfig file 참고.
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
다음 명령으로 클러스터와의 통신을 확인합니다.
kubectl get svc
예시 출력:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.100.0.1 443/TCP 28h
4단계: 클러스터 설정 (Step 4: Cluster setup)
-
(권장) 일부 Amazon EKS 애드온을 사용하거나 개별 Kubernetes 워크로드에 특정 IAM 권한을 부여하려면 클러스터용 IAM OpenID Connect(OIDC) 프로바이더를 만듭니다. 클러스터용 IAM OIDC 프로바이더는 한 번만 만들면 돼요. Amazon EKS 애드온은 Amazon EKS add-ons, 워크로드에 특정 IAM 권한 부여는 IAM roles for service accounts 참고.
-
(권장) Amazon EC2 노드를 배포하기 전에 Kubernetes용 Amazon VPC CNI 플러그인으로 클러스터를 구성합니다. 기본적으로 플러그인은 클러스터와 함께 설치됐어요. Amazon EC2 노드를 추가하면 플러그인이 추가하는 각 EC2 노드에 자동으로 배포됩니다. 플러그인은 다음 IAM 정책 중 하나를 IAM 역할에 연결해야 해요. 클러스터가
IPv4패밀리를 사용하면AmazonEKS_CNI_Policy관리형 IAM 정책을,IPv6패밀리를 사용하면 직접 만든 IAM 정책을 사용해요.정책을 연결하는 IAM 역할은 노드 IAM 역할이거나 플러그인 전용의 전용 역할일 수 있어요. 역할 생성 방법은 Configure Amazon VPC CNI plugin to use IRSA 또는 Amazon EKS node IAM role 참고.
AWS Management Console로 클러스터를 배포했다면 이 단계를 건너뛸 수 있어요. 콘솔은 기본적으로 Kubernetes용 Amazon VPC CNI 플러그인, CoreDNS,
kube-proxyAmazon EKS 애드온을 배포하기 때문이에요.eksctl이나 AWS CLI로 배포했다면 Kubernetes용 Amazon VPC CNI 플러그인, CoreDNS,kube-proxy자체 관리 애드온이 배포됩니다. 이 자체 관리 애드온을 Amazon EKS 애드온으로 마이그레이션할 수 있어요. 자세한 내용은 Amazon EKS add-ons 참고. -
(선택사항) 아직 안 했다면 클러스터의 Prometheus 메트릭을 활성화할 수 있어요. 자세한 내용은 Amazon Managed Service for Prometheus 사용자 안내서의 Create a scraper 참고.
-
클러스터에 Amazon EBS 볼륨을 사용하는 워크로드를 배포할 계획이라면 워크로드 배포 전에 Amazon EBS CSI를 클러스터에 설치해야 해요.
다음 단계 (Next steps)
- 클러스터를 만든 IAM 주체만 클러스터에 접근할 수 있어요. 다른 IAM 주체에 접근 권한을 부여해 주세요.
- 클러스터를 만든 IAM 주체가 사전 조건의 최소 IAM 권한만 가진다면 그 주체에 Amazon EKS 권한을 추가하는 것을 고려할 수 있어요. 자세한 내용은 Identity and access management for Amazon EKS 참고.
- 클러스터를 만든 IAM 주체나 다른 주체가 Amazon EKS 콘솔에서 Kubernetes 리소스를 보게 하려면 엔터티에 필요한 권한을 부여해 주세요.
- 노드와 IAM 주체가 VPC 내에서 클러스터에 접근하게 하려면 클러스터의 프라이빗 엔드포인트를 활성화합니다. 공용 엔드포인트는 기본으로 활성화돼요. 프라이빗 엔드포인트를 활성화한 후 원하면 공용 엔드포인트를 비활성화할 수 있어요. 자세한 내용은 Cluster API server endpoint 참고.
- 클러스터의 시크릿 암호화 활성화 (Enable secrets encryption for your cluster)
- 클러스터 로깅 구성 (Configure logging for your cluster)
- 클러스터에 노드 추가 (Add nodes to your cluster)