この1年の Amazon EKS アップデートを振り返る
Amazon EKS Advent Calendar 2019 の1日目です. アメリカ時間だとまだ12/1なので許して…
他の AWS サービス同様、Amazon EKS もこの1年間で多くのアップデートを発表してきました. 本記事では、ざっくりとこの1年間の主なアップデートを振り返りつつ、いよいよ本日から開催される re:Invent に備えていこうではありませんかという、そんな目論見がございます.
日付順にアップデートを追って書いていたんですが、なんだか読みにくかったのでカテゴリごとに分けて書いていきます.
目次です.
- Security & Reliability
- Regions & Versions
- Nodes
- Storage & Networking
- Tooling
- Machine Learning
- その他
- まとめ
Security & Reliability
まずは Security と Reliability に関するところからいきましょう. こちらの公式ブログ記事でも “security and reliability are our first priority” とある通り、Amazon EKS における Security & Reliability は最優先事項です.
- ISO/SOC 123/PCI 準拠
- What’s New
- ちなみに US でヘルスケアや医療系のサービスをやろうとした際に重要な HIPPA 適合でもあります - [What’s New]
- 99.9% Service Level Agreement (SLA)
- リージョンあたりのデフォルトのクラスタ作成上限数が 100 に
- What’s New
- 3月に 50 に上がり、11月の年内2回目の上限緩和により 100 になりました
- 追加での上限緩和申請も可能です
- Kubernetes API サーバーエンドポイントのアクセスコントロール
- What’s New
- kubectl のアクセス先である Kubernetes API サーバーエンドポイントを、インターネット越しにアクセスできる Public なものと VPC 内からのみアクセスできる Private なものを、それぞれ独立して有効・無効を切り替えられるようになりました
- ドキュメント - Amazon EKS クラスターエンドポイントのアクセスコントロール
- Private なエンドポイントに対して Direct Connect 越しにアクセスしたい場合などの設定方法はこちらのブログ記事も合わせてご覧くださいませ
- コントロールプレーンログの CloudWatch Logs への送信が可能に
- What’s New
- Kubernetes コントロールプレーンの api, audit, controllerManager, scheduler ログに加え、IAM-authenticator のログも送信・閲覧が可能になりました
- 詳細はドキュメント - Amazon EKS コントロールプレーンのログ記録もご覧ください
- IAM authenticator integration (AWS CLI)
- もともと EKS Kubernetes クラスタの操作には AWS CLI + kubectl + aws-iam-authenticator(旧 heptio-authenticator-aws) の3つが必要でしたが、AWS CLI + kubectl の2つで操作できるようになりました
- EKS Kubernetes v1.10 and 1.11 end of life
- Kubernetes pod security policies, ECR PrivateLink support (with 1.13)
- What’s New
- Amazon EKS で Pod security policy を使うウォークスルーを書いたブログ記事もあります
- IAM Roles for Service Accounts
- What’s New
- 俗に言う “IAM Role per Pod” で、Service Account 経由で Pod 単位に IAM Role を割り当てられるようになりました
- Pod に IAM を割り当てる仕組みや利用方法などを解説したブログ記事もあります
- クラスターへのタグ付け
- What’s New
- クラスタにタグ付けができるようになったことで、IAM のタグベースアクセスコントロールを利用することで EKS API の呼び出しをより容易に制御できるようになりました
- EKS のドキュメントはこちら
Regions & Versions
- 東京を含め、ソウル、ムンバイ、ロンドン、パリ、オハイオ、フランクフルト、シンガポール、シドニー、香港、サンパウロ、バーレーン、カナダで利用可能に
- 2018年12月 - Frankfurt, Singapore, Sydney, Tokyo
- 2019年01月 - Seoul
- 2019年02月 - Mumbai, London, Paris
- 2019年08月 - Hong Kong, Bahrain
- 2019年10月 - São Paulo
- 2019年11月 - Canada
- Kubernetes バージョン 1.11, 1.12, 1.13, 1.14 のサポート
- 1.11 - What’s New
- 1.12 - What’s New
- 1.13 - What’s New
- 1.14 - What’s New
Nodes
- マネージドワーカーノードグループの提供
- What’s New
- Amazon EKS のマネジメントコンソール、API、AWS CLI 経由でワーカーノード群の作成、更新、削除ができるようになり、ノードの入れ替えの際の (Kubernetes 的な) drain とかも EKS 側が気を配ってくれるようになりました
- ウォークスルー的なブログ記事とドキュメントも合わせてご覧くださいませ
- Windows ノードのサポート (GA)
- A1 (ARM) インスタンスタイプのサポート (preview)
- What’s New
- 利用方法についての説明は GitHub リポジトリのパブリックプレビュープログラムの案内をご覧くださいませ
- EKS 最適化 AMI 情報の SSM パラメータ経由での提供
- What’s New
- 指定の Kubernetes バージョンにおける最新の EKS 最適化 AMI ID をサクッと取得できるようになりました
- ドキュメントはこちらです
また上記には含まれていませんが、継続的な EKS 最適化 AMI の更新も行われています.
Storage & Networking
- FSx for Lustre、EFS 用 CSI ドライバの発表
- What’s New
- FSx for Luster、EFS 用の CSI ドライバの Alpha バージョンが発表され、同時にそれぞれを Kubernetes プロジェクトに寄付したことも発表されました
- FSx for Lustre 用 CSI ドライバの利用方法をウォークスルーにて紹介したブログ記事も合わせて公開されました
- それぞれの CSI ドライバの GitHub リポジトリはこちら: CSI Driver for Amazon FSx for Lustre, CSI Driver for Amazon EFS
- EFS 用 CSI ドライバについては、その後 Beta ステージに到達し、それに合わせて EKS での利用がサポートされることも発表されました
- What’s New
- EKS での EFS CSI ドライバの利用についてのドキュメントはこちら
- EBS 用の CSI ドライバ (Beta)
- What’s New
- EBS 用の CSI ドライバが Beta ステージに到達し、EKS での利用がサポートされることが発表されました
- 利用方法を解説したブログ記事も合わせて公開されました
- EKS での EBS CSI ドライバの利用についてのドキュメントはこちら
- GitHub: CSI Driver for Amazon EBS
- Public IP アドレス を含む VPC での EKS クラスタの作成をサポート
- AWS ALB Ingress Controller
- What’s New
- AWS ALB Ingress Controller の EKS での利用がサポートされることが発表されました
- AWS ALB Ingress Controller の GitHub リポジトリはこちら
- VPC CNI plugin v1.3, v1.4, v1.5
- v1.3 - What’s New
- v1.5 - What’s New
Tooling
- AWS App Mesh Controller のリリース
- GitHub リポジトリ
- App Mesh のリリースを Kubernetes API 経由でコントロールできるようにするためのコントローラーが公開されました
- Managed Cluster Version Updates
- What’s New
- Kubernetes コントロールプレーンをインプレースでアップグレードできる機能が発表されました
- ブログ記事も合わせて公開されています
- CloudWatch Container Insights
- プレビューローンチ時の What’s New
- GA 時の What’s New
- Amazon EKS/Kubernetes on EC2 環境のモニタリング機能を提供する CloudWatch Container Insights が発表されました. GA 時に同時に公開された紹介ブログ記事はこちら.
- AWS for Fluent Bit
- What’s New
- 各種 AWS サービスへのログ転送を Fluent Bit で行うための pre-built な Fluent Bit コンテナイメージがローンチされました
- AWS が開発したプラグインが同梱されたコンテナイメージの形で提供されるため、自前で Fluent Bit コンテナイメージを管理しなくても良くなる(人もいる)かも
- 初期リリース時は CloudWatch Logs プラグインと Kinesis Firehose プラグインが同梱されており、先日のリリースで Kinesis Data Streams プラグインも同梱されるようになりました.
- GitHub: A Fluent Bit output plugin for CloudWatch Logs, A Fluent Bit output plugin for Amazon Kinesis Data Firehose, A Fluent Bit output plugin for Kinesis Streams
- Pre-built Docker イメージ: amazon/aws-for-fluent-bit - Docker Hub
- eksctl を AWS オフィシャルの EKS 用 CLI ツールと定義するアナウンス
- ブログ記事
- eksctl での EKS の利用が AWS によってサポートされることが発表されました
- AWS Node Termination Handler
- What’s New
- Kubernetes の DaemonSet として動かすもので、これを利用することで EC2 Spot インスタンスの中断を安全にハンドリングできるようになります
- GitHub リポジトリはこちら
- Mixed instance policy support and GPU-provider for Cluster Autoscaler
- GitOps: Flux CD and Argo CD are joining forces as Argo Flux - アナウンスのブログ記事
- EKS Helm チャートリポジトリ
- Amazon EKS で作成された Kubernetes クラスタで利用する Helm チャートリポジトリを公開しました
- AWS App Mesh Controller の Helm チャートを同梱した際の What’s New はこちら
- 2019年12月1日現在、appmesh-grafana, appmesh-inject, appmesh-jaeger, appmesh-prometheus, aws-node-termination-handler, aws-vpc-cni といった各種 Helm チャートが公開されています
Machine Learning
- Deep Learning Benchmark Utility
- What’s New
- Amazon EKS 上で Deep Learning ワークロードを実行する際のパフォーマンスやコスト効率についてのベンチマークを簡単に行うためのユーティリティが公開されました
- GitHub リポジトリはこちら、利用方法を含めた紹介記事はこちら
- Kubeflow ドキュメンテーションに AWS 上での利用方法を掲載
- P3dn と G4dn インスタンスタイプのサポート
- Escalator における仮想マシンキャパシティ確保を容易に
- GitHub Release
- Kubernetes 上でのバッチジョブワークロードに最適化されたノードレベルのオートスケーリング機能を提供する Escalator から EC2 Fleet API 利用できるよう機能追加が行われました
その他
- Amazon EKS の正式名称が Amazon Elastic Kubernetes Service に
そういえば、Amazon EKS の正式名称が改称されて、今日から "Amazon Elastic Kubernetes Service" になってます!
— Tori Hara (@toricls) June 19, 2019
(え、元ですか?元は "Amazon Elastic Container Service for Kubernetes" でした)https://t.co/7lts6KkvR3- にわかに盛り上がりました
- Amazon ECR でのイメージスキャン機能のサポート
- What’s New
- CoreOS Clair プロジェクト の CVE データベースを利用したイメージスキャン機能が Amazon ECR でサポートされました. リリース時に合わせて公開された、Amazon ECR イメージスキャン機能を利用した定期スキャンについてのブログ記事はこちら.
- ドキュメントはこちら: イメージスキャン - Amazon ECR
また、リリースノートは出ていませんが、Amazon EKS ユーザーガイドは定期的にコンテンツが追加・更新されています.
まとめ
たくさんありましたね. そして今日からいよいよ AWS re:Invent 2019 の開始です. Amazon EKS/Kubernetes 含め、どんなアップデートや発表があるかワクワクしますね!
おまけ
本記事では Amazon EKS とそれに関連したアップデート・アナウンスについてまとめましたが、コンテナサービス全体の上半期のアップデートを並べたやつは以下のスライドでもご確認いただけます.