Amazon Web Services ブログ

Amazon EKS ハイブリッドノードを使用して、オンプレミスのインフラストラクチャを Amazon EKS クラスターで使用する

12 月 1 日、オンプレミスおよびエッジインフラストラクチャをクラウド内の EKS クラスターに対するノードとしてアタッチするために使用できる新機能である Amazon Elastic Kubernetes Service (Amazon EKS) ハイブリッドノードの一般提供の開始を発表しました。

Amazon EKS ハイブリッドノードを使用すると、クラウド環境とオンプレミス環境全体で Kubernetes 管理を統合し、アプリケーションを実行する必要があるすべての場所で Amazon EKS のスケールと可用性を活用できます。既存のオンプレミスハードウェアを使用しながら、Kubernetes コントロールプレーンの管理責任を EKS にオフロードし、ワークロードのためのオンプレミスキャパシティを節約できます。Amazon EKS ハイブリッドノードを使用すると、クラウド環境とオンプレミス環境全体で一貫した運用慣行とツールを採用できます。

以前に導入した Amazon EKS on AWS OutpostsAmazon EKS Anywhere に加えて、Amazon EKS ハイブリッドノードは、ハイブリッド Kubernetes デプロイのサポートを拡張します。各 EKS ハイブリッドデプロイオプションで Kubernetes とハードウェアコンポーネントがどのように管理されるかを比較できます。

コンポーネント EKS on Outposts EKS ハイブリッドノード EKS Anywhere
ハードウェア AWS によって管理 お客様によって管理
Kubernetes コントロールプレーン AWS によってホストおよび管理 お客様によってホストおよび管理
Kubernetes ノード Amazon EC2 カスタマーマネージド型の物理マシンまたは仮想マシン

Amazon EKS ハイブリッドノードを使用してオンプレミスおよびエッジインフラストラクチャを EKS クラスターにアタッチすると、Amazon EKS アドオンポッド IDクラスターアクセスエントリクラスターインサイト、Kubernetes バージョンの拡張サポートなど、Amazon EKS の他の機能と統合を使用できます。Amazon EKS ハイブリッドノードは、一元的なモニタリング、ログ記録、および ID 管理のために、AWS Systems ManagerAWS IAM Roles AnywhereAmazon Managed Service for PrometheusAmazon CloudWatchAmazon GuardDuty などの AWS サービスと本質的に統合します。

Amazon EKS ハイブリッドノードの使用を開始する
Amazon EKS ハイブリッドノードを使用するステップは次のとおりです。まず、EKS クラスターを作成し、オンプレミスのノードとポッドのサブネットを指定します。オンプレミス環境のネットワーク接続と AWS Identity and Access Management (AWS IAM) 許可を設定したら、クラスターに参加する各ホストで Amazon EKS ハイブリッドノード CLI (nodeadm) を実行します。ハイブリッドノードがクラスターに参加すると、kube-proxy や CoreDNS などの必要なネットワーキングコンポーネントが自動的にインストールされます。ハイブリッドノードがアプリケーションを提供する準備が整う前に、互換性のある Container Network Interface (CNI) ドライバーをインストールする必要があります。Cilium および Calico CNI ドライバーは、Amazon EKS ハイブリッドノードでの使用がサポートされています。

1.前提条件

オンプレミスインフラストラクチャをハイブリッドノードとして EKS クラスターに参加させるには、次を含む特定の前提条件を満たす必要があります:

  • オンプレミス環境と AWS 間のハイブリッドネットワーク接続 (AWS Site-to-Site VPNAWS Direct Connect、または別の仮想プライベートネットワーク (VPN) ソリューションを使用)
  • オンプレミスノードのルーティングテーブルにルートがあり、オプションでポッドネットワークがあり、ターゲットとして仮想プライベートゲートウェイ (VGW) またはトランジットゲートウェイ (TGW) が設定されている仮想プライベートクラウド (VPC)
  • 物理マシンまたは仮想マシンの形式のインフラストラクチャ
  • ハイブリッドノードと互換性のあるオペレーティングシステム
  • コントロールプレーンでハイブリッドノードを認証するように設定された AWS IAM Roles Anywhere または AWS Systems Manager のいずれか
  • EKS クラスター IAM ロールEKS ハイブリッドノード IAM ロール

