はじめに
セルフマネージドAmazon Linuxノードを作成し、EKSクラスターに参加させる方法として、以下のAWS公式ドキュメントを参考にしていました。
手順内でノードを参加させるのにaws-auth ConfigMapを使用していますが、aws-auth ConfigMapは現在非推奨となっているようです。
アクセスエントリを使用したノードの参加方法を記事に残しておきます。
アクセスエントリとは
- EKS クラスターのバージョンが
1.23以上で使用可能。 - アクセスエントリを使用する前に、クラスターの認証モードを
EKS API and ConfigMapまたはEKS APIに変更する必要がある。 - 一度
EKS APIに変更すると、ConfigMapやEKS API and ConfigMapに戻すことが出来ない。EKS API and ConfigMapからConfigMapに戻すことも出来ない。
手順
EKSクラスターの作成手順は割愛します。
認証モードをEKS API and ConfigMapまたは EKS APIに設定する必要がある点だけ注意。
1. AWS Management Consoleを使用してセルフマネージド型のLinuxノードを起動する
公式手順から変更は無いため、割愛します。
スタックの作成が完了したら、NodeInstanceRoleの値を控えておきましょう。
次のアクセスエントリの作成で必要になります。
2. アクセスエントリを作成する
①アクセスエントリを作成するクラスターを選択する。
②「アクセス」タブをクリックし(a)、「IAMアクセスエントリ」の「アクセスエントリの作成」をクリックする(b)。
③アクセスエントリを作成する。
| 設定項目 | 設定値 |
|---|---|
| IAM プリンシパル ARN | メモした「NodeInstanceRole」を入力する |
| タイプ - オプション | EC2 Linux |
④アクセスエントリが作成されたことを確認する。
3. ノードがクラスターに参加されていることを確認する
$ kubectl get node
NAME STATUS ROLES AGE VERSION
ip-xxx-xx-xxx-xxx.ap-northeast-1.compute.internal Ready <none> XXm v1.XX.X-eks-XXXXxxX
ip-xxx-xx-xxx-yyy.ap-northeast-1.compute.internal Ready <none> XXm v1.XX.X-eks-XXXXxxX
ip-xxx-xx-xxx-zzz.ap-northeast-1.compute.internal Ready <none> XXm v1.XX.X-eks-XXXXxxX
スタック作成時に指定した「NodeAutoScalingGroupDesiredCapacity」の数だけ Pod が参加されていればOKです。
最後に
IAM ユーザ・ロールの権限設定をAWS側だけで行えるようになりました。
設定変更も簡単なので、アクセスエントリへの移行をお勧めします。
本記事が少しでもお役に立てれば幸いです。



