なんでNKPなのかをちゃんと考える
前回はインフラ寄りの視点で、Kubernetesってそもそもなんで必要なのか、というところを整理した。
今回はもう少し踏み込んで、すでにK8sを触っている人に向けて、
クラウドのEKS、GKE、AKS、あるいはOpenShiftではなく、なぜNutanix Kubernetes Platformなのかをちゃんと考えてみようと思う。
Kubernetes単体では正直足りない
Kubernetesはあくまでコンテナを管理する仕組みでしかないので、実際の現場では、これだけでは全く回らない。
- CI/CD
- Service Mesh
- Ingress
- ストレージ / バックアップ
- セキュリティ
- 可観測性
- ネットワーク
- ポリシー管理
- コスト管理
こういったものを全部組み合わせて、ようやーくクラウドネイティブな基盤になる。
つまり、Kubernetesを使うということは、周辺OSSをどう組み合わせるかという問題とセットになる。
Nutanix Kubernetes Platformは何をしているのか
Nutanix Kubernetes Platform (以下、NKP) はここを丸ごと解決しにきている。
周辺OSSを個別に選定するのではなく、
- 事前に検証済み
- 互換性が担保されている
- ライフサイクル管理まで含まれている
こういった状態で提供される。
さらに、カタログからそのままデプロイできる形になっているので、構築というより、払い出しに近い感覚になる。
一番効いてくるのはDay0〜Day2
Kubernetesの辛さはだいたいここに集約される。
| フェーズ | やること | つらいポイント |
|---|---|---|
| Day0 | 設計 | 何を組み合わせるか決める |
| Day1 | 構築 | 動く状態まで持っていく |
| Day2 | 運用 | アップデート、脆弱性対応、互換性維持 |
Day0 / Day1
通常は、
- CSIやCNIの選定
- OSSの組み合わせ検証
- ハードウェアとの相性確認
このあたりでかなり時間を使う。
NKPだと、検証済みスタックがそのまま使える。
誰が作っても同じ構成になるので、設計で悩む時間がかなり減る。
Day2
運用に入るとさらに厄介になる。
- バージョン互換性
- 脆弱性対応
- アップグレード
- 周辺OSS同士の依存関係
これを全部自分たちで見続ける必要がある。
NKPはここも含めて、周辺OSSのライフサイクル管理や互換性維持までカバーする。
運用の負担がかなり下がる。
クラウドとの違い
EKSやGKEは確かに便利。
だがしかし!すべてのお客様にとって最適とは限らない。
たとえば、
- バージョンを自分たちの都合だけで完全にコントロールしづらい
- 従量課金でコストが読みづらい
- データを外に出す前提になりやすい
- AIや機密データの扱いで制約が出る
NKPの場合は、
- バージョン管理を自分たちで統制しやすい
- コストをインフラベースで見やすい
- ダークサイト運用も可能
- データをオンプレミス側に置いたまま扱える
つまり統制と自由度のバランスが取りやすい
OpenShiftとの違い
じゃあオンプレでK8sならOpenshiftはどうなんじゃいということで。
ここは結構本質的な違いだと思っていまして。。。OpenShiftはKubernetes専用の基盤として独立する。
つまりは、別の箱モノが必要になります。
結果として、
- VM基盤とK8s基盤が分かれる
- 運用チームも分かれる
- コストも二重になりやすい
ということが起きやすい。
一方でNKPは、既存のNutanix基盤の上にKubernetesを乗せる考え方なので、
- VMとK8sが同じ基盤
- 同じ管理画面
- 同じ運用モデル
- 既存のNutanix運用の延長で扱える
ここがかなり大きい。
Kubernetes用に新しい島を作るというより、今あるNutanixの島を拡張していくイメージに近い。
コンテナの弱点をどう扱うか
コンテナは基本的にステートレス。
つまり、コンテナそのものの中にデータを持ち続ける前提ではない。
- コンテナは作って壊すもの
- 中のデータは消える前提
- 永続化するデータは外部の永続ボリュームに置く
ここをちゃんと理解しておかないと、本番運用でかなり怖い。
一般的なKubernetesだと、バックアップやデータ保護のために別製品を入れることが多い。
NKPの場合は、Nutanixのインフラ側でデータ保護を担える。
- スナップショット
- レプリケーション
- 永続ボリューム管理
このあたりを、コンテナに負荷をかけずに実行できる。
コンテナの世界でも、VM運用に近い安心感を持てるのが強い。
マルチ環境の扱い
現実的には、Kubernetes環境は一つだけでは終わらない。
- オンプレ
- 複数クラウド
- 複数クラスタ
- 部門ごとの個別環境
こういう形で増えていく。
これを個別に管理すると、すぐに破綻する。
NKPでは、複数のKubernetesクラスタをまとめて管理する考え方がある。
- 全クラスタを一画面で俯瞰
- ポリシーを一括適用
- 環境差を吸収
- 標準化されたKubernetesの払い出し
いわゆる野良Kubernetesを防ぎやすくなる。
自由に使わせながら、ちゃんと統制も効かせる。
この両立ができるのが大事。
NKPの価値を整理すると
NKPの価値をシンプルにまとめると、こんな感じ.....
| 観点 | 一般的なKubernetes運用 | NKP |
|---|---|---|
| 構築 | OSS選定と検証が必要 | 検証済みスタックを利用 |
| 運用 | 互換性やバージョン管理が大変 | ライフサイクル管理を統合 |
| データ保護 | 別製品が必要になりがち | Nutanix基盤側で対応 |
| 管理 | 環境ごとに分断されやすい | 複数クラスタを一元管理 |
| 既存基盤との関係 | VM基盤と分かれやすい | VMとK8sを同じ基盤で扱える |
最後に
クラウドやOpenShiftでもKubernetesは使える。
けど、、、、Kubernetesを使えることと、ちゃんと運用できることは別の話!
楽に運用できるか。統制を効かせられるか。
既存のインフラ運用の延長で扱えるか。
といった現場の視点で見ると、NKPの立ち位置はちょっと違う!
NKPは、Kubernetesを特別なものとして別管理するのではなく、Nutanixの One Platform の中に取り込んでいく。
VMもKubernetesも、同じ基盤で、同じ考え方で、ちゃんと運用する。
これがNKPの一番わかりやすい魅力だと改めて思いましたとさっ
さてと、自宅のサーバー(CE)にNKP、入れてみようかなっ!
やるやる詐欺にならないようにここでちょっと宣言!
お楽しみに。