Kubernetesとは
Kubernetes(クバネティス / K8s)とは、コンテナ化されたアプリケーションのデプロイ、スケーリング、管理を自動化するオープンソースのコンテナオーケストレーションプラットフォームです。Googleが社内で使用していたBorgシステムをベースに開発され、現在はCNCF(Cloud Native Computing Foundation)が管理しています。
| ひとことで言うと | 多数のコンテナの配置・監視・再起動を自動でさばく管理基盤。 |
|---|---|
| どこで使う | 大規模な推論サービス、複数モデルの同時運用、自動スケーリング。 |
| 注意点 | 学習コストが高い。小規模ならマネージドサービスで十分なことが多い。 |
Kubernetesの主要機能
Kubernetesは自動スケーリング、自己修復(コンテナの再起動や再配置)、ロードバランシング、ローリングアップデート、シークレット管理などの機能を提供します。Podという最小単位でコンテナを管理し、Deployment、Service、Ingressなどのリソースでアプリケーションの構成を宣言的に定義します。
1望ましい状態を宣言「3台動かす」と書く
▶
2自動で配置空いているサーバーへ
▶
3常時監視落ちたら自動で再起動
▶
4負荷で増減自動スケーリング
▶
5無停止で更新順次入れ替える
AI/MLワークロードでのKubernetes
Kubernetesは大規模AI/MLワークロードの実行基盤として広く採用されています。Kubeflowは Kubernetes上にMLパイプラインを構築するためのプラットフォームで、学習ジョブのスケジューリング、ハイパーパラメータチューニング、モデルサービングを統合的に管理します。NVIDIA GPU OperatorによりGPUリソースの動的割り当ても可能です。
マネージドKubernetes
各クラウドプロバイダーはマネージドKubernetesサービスを提供しています。GKE(Google Kubernetes Engine)、EKS(Amazon Elastic Kubernetes Service)、AKS(Azure Kubernetes Service)を利用すれば、コントロールプレーンの管理はプロバイダーに任せ、ワークロードの運用に集中できます。