概要

Amazon EKSは8月12日、Kubernetesコントロールプレーンを構成する各コンポーネントの設定パラメータを、これまでのデフォルト値を超えて細かく調整できる新機能を発表した。対象となるのはスケジューラ、コントローラマネージャー、APIサーバーの3コンポーネントで、それぞれノードへのポッド配置戦略、Horizontal Pod Autoscaling(HPA)の応答速度、イベントなどリソースのライフサイクル管理に関わるパラメータを制御できるようになる。管理型サービスであるEKSはこれまでコントロールプレーンの内部動作をブラックボックスとして提供してきたが、今回の変更によりユーザーはワークロードの特性に合わせてクラスタの挙動をチューニングできる余地が広がった。この機能はEKSが利用可能な全AWSリージョンで提供される。

技術的な詳細

代表的な利用例として紹介されているのが、スケジューラのノードリソース適合戦略(node resource fit strategy)を「MostAllocated」に設定するケースだ。デフォルトの「LeastAllocated」戦略は、ポッドをできるだけ多くのノードに分散させ、各ノードに余裕(ヘッドルーム)を残す挙動をとる。一方「MostAllocated」に切り替えると、スケジューラは既に十分利用されているノードへポッドを優先的に詰め込むようになり、同じワークロードをより少ないノード数で稼働させられる。ノード間の余裕確保が重要でないバッチ処理系のワークロードなどでは、この設定によりノードコストの削減が期待できる。このほか、コントローラマネージャー側ではHPAがメトリクスの変化に対してどれだけ迅速にスケールイン・スケールアウトを行うかという応答速度を、APIサーバー側ではイベントなどのリソースをどれだけの期間保持するかといったライフサイクルパラメータを、それぞれ調整可能になる。

背景と今後の展望

EKSのようなマネージドKubernetesサービスは運用負荷を下げる一方で、コントロールプレーンの内部パラメータが固定されているため、大規模クラスタや特殊なワークロード要件を持つユーザーにとってはチューニングの自由度が制約になる場合があった。今回のアップデートは、マネージドサービスの運用のしやすさを維持しつつ、セルフマネージドクラスタに近い柔軟性を一部取り戻す方向性を示すものといえる。設定可能なパラメータの詳細な一覧は公式ドキュメントで案内されており、コスト最適化やオートスケーリングの応答性向上を目的にクラスタ構成を見直したいユーザーは、自身のワークロード特性に応じて設定変更を検討する価値がある。