View a markdown version of this page

EC2 인스턴스 저장소로 구성된 AWS Outposts에 Amazon EKS 로컬 클러스터 배포 - Amazon EKS

이 페이지 개선에 도움 주기

이 사용자 가이드에 기여하려면 모든 페이지의 오른쪽 창에 있는 GitHub에서 이 페이지 편집 링크를 선택합니다.

EC2 인스턴스 저장소로 구성된 AWS Outposts에 Amazon EKS 로컬 클러스터 배포

이 주제에서는 EC2 인스턴스 저장소로 구성된 AWS Outpost에 로컬 Amazon EKS 클러스터를 배포하는 지침을 제공합니다.

참고

Outpost가 EC2 인스턴스 저장소 대신 Amazon EBS로 구성된 경우 이 주제에 설명된 아키텍처는 Outpost에 사용할 수 없습니다. EBS로 구성된 Outpost는 기존 로컬 클러스터 구현을 계속 사용합니다. 자세한 내용은 AWS Outposts에 Amazon EKS 클러스터 배포 섹션을 참조하세요.

업데이트된 로컬 클러스터 아키텍처를 사용하여 EBS 지원 Outpost에서 로컬 클러스터를 생성하려면 AWS 계정 팀에 문의하세요.

중요

사전 조건

참고

Amazon EKS 클러스터를 생성할 때 클러스터를 생성하는 IAM 보안 주체가 RBAC 권한 부여 표에 system:masters 권한이 있는 관리자로 영구적으로 추가됩니다. 이 보안 주체를 삭제하지 마세요.

로컬 클러스터 생성

AWS Management Console, AWS CLI, Amazon EKS API 또는 AWS CloudFormation을 사용하여 로컬 클러스터를 생성할 수 있습니다.

로컬 클러스터를 생성할 때 다음에 유의하세요.

AWS CLI

aws eks create-cluster \ --name my-cluster \ --role-arn arn:aws:iam::111122223333:role/myEKSClusterRole \ --kubernetes-version 1.36 \ --resources-vpc-config subnetIds=subnet-ExampleID1,endpointPrivateAccess=true,endpointPublicAccess=true \ --logging '{"clusterLogging":[{"types":["api","audit","authenticator","controllerManager","scheduler"],"enabled":true}]}' \ --access-config authenticationMode=API_AND_CONFIG_MAP,bootstrapClusterCreatorAdminPermissions=true \ --outpost-config outpostArns=arn:aws:outposts:region-code:111122223333:outpost/op-uniqueid,controlPlaneInstanceType=m5.large,controlPlanePlacement={spreadLevel=host},etcdInstanceType=m5.large,etcdPlacement={spreadLevel=host}

AWS Management Console

  1. Amazon EKS 콘솔을 엽니다.

  2. 클러스터 생성을 선택합니다.

  3. Kubernetes 컨트롤 플레인 위치에서 AWS Outposts를 선택합니다.

  4. 다음을 구성합니다.

    • 이름 - 클러스터의 이름.

    • Kubernetes 버전 - 사용할 버전.

    • 클러스터 서비스 역할 - AmazonEKSClusterPolicyAmazonEKSServicePolicy가 있는 IAM 역할.

    • Outpost ID - 배포할 논리적 Outpost.

    • 컨트롤 플레인 인스턴스 유형 - Kubernetes API 서버, 스케줄러, 컨트롤러 관리자의 인스턴스 유형.

    • etcd 인스턴스 유형 - etcd의 인스턴스 유형.

    • 분산 수준 - 컨트롤 플레인 및 etcd 배치의 host 또는 rack.

  5. 네트워킹 구성: VPC, 서브넷, 보안 그룹. 프라이빗 엔드포인트 액세스를 활성화합니다.

  6. 관찰성 구성: 컨트롤 플레인 로깅.

  7. 검토 및 생성.

CreateCluster API

