概要
EKSで使用するワーカーノードのプロビジョニングおよび管理を、EKSのサポートとして対応されたことが2019年11月18日にAWSから発表されました。
つまり、自前でEC2を管理する必要がなくなります。これは超待望。
https://aws.amazon.com/jp/about-aws/whats-new/2019/11/amazon-eks-adds-support-for-provisioning-and-managing-kubernetes-worker-nodes/
従来のワーカーノードの管理方法
ワーカーノード用EC2のプロビジョニングはオートスケーリンググループを用意するなどの方法で行う必要がありました。
つまり、EC2の管理とEKSの管理は別々でした。
さらに、オートスケーリンググループを使った場合は下記の設定をする必要がありました。
- クラスターオートスケール用の設定を自身で行う
- EC2起動時のuser dataにEKSクラスタと紐付けるスクリプトが必要
今回のアップデート内容
NodeとPodのキャパシティを見て、EKSが自動でEC2を増やしたり減らしたりしてくれる機能です。
AWSコンソール上で、EKSクラスターの詳細画面から設定できます。
NodeGroupの設定に必要なのは
- ワーカーノード用のサブネット
- ワーカーノード用のIAMロール
- ワーカーノードのインスタンスタイプ
- 台数(Minimum size, Max size, Desired size)
この辺りの最低限必要なマシンの設定を行なっていきます。
つまり、従来のクラスターオートスケールの設定、EC2起動時のスクリプトなどが不要となり、マシンのあらかたの外枠だけ決めておけば後はkubernetesで良い感じにやってくれるようになります。
画像は公式ブログより抜粋。
https://aws.amazon.com/jp/blogs/containers/eks-managed-node-groups/
また、AWSコンソール以外にも下記ツールなどを使用してNodeGroupを作成することもできます。
- AWS CLI
- eksctl CLI
- Cloudformation
- Terraform
Terraformではもう使えるの?
私は業務で、TerraformでEKSクラスタを構築しているので、サポートされているかが気になっていましたが、バッチリサポートされていました。
https://github.com/terraform-providers/terraform-provider-aws/blob/master/CHANGELOG.md
Terraformの場合は aws_eks_node_group
というリソースを使用することでNodeGroupを作成できます。
まとめ
EKSでワーカーノードのプロビジョニング、管理がサポートされました。
EC2のスペックなどの指定は必要になりますが、オートスケーリンググループを使って自前で管理していた部分がマネージドになるのは幸せになれそうです!
今後も素晴らしいアップデートを期待しております。