はじめに
セルフマネージド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側だけで行えるようになりました。
設定変更も簡単なので、アクセスエントリへの移行をお勧めします。
本記事が少しでもお役に立てれば幸いです。