EKS ハイブリッドノード - Eksctl ユーザーガイド

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

EKS ハイブリッドノード

序章

AWS EKS では、ハイブリッドノードが導入されています。ハイブリッドノードは、AWS クラウドで使用するのと同じ AWS EKS クラスター、機能、ツールを使用して、カスタマーマネージドインフラストラクチャでオンプレミスおよびエッジアプリケーションを実行できるようにする新機能です。AWS EKS Hybird Nodes は、AWS が管理する Kubernetes エクスペリエンスをオンプレミス環境に導入し、お客様がオンプレミス、エッジ、クラウド環境全体でアプリケーションを実行する方法を簡素化および標準化できるようにします。詳細については、「EKS Hybrid Nodes」を参照してください。

この機能のサポートを容易にするために、eksctl は という新しい最上位フィールドを導入しましたremoteNetworkConfig。Hybrid Nodes 関連の設定は、設定ファイルの一部としてこのフィールドを介して設定する必要があります。対応する CLI フラグはありません。さらに、起動時に、リモートネットワーク設定はクラスターの作成時にのみセットアップでき、後で更新することはできません。つまり、ハイブリッドノードを使用するように既存のクラスターを更新することはできません。

設定ファイルの remoteNetworkConfigセクションでは、リモートノードを EKS クラスターに結合する際、ネットワーク認証情報の 2 つのコア領域を設定できます。

ネットワーク

EKS Hybrid Nodes は、オンプレミスネットワーク (複数可) を AWS VPC に接続する任意の方法に柔軟に対応します。AWS Site-to-Site VPN や AWS Direct Connect など、いくつかの文書化されたオプションがあり、ユースケースに最適な方法を選択できます。選択したほとんどの方法では、VPC は仮想プライベートゲートウェイ (VGW) またはトランジットゲートウェイ (TGW) のいずれかにアタッチされます。eksctl を使用して VPC を作成する場合、eksctl は VPC の範囲内で、EKS コントロールプレーンとリモートノード間の通信を容易にするために、ネットワーク関連の前提条件も設定します。

  • Ingress/Egress SG ルール

  • プライベートサブネットのルートテーブルの ルート

  • 指定された TGW または VGW への VPC ゲートウェイアタッチメント

設定ファイルの例:

remoteNetworkConfig: vpcGatewayID: tgw-xxxx # either VGW or TGW to be attached to your VPC remoteNodeNetworks: # eksctl will create, behind the scenes, SG rules, routes, and a VPC gateway attachment, # to facilitate communication between remote network(s) and EKS control plane, via the attached gateway - cidrs: ["10.80.146.0/24"] remotePodNetworks: - cidrs: ["10.86.30.0/23"]

選択した接続方法に TGW または VGW を使用しない場合は、eksctl を使用して VPC を作成し、代わりに既存の VPC を提供することはできません。関連する注意点として、既存の VPC を使用している場合、eksctl はそれを修正せず、すべてのネットワーク要件が設定されていることを確認するのはお客様の責任です。

注記

eksctl は、AWS VPC の外部にネットワークインフラストラクチャ (つまり、VPG/TGW からリモートネットワークへのインフラストラクチャ) をセットアップしません。

認証情報

EKS Hybrid Nodes は、AWS SSM または AWS IAM Roles Anywhere によってプロビジョニングされた AWS IAM Authenticator と一時的な IAM 認証情報を使用して、EKS クラスターで認証します。 セルフマネージド型ノードグループと同様に、特に指定されていない場合、eksctl はリモートノードが引き受けるハイブリッドノード IAM ロールを作成します。さらに、IAM Roles Anywhere を認証情報プロバイダーとして使用すると、eksctl は特定の認証機関バンドル (iam.caBundleCert) に基づいてプロファイルとトラストアンカーを設定します。例:

remoteNetworkConfig: iam: # the provider for temporary IAM credentials. Default is SSM. provider: IRA # the certificate authority bundle that serves as the root of trust, # used to validate the X.509 certificates provided by your nodes. # can only be set when provider is IAMRolesAnywhere. caBundleCert: xxxx

eksctl によって作成されたハイブリッドノードロールの ARN は、リモートノードをクラスターに結合し、 NodeConfigをセットアップしnodeadm、アクティベーションを作成するプロセスの後半で必要です (SSM を使用している場合)。取得するには、以下を使用します。

aws cloudformation describe-stacks \ --stack-name eksctl-<CLUSTER_NAME>-cluster \ --query 'Stacks[].Outputs[?OutputKey==`RemoteNodesRoleARN`].[OutputValue]' \ --output text

同様に、IAM Roles Anywhere を使用する場合、eksctl によって作成されたトラストアンカーと anywhere プロファイルの ARN を取得し、RemoteNodesAnywhereProfileARNそれぞれ を RemoteNodesTrustAnchorARNまたは RemoteNodesRoleARNに置き換えて前のコマンドを修正できます。

既存の IAM Roles Anywhere 設定がある場合、または SSM を使用している場合は、 を介してハイブリッドノードの IAM ロールを指定できますremoteNetworkConfig.iam.roleARN。このシナリオでは、eksctl はトラストアンカーと anywhere プロファイルを作成しないことに注意してください。例:

remoteNetworkConfig: iam: roleARN: arn:aws:iam::000011112222:role/HybridNodesRole

ロールを Kubernetes ID にマッピングし、リモートノードが EKS クラスターに参加することを許可するために、eksctl はハイブリッドノードの IAM ロールをプリンシパル ARN として、タイプ HYBRID_LINUXのアクセスエントリを作成します。つまり、

eksctl get accessentry --cluster my-cluster --principal-arn arn:aws:iam::000011112222:role/eksctl-my-cluster-clust-HybridNodesSSMRole-XiIAg0d29PkO --output json [ { "principalARN": "arn:aws:iam::000011112222:role/eksctl-my-cluster-clust-HybridNodesSSMRole-XiIAg0d29PkO", "kubernetesGroups": [ "system:nodes" ] } ]

アドオンのサポート

Container Networking Interface (CNI): AWS VPC CNI はハイブリッドノードでは使用できません。Cilium および Calico のコア機能は、ハイブリッドノードでの使用がサポートされています。CNI は、Helm などの任意のツールで管理できます。詳細については、「ハイブリッドノードの CNI を設定する」を参照してください。

注記

セルフマネージド型または EKS マネージド型ノードグループのクラスターに VPC CNI をインストールする場合は、 v1.19.0-eksbuild.1以降を使用する必要があります。これには、ハイブリッドノードにインストールされないようにするためにアドオンのデーモンセットへの udpate が含まれるためです。

その他のリファレンス