이 페이지 개선에 도움 주기
이 사용자 설명서에 기여하고 싶으신가요? 이 페이지 하단으로 스크롤하여 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에 설치 및 구성되어 있습니다. 현재 버전을 확인하려면
을 사용합니다. macOS용aws --version | cut -d / -f2 | cut -d ' ' -f1
yum
,apt-get
또는 Homebrew와 같은 패키지 관리자는 최신 버전의 AWS CLI보다 여러 버전 이전인 경우가 많습니다. 최신 버전을 설치하려면 AWS Command Line Interface 사용 설명서의 AWS CLI 설치, 업데이트 및 제거와 aws configure를 통한 빠른 구성을 참조하세요. AWS CloudShell에 설치된 AWS CLI 버전도 최신 버전보다 여러 버전 이전일 수도 있습니다. 업데이트하려면 AWS CloudShell 사용 설명서의 홈 디렉터리에 AWS CLI 설치를 참조하세요. -
Amazon EKS 클러스터를
create
및describe
할 수 있는 권한이 있는 IAM 보안 주체. 자세한 내용은 Outpost에서 로컬 Kubernetes 클러스터 생성 및 모든 클러스터 나열 또는 설명 단원을 참조하세요.
Amazon EKS 클러스터 생성하는 방법
-
이미 클러스터 IAM 역할이 있거나
eksctl
을 사용하여 클러스터를 생성하려는 경우 이 단계를 건너뛸 수 있습니다. 기본적으로eksctl
은 사용자를 위한 역할을 생성합니다.Amazon EKS 클러스터 IAM 역할 생성
-
다음 명령을 실행하여 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 -
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 클러스터 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
-
-
Amazon EKS 클러스터를 생성합니다.
eksctl
, AWS Management Console 또는 AWS CLI를 사용하여 클러스터를 생성할 수 있습니다. -
eksctl
을 사용하여 클러스터를 생성한 경우 이 단계를 건너뛸 수 있습니다. 이는eksctl
이 사용자 대신 이 단계를 이미 완료했기 때문입니다.kubectl
config
파일에 새 컨텍스트를 추가하여kubectl
이 클러스터와 통신하도록 사용 설정합니다. 파일 생성 및 업데이트 방법에 대한 자세한 내용을 알아보려면 kubeconfig 파일을 생성하여 kubectl을 EKS 클러스터에 연결 부분을 참조하세요.aws eks update-kubeconfig --region
region-code
--namemy-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 <none> 443/TCP 28h
-
(권장 사항) 일부 Amazon EKS 추가 기능을 사용하거나 개별 Kubernetes 워크로드에 특정 AWS Identity and Access Management(IAM) 권한을 부여하려면 클러스터에 알맞은 IAM OpenID Connect(OIDC) 제공업체를 생성합니다. 클러스터에 대해 IAM OIDC 제공업체를 한 번만 생성하면 됩니다. Amazon EKS 추가 기능에 대한 자세한 내용은 Amazon EKS 추가 기능 부분을 참조하세요. 워크로드에 특정 IAM 권한을 할당하는 방법에 대한 자세한 내용은 서비스 계정에 대한 IAM 역할 부분을 참조하세요.
-
(권장 사항) 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 역할 부분을 참조하세요.
-
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 추가 기능 단원을 참조하십시오. -
(선택 사항) 아직 수행하지 않은 경우 클러스터의 Prometheus 지표를 활성화할 수 있습니다. 자세한 내용은 Amazon Managed Service for Prometheus 사용 설명서의 스크레이퍼 생성을 참조하세요.
-
Prometheus 지표를 활성화한 경우 스크레이퍼에 클러스터 내 권한을 부여하려면
aws-auth
ConfigMap
을 설정해야 합니다. 자세한 내용은 Amazon Managed Service for Prometheus 사용 설명서의 Amazon EKS 클러스터 구성을 참조하세요. -
Amazon EBS 볼륨을 사용하는 클러스터에 워크로드를 배포할 계획이고
1.23
이상의 클러스터를 생성한 경우 워크로드를 배포하기 전에 클러스터에 Amazon EBS를 사용한 Kubernetes 볼륨 저장를 설치해야 합니다.
권장되는 다음 단계:
-
클러스터를 생성한 IAM 보안 주체는 클러스터에 대한 액세스 권한이 있는 유일한 보안 주체입니다. 클러스터에 액세스할 수 있도록 다른 IAM 보안 주체에 권한을 부여합니다.
-
클러스터를 생성한 IAM 보안 주체에 사전 조건에서 참조하는 최소 IAM 권한만 있는 경우 해당 보안 주체에 대한 Amazon EKS 권한을 추가할 수 있습니다. IAM 보안 주체에 Amazon EKS 권한 부여에 대한 자세한 내용을 알아보려면 Amazon EKS용 자격 증명 및 액세스 관리 부분을 참조하세요.
-
클러스터를 생성한 IAM 보안 주체 또는 다른 보안 주체가 Amazon EKS 콘솔에서 Kubernetes 리소스를 보도록 하려면 엔터티에 필수 권한을 부여합니다.
-
노드와 IAM 보안 주체가 VPC 내에서 클러스터에 액세스하도록 하려면 클러스터에 대한 프라이빗 엔드포인트를 활성화합니다. 퍼블릭 엔드포인트는 기본적으로 활성화되어 있습니다. 원하는 경우 프라이빗 엔드포인트를 활성화한 후 퍼블릭 엔드포인트를 비활성화할 수 있습니다. 자세한 내용은 클러스터 API 서버 엔드포인트에 대한 네트워크 액세스 제어 단원을 참조하십시오.