AWS Outposts 지원 - Eksctl 사용 설명서

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS Outposts 지원

주의

EKS 관리형 노드 그룹은 Outposts에서 지원되지 않습니다.

기존 클러스터를 AWS Outposts로 확장

다음과 같이 nodeGroup.outpostARN 새 노드 그룹이 Outposts에 노드 그룹을 생성하도록 설정하여 AWS 리전에서 실행되는 기존 EKS 클러스터를 AWS Outposts로 확장할 수 있습니다.

# extended-cluster.yaml --- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: existing-cluster region: us-west-2 nodeGroups: # Nodegroup will be created in an AWS region. - name: ng # Nodegroup will be created on the specified Outpost. - name: outpost-ng privateNetworking: true outpostARN: "arn:aws:outposts:us-west-2:1234:outpost/op-1234"
eksctl create nodegroup -f extended-cluster.yaml

이 설정에서 EKS 컨트롤 플레인은 AWS 리전에서 실행되는 반면 outpostARN 설정된 노드 그룹은 지정된 Outpost에서 실행됩니다. Outposts에서 노드 그룹을 처음 생성하는 경우 eksctl은 지정된 Outpost에 서브넷을 생성하여 VPC를 확장합니다. 이러한 서브넷은가 outpostARN 설정된 노드 그룹을 생성하는 데 사용됩니다.

기존 VPC가 있는 고객은 다음과 nodeGroup.subnets같이 Outposts에서 서브넷을 생성하고에 전달해야 합니다.

# extended-cluster-vpc.yaml --- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: extended-cluster-vpc region: us-west-2 vpc: id: vpc-1234 subnets: private: outpost-subnet-1: id: subnet-1234 nodeGroups: # Nodegroup will be created in an AWS region. - name: ng # Nodegroup will be created on the specified Outpost. - name: outpost-ng privateNetworking: true # Subnet IDs for subnets created on Outpost. subnets: [subnet-5678] outpostARN: "arn:aws:outposts:us-west-2:1234:outpost/op-1234"

AWS Outposts에서 로컬 클러스터 생성

참고

로컬 클러스터는 Outpost 랙만 지원합니다.

참고

컨트롤 플레인이 Outposts에 있는 경우 노드 그룹에는 Amazon Linux 2만 지원됩니다. Outposts의 노드 그룹에는 EBS gp2 볼륨 유형만 지원됩니다.

eksctl에서 AWS Outposts 지원을 사용하면 AWS Outposts에서 로컬로 실행되는 EKS 컨트롤 플레인 및 작업자 노드를 포함한 전체 Kubernetes 클러스터로 로컬 클러스터를 생성할 수 있습니다. 고객은 AWS Outposts에서 로컬로 실행되는 EKS 컨트롤 플레인과 작업자 노드를 모두 사용하여 로컬 클러스터를 생성하거나, Outposts에서 작업자 노드를 생성하여 AWS 리전에서 실행되는 기존 EKS 클러스터를 AWS Outposts로 확장할 수 있습니다.

AWS Outposts에서 EKS 컨트롤 플레인 및 노드 그룹을 생성하려면 다음과 같이 outpost.controlPlaneOutpostARN를 Outpost ARN으로 설정합니다.

# outpost.yaml --- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: outpost region: us-west-2 outpost: # Required. controlPlaneOutpostARN: "arn:aws:outposts:us-west-2:1234:outpost/op-1234" # Optional, defaults to the smallest available instance type on the Outpost. controlPlaneInstanceType: m5d.large
eksctl create cluster -f outpost.yaml

이렇게 하면 eksctl이 지정된 Outpost에 EKS 컨트롤 플레인과 서브넷을 생성하도록 지시합니다. Outpost 랙은 단일 가용 영역에 존재하므로 eksctl은 퍼블릭 및 프라이빗 서브넷을 하나만 생성합니다. eksctl은 생성된 VPC를 로컬 게이트웨이와 연결하지 않으므로 eksctl은 API 서버에 대한 연결이 부족하고 노드 그룹을 생성할 수 없습니다. 따라서 클러스터 생성 중에에 노드 그룹이 ClusterConfig 포함된 경우 다음과 --without-nodegroup같이 명령을 로 실행해야 합니다.

eksctl create cluster -f outpost.yaml --without-nodegroup

API 서버에 연결할 수 있도록 클러스터를 생성한 후 eksctl에서 생성한 VPC를 로컬 게이트웨이와 연결하는 것은 고객의 책임입니다. 이 단계 후에는를 사용하여 노드 그룹을 생성할 수 있습니다eksctl create nodegroup.

선택적으로의 컨트롤 플레인 노드 outpost.controlPlaneInstanceType 또는의 노드 그룹에 대한 인스턴스 유형을 지정할 수 있지만 nodeGroup.instanceType인스턴스 유형이 Outpost에 있어야 합니다. 그렇지 않으면 eksctl이 오류를 반환합니다. 기본적으로 eksctl은 컨트롤 플레인 노드 및 노드 그룹에 대해 Outpost에서 사용 가능한 가장 작은 인스턴스 유형을 선택하려고 시도합니다.

컨트롤 플레인이 Outposts에 있으면 해당 Outpost에 노드 그룹이 생성됩니다. 선택적으로의 노드 그룹에 대한 Outpost ARN을 지정할 수 nodeGroup.outpostARN 있지만 컨트롤 플레인의 Outpost ARN과 일치해야 합니다.

# outpost-fully-private.yaml --- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: outpost-fully-private region: us-west-2 privateCluster: enabled: true outpost: # Required. controlPlaneOutpostARN: "arn:aws:outposts:us-west-2:1234:outpost/op-1234" # Optional, defaults to the smallest available instance type on the Outpost. controlPlaneInstanceType: m5d.large
# outpost.yaml --- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: outpost region: us-west-2 outpost: # Required. controlPlaneOutpostARN: "arn:aws:outposts:us-west-2:1234:outpost/op-1234" # Optional, defaults to the smallest available instance type on the Outpost. controlPlaneInstanceType: m5d.large controlPlanePlacement: groupName: placement-group-name

기존 VPC

기존 VPC가 있는 고객은 다음과 vpc.subnets같이에서 서브넷 구성을 지정하여 AWS Outposts에서 로컬 클러스터를 생성할 수 있습니다.

# outpost-existing-vpc.yaml --- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: outpost region: us-west-2 vpc: id: vpc-1234 subnets: private: outpost-subnet-1: id: subnet-1234 nodeGroups: - name: outpost-ng privateNetworking: true outpost: # Required. controlPlaneOutpostARN: "arn:aws:outposts:us-west-2:1234:outpost/op-1234" # Optional, defaults to the smallest available instance type on the Outpost. controlPlaneInstanceType: m5d.large
eksctl create cluster -f outpost-existing-vpc.yaml

서브넷은에 지정된 Outpost에 있어야 합니다. outpost.controlPlaneOutpostARN 그렇지 않으면 eksctl이 오류를 반환합니다. 서브넷의 로컬 게이트웨이에 액세스할 수 있거나 VPC 리소스에 연결되어 있는 경우 클러스터 생성 중에 노드 그룹을 지정할 수도 있습니다.

로컬 클러스터에서 지원되지 않는 기능

추가 정보