ハイブリッドノードのノードオペレーティングシステムとして、Amazon Linux 2023、Ubuntu 20.04、Ubuntu 22.04、Ubuntu 24.04、または Red Hat Enterprise Linux (RHEL) 8 および 9 を使用できます。AWS は、これらのオペレーティングシステムとのハイブリッドノード統合をサポートしていますが、オペレーティングシステム自体のサポートは提供していません。オペレーティングシステムのプロビジョニングと管理はお客様の責任です。

詳細については、「Amazon EKS ユーザーガイド」の「Prerequisites for EKS Hybrid Nodes」にアクセスしてください。

2.EKS クラスターを作成し、ハイブリッドノードを有効にする

Amazon EKS コンソールに移動し、EKS クラスターの作成を開始します。[ステップ 2 ネットワーキングを指定] 画面で、[ハイブリッドノードを有効にするようにリモートネットワークを設定] オプションの [ハイブリッドノードに使用するオンプレミス環境のために CIDR ブロックを指定] をオンにします。

リモートノードとポッドの Classless Inter-Domain Routing (CIDR) は、RFC-1918 IPv4 IPv4 アドレスである必要があり、VPC CIDR または EKS クラスター Kubernetes サービス CIDR と重複することはできません。さらに、リモートノード CIDR とリモートポッド CIDR は重複できません。ノードでウェブフックを実行する場合、またはポッドトラフィックがノードを離れるときに CNI がポッドアドレスのために NAT を使用しない場合は、ポッド CIDR ブロックを指定する必要があります。

また、AWS コマンドラインインターフェイス (AWS CLI)eksctl、および AWS CloudFormation を使用して EKS クラスターを作成することもできます。Amazon EKS ハイブリッドノードのためにクラスターを有効にするには、remote-network-config フラグを使用してリモートノードを指定し、オプションでリモートポッド CIDR ブロックを指定します。

$ aws eks create-cluster --name channy-hybrid-cluster --region=us-east-1 \
    --role-arn arn:aws:iam::012345678910:role/eks-cluster-role \
    --resources-vpc-config subnetIds=subnet-1234a11a,subnet-5678b11b \
    --remote-network-config \
{"remoteNodeNetworks":[{"cidrs":["10.80.0.0/16"]}],"remotePodNetworks":[{"cidrs":["10.85.0.0/16"]}]}}

クラスターは、API または API_AND_CONFIG_MAP クラスターアクセス認証モードで設定されている必要があります。EKS ハイブリッドノード IAM ロールのために Amazon EKS アクセスエントリを作成して、ノードがクラスターに参加できるようにします。

$ aws eks create-access-entry \
  --cluster-name my-hybrid-cluster \
  --principal-arn arn:aws:iam::012345678910:role/eksHybridNodesRole \ 
  --type HYBRID_LINUX

Amazon EKS ハイブリッドノードは、AWS Systems Manager ハイブリッドアクティベーションまたは AWS IAM Roles Anywhere によってプロビジョニングされた一時的な IAM 認証情報を使用して、EKS クラスターで認証します。オンプレミスノードを接続する前に、AWS Systems Manager ハイブリッドアクティベーションを作成するか、または AWS IAM Roles Anywhere で使用するためにノードに証明書とキーを追加する必要があります。詳細については、「Amazon EKS ユーザーガイド」の「Prepare credentials for EKS Hybrid Nodes」にアクセスしてください。

3.ハイブリッドノードを EKS クラスターに接続する

これで、Amazon EKS ハイブリッドノードを EKS クラスターに接続する準備が整いました。Amazon EKS ハイブリッドノード CLI (nodeadm) を使用すると、ハイブリッドノードとしてのホストのインストール、設定、登録を簡素化できます。nodeadm は、nodeadm install コマンドを実行すると、必要な AWS Systems Manager または IAM Roles Anywhere コンポーネントを自動的にインストールします。

