🐳

GKE AutoPilotの有用性について考察

2023/02/18に公開約1,300字

モチベーション

GKE AutoPilotについて、出来ること/出来ない事が不明だったので、これを機に調べて見ました。
基本的なことは他記事に記載されているため、個人的になるほど、と思ったことを書いていきます。

GCPが謡っている、AutoPilotの用途

以下に利点が記載されていました。
https://cloud.google.com/kubernetes-engine/docs/concepts/autopilot-overview?hl=ja
その中で気になったのが、

柔軟な管理: ワークロードに特定のハードウェアまたはリソース(高使用率の CPU やメモリなど)の要件が存在する場合について、Autopilot にはそのようなワークロードに合わせて構築され事前構成されたコンピューティング クラスが用意されています。カスタマイズされたマシンタイプとハードウェアに基づく新しいノードを手動で作成することなく、デプロイでコンピューティング クラスをリクエストします。GPU を選択して、バッチ アプリケーションや AI/ML アプリケーションなどのワークロードを高速化することもできます。

という利点です。
つまり、AutoPilotは1podの起動時間あたりの課金なので、バッチ処理や機械学習に向いているよね、という話です。

気になる点

バッチ処理の罠

この記事を見ると、バッチ2重起動について言及されていました。
https://made.livesense.co.jp/entry/2022/10/19/083000

バッチ2重起動には、ノードのスケールインなどでjobリソースがevictされ、新しいノードにデプロイされたときに再度jobリソースが動作してしまう、というものです。
AutoPilotでは、v1.21から"cluster-autoscaler.kubernetes.io/safe-to-evict": "false"でpodのevictを制御できない仕様となっています。

https://issuetracker.google.com/issues/227162588
issueにも記載されていますが、今も解決していません。

そのため、これが解決するまでにはバッチ処理用としてAutoPilotを導入するのは危険だと感じました。

kube-system namespaceに関与できない

以下の記事で気になる文章が。
https://cloud.google.com/kubernetes-engine/docs/resources/autopilot-standard-feature-comparison?hl=ja

セキュリティ対策として、Autopilot では GKE が管理する名前空間(kube-system など)にワークロードをデプロイできません。

つまり、エコシステムによってはAutoPilotにデプロイする事が出来ない?
セキュリティスキャン系のOSSは特に導入が厳しいのではないでしょうか。

有用性

やはり細かく設定できないケースがあるため、今のところは小規模なクラスタの管理を楽にしたいというケース以外は思い浮かびませんでした。
今後に期待です。

Discussion

ログインするとコメントできます