View a markdown version of this page

EC2 インスタンスストアを設定した AWS Outposts に Amazon EKS ローカルクラスターをデプロイする - Amazon EKS

このページの改善にご協力ください

このユーザーガイドに貢献するには、すべてのページの右側のペインにある「GitHub でこのページを編集する」リンクを選択してください。

EC2 インスタンスストアを設定した AWS Outposts に Amazon EKS ローカルクラスターをデプロイする

このトピックでは、EC2 インスタンスストアを設定した AWS Outposts にローカルの Amazon EKS クラスターをデプロイする手順について説明します。

注記

Outpost が EC2 インスタンスストアではなく Amazon EBS で設定されている場合、このトピックで説明されているアーキテクチャは Outpost に使用できません。EBS を設定した Outposts は、既存のローカルクラスターの実装を引き続き使用します。詳細については、「AWS Outposts で Amazon EKS クラスターをデプロイする」を参照してください。

更新されたローカルクラスターアーキテクチャを使用して EBS-backed Outpost にローカルクラスターを作成する場合は、AWS アカウントチームにお問い合わせください。

重要

前提条件

注記

ローカルクラスターを作成すると、クラスターを作成する IAM プリンシパルが、system:masters アクセス許可を持つ管理者として Kubernetes RBAC 承認テーブルに恒久的に追加されます。このプリンシパルは絶対に削除しないでください。

ローカルクラスターを作成する

ローカルクラスターを作成するには、AWS マネジメントコンソール、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 マネジメントコンソール

  1. Amazon EKS コンソール を開きます。

  2. [クラスターを作成] を選択します。

  3. Kubernetes コントロールプレーンの場所に対して、AWS Outposts を選択します。

  4. 次を設定します。

    • [名前] - クラスターの名前。

    • [Kubernetes バージョン] - 使用するバージョン。

    • [クラスターサービスロール] - AmazonEKSClusterPolicy および AmazonEKSServicePolicy を備えた IAM ロール。

    • [Outpost ID] - デプロイ先のロジカル Outposts。

    • [コントロールプレーンインスタンスタイプ] - 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 にローカルクラスターを作成するときには、controlPlaneInstanceType パラメータと etcdInstanceType パラメータが必要です。controlPlanePlacement および etcdPlacement パラメータはオプションです。指定しないと、配置のスプレッド戦略が適用されません。

注記

outpostConfig は、作成専用のプロパティです。コントロールプレーンインスタンスタイプ、etcd インスタンスタイプ、配置、または Outposts を変更するには、新しいクラスターを作成する必要があります。

クラスターに接続する

クラスターと通信するように kubectl を設定します。

aws eks update-kubeconfig --region region-code --name my-cluster
注記

2.35.3 より前の AWS CLI バージョンを使用してクラスターを作成した場合は、exec 引数で --cluster-id ではなく --cluster-name を指定するように kubeconfig を更新する必要があります。

クラスターの Kubernetes API サーバーエンドポイントは、Amazon Route 53 でホストされます。エンドポイントは、Amazon EKS がサブネットに作成するクロスアカウントの Elastic Network Interface (ENI) のプライベート IP アドレスに解決されます。こうした ENI には、クラスターのライフサイクルを通じて変更されない固定のプライベート IP アドレスがあります。

クラスターを作成すると、Amazon EKS は指定したサブネットに 3 つの Elastic Network Interface を作成します。これらのネットワークインターフェイスは、クラスターと VPC 間の通信を可能にします。各ネットワークインターフェイスの説明には、テキスト Amazon EKS cluster-name が書き込まれます。

ワーカーノードをデプロイする

ローカルクラスターにワーカーノードをデプロイするには、セルフマネージドノードグループを使用します。

  1. ワーカーノードの AWS CloudFormation テンプレートをデプロイするか、Outposts に 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 名前空間に corednskube-proxyaws-node (VPC CNI) の各アドオンのセルフマネージドバージョンを自動的にインストールします。必要に応じて、Amazon EKS アドオン API を使用して、こうしたアドオンのマネージドバージョンをインストールできます。詳細については、「EC2 インスタンスストアを設定した AWS Outposts にあるローカルクラスターの Amazon EKS アドオン」を参照してください。

Amazon EKS はこのほか、クラスターと VPC 間の通信用にクロスアカウントの Elastic Network Interface (ENI) もサブネットに作成します。こうしたネットワークインターフェイスは削除しないでください。クロスアカウントの ENI が削除された場合や、その IP アドレスが変更された場合は、静的 IP ベースのアクセスを使用するノードと管理者をすべて手動で更新する必要があります。