このページの改善にご協力ください
本ユーザーガイドの改善にご協力いただけませんか? このページの下部までスクロールし、[GitHub でこのページの編集] を選択します。皆さまにご協力いただくことで、あらゆる人々に使いやすいユーザーガイドになります。
外部 Kubernetes クラスターを Amazon EKS マネジメントコンソールに接続する
以下のプロセスで複数のメソッドを使用して、外部の Kubernetes クラスターを Amazon EKS に接続できます。このプロセスには 2 つのステップがあります。Amazon EKS へのクラスターの登録と、クラスターへの eks-connector
エージェントのインストールです。
最初のステップを完了してから 3 日以内、つまり登録の有効期限が切れる前に 2 番目のステップを完了する必要があります。
考慮事項
エージェントをインストールする際には YAML マニフェストを使用できます。または、AWS Management Consoleまたは AWS Command Line Interface でクラスターを登録する場合は、Helm を使用できます。ただし、eksctl
でクラスターを登録する場合は、Helm を使用してエージェントをインストールすることはできません。
前提条件
ステップ 1: クラスターの登録
- AWS CLI
-
クラスターを AWS CLI に登録するには
-
コネクタ設定には、Amazon EKS Connector エージェントの IAM ロールを指定します。詳細については、「Amazon EKS コネクターの必要な IAM ロール」を参照してください。
aws eks register-cluster \
--name my-first-registered-cluster
\
--connector-config roleArn=arn:aws:iam::111122223333:role/AmazonEKSConnectorAgentRole
,provider="OTHER" \
--region aws-region
出力例は次のとおりです。
{
"cluster": {
"name": "my-first-registered-cluster
",
"arn": "arn:aws:eks:region:111122223333:cluster/my-first-registered-cluster
",
"createdAt": 1627669203.531,
"ConnectorConfig": {
"activationId": "xxxxxxxxACTIVATION_IDxxxxxxxx
",
"activationCode": "xxxxxxxxACTIVATION_CODExxxxxxxx
",
"activationExpiry": 1627672543.0,
"provider": "OTHER",
"roleArn": "arn:aws:iam::111122223333:role/AmazonEKSConnectorAgentRole"
},
"status": "CREATING"
}
}
次のステップで aws-region
、activationId
、activationCode
の値を使用します。
- AWS Management Console
-
コンソールに Kubernetes クラスターを登録するには。
Amazon EKS コンソール (https://console.aws.amazon.com/eks/home#/clusters) を開きます。
-
[Add cluster] (クラスターの追加) を選択し、[Register] (登録) を選択して設定ページを表示します。
-
[Configure cluster (クラスターの設定)] セクションで、次のフィールドに入力します。
-
[Name (名前)] – クラスターの一意の名前。
-
プロバイダー - Kubernetes クラスタープロバイダーのドロップダウンリストを表示することを選択します。特定のプロバイダが不明な場合は、[その他] を選択します。
-
EKS Connector のロール — クラスターの接続に使用するロールを選択します。
-
クラスターの登録を選択します。
-
[Cluster] 概要ページが表示されます。Helm チャートを使用する場合は、helm install
コマンドをコピーして次のステップに進みます。YAML マニフェストを使用する場合は、[YAML ファイルをダウンロード] を選択して、マニフェストファイルをローカルドライブにダウンロードします。
-
これは、helm
install
コマンドをコピーする、またはこのファイルをダウンロードする唯一の機会です。このページから移動しないでください。リンクにアクセスできないので、クラスターの登録を解除し、最初から手順を開始する必要があります。
-
コマンドまたはマニフェストファイルは、登録されたクラスターに対して一度だけ使用できます。Kubernetes クラスターからリソースを削除する場合は、クラスターを再登録し、新しいマニフェストファイルを取得する必要があります。
次のステップに進み、Kubernetes クラスターにマニフェストファイルを適用します。
- eksctl
-
クラスターを eksctl
に登録するには
-
名前、プロバイダー、およびリージョンを指定して、クラスターを登録します。
eksctl register cluster --name my-cluster
--provider my-provider
--region region-code
出力例:
2021-08-19 13:47:26 [ℹ] creating IAM role "eksctl-20210819194112186040"
2021-08-19 13:47:26 [ℹ] registered cluster "<name>" successfully
2021-08-19 13:47:26 [ℹ] wrote file eks-connector.yaml to <current directory>
2021-08-19 13:47:26 [ℹ] wrote file eks-connector-clusterrole.yaml to <current directory>
2021-08-19 13:47:26 [ℹ] wrote file eks-connector-console-dashboard-full-access-group.yaml to <current directory>
2021-08-19 13:47:26 [!] note: "eks-connector-clusterrole.yaml" and "eks-connector-console-dashboard-full-access-group.yaml" give full EKS Console access to IAM identity "<aws-arn>", edit if required; read https://eksctl.io/usage/eks-connector for more info
2021-08-19 13:47:26 [ℹ] run `kubectl apply -f eks-connector.yaml,eks-connector-clusterrole.yaml,eks-connector-console-dashboard-full-access-group.yaml` before expiry> to connect the cluster
これにより、ローカルコンピュータ上にファイルが作成されます。これらのファイルは 3 日以内に外部クラスターに適用する必要があります。そうしないと登録の有効期限が切れます。
-
クラスターにアクセスできるターミナルで、eks-connector-binding.yaml
ファイルを適用します。
kubectl apply -f eks-connector-binding.yaml
ステップ 2: eks-connector
エージェントのインストール
- Helm chart
-
eksctl
でクラスターを登録した場合は、Helm チャートの方法の代わりに YAML マニフェストの方法を使用します。
-
前のステップで AWS CLI を使用した場合は、次のコマンドで ACTIVATION_CODE
と ACTIVATION_ID
をそれぞれ activationId
と activationCode
の値に置き換えます。aws-region
を前のステップで使用した AWS リージョンに置き換えます。その後、次のコマンドを実行して、eks-connector
エージェントを登録クラスターにインストールします。
$
helm install eks-connector \
--namespace eks-connector \
oci://public.ecr.aws/eks-connector/eks-connector-chart \
--set eks.activationCode=ACTIVATION_CODE
\
--set eks.activationId=ACTIVATION_ID
\
--set eks.agentRegion=aws-region
前のステップで AWS Management Consoleを使用した場合は、前のステップからコピーした、以下の値が入力されたコマンドを使用します。
-
インストールされている eks-connector
デプロイの正常性をチェックし、Amazon EKS に登録されたクラスターのステータスが ACTIVE
になるのを待ちます。
- YAML manifest
-
Kubernetes クラスターに Amazon EKS Connector のマニフェストファイルを適用して、接続を完了します。これを行うには、前述のメソッドを使用する必要があります。マニフェストが 3 日以内に適用されない場合、Amazon EKS Connector の登録の有効期限が切れます。クラスター接続が期限切れになった場合は、クラスターを再度接続する前にクラスターの登録を解除する必要があります。
-
Amazon EKS コネクタ YAML ファイルをダウンロードします。
curl -O https://amazon-eks.s3.us-west-2.amazonaws.com/eks-connector/manifests/eks-connector/latest/eks-connector.yaml
-
Amazon EKS Connector の YAML ファイルを編集して、%AWS_REGION%
、%EKS_ACTIVATION_ID%
、%EKS_ACTIVATION_CODE%
のすべてのリファレンスを、前のステップの出力から得られた aws-region
、activationId
、activationCode
に置き換えます。
次のコマンド例では、これらの値を置き換えることができます。
sed -i "s~%AWS_REGION%~$aws-region
~g; s~%EKS_ACTIVATION_ID%~$EKS_ACTIVATION_ID
~g; s~%EKS_ACTIVATION_CODE%~$(echo -n $EKS_ACTIVATION_CODE
| base64)~g" eks-connector.yaml
アクティベーションコードが base64 形式であることを確認します。
-
クラスターにアクセスできるターミナルで、次のコマンドを実行して、更新されたマニフェストファイルを適用できます。
kubectl apply -f eks-connector.yaml
-
Amazon EKS Connector のマニフェストとロールバインディング YAML ファイルが Kubernetes クラスターに適用されたら、クラスターが接続されたことを確認します。
aws eks describe-cluster \
--name "my-first-registered-cluster"
\
--region AWS_REGION
出力には status=ACTIVE
が含まれている必要があります。
-
(オプション) クラスターにタグを追加します。詳細については、「タグを使用して Amazon EKS リソースを整理する」を参照してください。
次のステップ
これらのステップで問題が発生した場合は、「Amazon EKS Connector の問題をトラブルシューティングする」を参照してください。
追加の IAM プリンシパルに Amazon EKS コンソールへのアクセスを許可して、接続されているクラスター内の Kubernetes リソースを表示するには、「Amazon EKS コンソールで Kubernetes クラスターのリソースを表示するためのアクセスを付与する」を参照してください。