{ "name": "my-cluster", "roleArn": "arn:aws:iam::111122223333:role/myEKSClusterRole", "version": "1.36", "resourcesVpcConfig": { "subnetIds": ["subnet-ExampleID1"], "endpointPublicAccess": true, "endpointPrivateAccess": true }, "logging": { "clusterLogging": [{ "types": ["api", "audit", "authenticator", "controllerManager", "scheduler"], "enabled": true }] }, "accessConfig": { "authenticationMode": "API_AND_CONFIG_MAP", "bootstrapClusterCreatorAdminPermissions": true }, "outpostConfig": { "outpostArns": ["arn:aws:outposts:region-code:111122223333:outpost/op-uniqueid"], "controlPlaneInstanceType": "m5.large", "controlPlanePlacement": { "spreadLevel": "host" }, "etcdInstanceType": "m5.large", "etcdPlacement": { "spreadLevel": "host" } } }

EC2 인스턴스 저장소로 구성된 Outposts에서 로컬 클러스터를 생성할 때 controlPlaneInstanceTypeetcdInstanceType 파라미터는 필수입니다. controlPlanePlacementetcdPlacement 파라미터는 선택 사항입니다. 파라미터를 지정하지 않으면 배치 분산 전략이 적용되지 않습니다.

참고

outpostConfig는 생성 전용 속성입니다. 컨트롤 플레인 인스턴스 유형, etcd 인스턴스 유형, 배치 또는 Outpost를 변경하려면 새 클러스터를 생성해야 합니다.

클러스터에 연결

클러스터와 통신하도록 kubectl을 구성합니다.

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

AWS CLI 버전 2.35.3 이하를 사용하여 클러스터를 생성한 경우 kubeconfig를 업데이트하여 exec args에 (--cluster-id 대신) --cluster-name을 지정해야 합니다.

클러스터의 Kubernetes API 서버 엔드포인트는 Amazon Route 53에서 호스팅됩니다. 이 엔드포인트는 Amazon EKS가 서브넷에 생성하는 교차 계정 탄력적 네트워크 인터페이스(ENI)의 프라이빗 IP 주소로 확인됩니다. 이러한 ENI에는 클러스터 수명 주기 동안 변경되지 않는 고정 프라이빗 IP 주소가 있습니다.

클러스터를 생성하는 경우 Amazon EKS에서는 지정한 서브넷에 3개의 탄력적 네트워크 인터페이스를 생성합니다. 이러한 네트워크 인터페이스를 사용하면 클러스터와 VPC 간에 통신할 수 있습니다. 각 네트워크 인터페이스의 설명에는 Amazon EKS cluster-name 이 포함되어 있습니다.

워커 노드 배포

자체 관리형 노드 그룹을 사용하여 로컬 클러스터에 워커 노드를 배포합니다.

  1. 워커 노드 AWS CloudFormation 템플릿을 배포하거나 Outpost에 개별 EC2 인스턴스를 생성합니다.

    curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2025-11-24/amazon-eks-outpost-nodegroup.yaml
  2. 노드 인스턴스 역할에 클러스터 액세스 권한을 부여합니다. 노드의 IAM 역할을 위한 액세스 항목을 생성합니다.

    aws eks create-access-entry \ --cluster-name my-cluster \ --principal-arn arn:aws:iam::111122223333:role/myNodeRole \ --type EC2_LINUX

    또는 인증에 aws-auth ConfigMap을 사용하는 경우 ConfigMap에 노드 인스턴스 역할을 추가합니다. IAM 사용자 및 역할에 Kubernetes API에 대한 액세스 권한 부여을(를) 참조하세요.

  3. 노드가 Ready 상태인지 확인합니다.

    kubectl get nodes

내부 리소스

로컬 클러스터를 생성하면 Amazon EKS는 kube-system 네임스페이스에 coredns, kube-proxy, aws-node(VPC CNI) 추가 기능의 자체 관리형 버전을 자동으로 설치합니다. 원하는 경우 Amazon EKS 추가 기능 API를 통해 이러한 추가 기능의 관리형 버전을 설치할 수 있습니다. 자세한 내용은 EC2 인스턴스 저장소로 구성된 AWS Outposts의 로컬 클러스터를 위한 Amazon EKS 추가 기능 섹션을 참조하세요.

Amazon EKS는 클러스터-VPC 통신을 위해 서브넷에 교차 계정 탄력적 네트워크 인터페이스(ENI)도 생성합니다. 이러한 네트워크 인터페이스를 삭제하지 마세요. 교차 계정 ENI가 삭제되거나 IP 주소가 변경되는 경우 고정 IP 기반 액세스를 사용하는 모든 노드와 모든 관리자를 수동으로 업데이트해야 합니다.