実行中の各ホストで nodeadm install プロセスを実行するか、またはオペレーティングシステムのビルドパイプラインの一部として nodeadm install を実行して、ホストを EKS クラスターに参加させるために必要なコンポーネントを含むイメージを生成できます。

$ nodeadm install 1.31 --credential-provider <ssm, iam-ra>
{"level":"info","ts":...,"caller":"...","msg":"Loading configuration","configSource":"file://nodeConfig.yaml"}
{"level":"info","ts":...,"caller":"...","msg":"Validating configuration"}
{"level":"info","ts":...,"caller":"...","msg":"Validating Kubernetes version","kubernetes version":"1.30"}
{"level":"info","ts":...,"caller":"...","msg":"Using Kubernetes version","kubernetes version":"1.30.0"}
{"level":"info","ts":...,"caller":"...","msg":"Installing SSM agent installer..."}
{"level":"info","ts":...,"caller":"...","msg":"Installing kubelet..."}
{"level":"info","ts":...,"caller":"...","msg":"Installing kubectl..."}
{"level":"info","ts":...,"caller":"...","msg":"Installing cni-plugins..."}
{"level":"info","ts":...,"caller":"...","msg":"Installing image credential provider..."}
{"level":"info","ts":...,"caller":"...","msg":"Installing IAM authenticator..."}
{"level":"info","ts":...,"caller":"...","msg":"Finishing up install..."}

EKS クラスターに接続するために必要な情報を含む nodeConfig.yaml ファイルを各ホストで作成します。AWS Systems Manager ハイブリッドアクティベーションを使用する nodeConfig.yaml の例を次に示します。

apiVersion: node.eks.aws/v1alpha1
kind: NodeConfig
metadata:
  name: hybrid-node
spec:
  cluster:
    name: my-cluster
    region: us-east-1
  hybrid:
    roleArn: arn:aws:iam:012345678910:role/eksHybridNodesRole
    ssm:
      activationCode: <activation-code>
      activationId: <activation-id>

次に、各ホストで nodeadm を実行します。

$ nodeadm init -c file:/// nodeConfig.yaml

前述のコマンドが正常に完了した場合、ハイブリッドノードは EKS クラスターに参加しています。これは、Amazon EKS コンソールまたは kubectl get nodes コマンドで確認できます。ハイブリッドノードのステータスが [準備完了] になる前に、互換性のある CNI をインストールする必要があります。詳細については、「Amazon EKS ユーザーガイド」の「Install CNI for EKS Hybrid Nodes」にアクセスしてください。

4.EKS コンソールで接続されたハイブリッドノードを表示および管理する

ノードの準備が整ったので、EKS コンソールでハイブリッドノードとそこで実行されているリソースを表示できます。

ハイブリッドノードの管理と、それらが実行するソフトウェアの更新は、お客様の責任です。Amazon EKS ハイブリッドノード CLI の最新バージョンに更新して、最新の修正プログラムと更新を取得し、Kubernetes バージョンをアップグレードできます。詳細については、「Amazon EKS ユーザーガイド」の「Upgrade EKS Hybrid Nodes」にアクセスしてください。

今すぐご利用いただけます
Amazon EKS ハイブリッドノードは、AWS GovCloud (米国) リージョンと中国リージョンを除くすべての AWS リージョンでご利用いただけるようになりました。

前払いの義務や最低料金はなく、EKS クラスターと EKS ハイブリッドノードは使用した時間に応じて時間単位でお支払いいただきます。ハイブリッドノードを含む EKS クラスターのクラスターあたりの時間単位のコストは、標準サポートと拡張サポートの両方において AWS クラウドで実行されているノードを含む EKS クラスターと同じです。さらに、ハイブリッドノードを含む EKS クラスターでは、ハイブリッドノード vCPU ごとに時間単位の料金が発生します。詳細については、「Amazon EKS の料金」ページにアクセスしてください。

Amazon EKS コンソールで EKS ハイブリッドノードをぜひお試しください。詳細については、EKS ハイブリッドノードのドキュメントにアクセスしてください。また、AWS re:Post for EKS に、または通常の AWS サポートの連絡先を通じて、フィードバックをぜひお寄せください。

Channy

原文はこちらです。