Kubernetes 環境の本番運用からマルチクラウドへの拡張まで のブログでは、マルチクラウド対応を見据えた形で、モダンアプリケーションプラットフォームの本番運用で必要になる要素を包括的に提供するVMware Tanzu for Kubernetes Operations (以下、 TKO ) のご紹介をさせて頂きました。
今回は、VMware Explore 2022 で発表された新機能も含め、TKO に含まれるVMware Tanzu Mission Control (以下、TMC )についての概要をご紹介します。
Kubernetes 運用管理のトレンド
VMware は 2021 年に 768 のソフトウェア開発者、IT プロフェッショナルを対象に調査した結果を「2022年 Kubernetes の現状」として公開しています。
この調査によると、管理している Kubernetes クラスタの数が 50 以上の組織の割合は 2020 年の 15% に比べて 2022 年では約 29 %と約 2 倍となっており、なかでも現在 100 を超えるクラスタを運用している組織の 3 分の 2 は、2022 年に Kubernetes クラスタの数が 50% 以上増加すると予想しています。
図1 現在運用中の Kubernetes クラスタ数 (「2022年 Kubernetes の現状」より抜粋)
このようにクラスタの大規模な利用が始まる一方で、 Kubernetes を運用されている 59% の方が、まだ経験が浅い中、セキュリティやコンプライアンスを遵守しながら、様々なクラウド上にある Kubernetes クラスタの運用に課題を感じておられる結果が見えてきます。
最初は小規模な Kubernetes クラスタをデプロイし利用し始めたものの、各クラスタに対するカスタマイズや個別の運用により、クラスタが増えてくると運用チームの手が回らず塩漬けのクラスタが増える、更に場当たり的な対応が増え。。といった悪循環に陥ってしまいがちです。社内の開発やテスト環境であればいざ知らず、エンタープライズのプロダクション環境で大規模な Kubernetes を運用することを考えると、このような状況を改善し、一貫性のある統一的な手法での Kubernetes クラスタのデプロイやライフサイクル管理、組織のポリシーの適用を遵守できる仕組みが必要となってきます。
Tanzu Mission Control とは?
TMC は、マルチクラウド上で運用されている Kubernetes クラスタに対して、統一的な管理を行うための SaaS のプラットフォームです。VMware の Kubernetes ディストリビューションだけではなく、主要クラウドプロバイダの Kubernetes クラスタも配下において管理可能です。単独では難しい、Kubernetes クラスタと namespace のバックアップやリカバリ、アイデンティティ/アクセス管理などを TMC の GUI から行うことができます。
また、TMC は様々なオープンソース テクノロジーを使用してコア機能を構築しています。例えば、クラスタの適合性検査機能では Project Sonobuoy 、データ保護機能の構築では Project Velero 、ポリシーの適用では Open Policy Agent Gatekeeper を使用しています。オープンソーステクノロジーを利用し、独自の実装を避けることで、 CNCF 標準の様々な Kubernetes クラスタに対して統一的な運用を行うことができます。
図2 様々な 種類の Kubernetes Cluster を管理する Tanzu Mission Control
それでは、主要な機能を順番にご紹介していきましょう。
(1) クラスタのライフサイクル管理
プライベートクラウド、或いは Amazon Web Service 、 Microsoft Azure などのパブリッククラウド上に構築された VMware の Kubernetes のディストリビューションである VMware Tanzu Kubernetes Grid において、Management Cluster を 登録( Register ) することで、Kubernetes のクラスタをプロビジョニング、拡張、アップグレード、そして不要になった場合に削除、といったライフサイクル管理を行うことができます。
図3 Tanzu Kubernetes クラスタのプロビジョニング
図4 追加のストレージ ボリュームを使用してワークロード クラスターを作成
また、2022 年 10 月から、新たにAmazon Elastic Kubernetes ( EKS )に対するライフサイクル管理 も提供されています。
さて、(2)以降の機能については、(1) にてプロビジョニングされたクラスタに加え、オンプレミスやパブリッククラウドで既に展開済みの CNCF 準拠のクラスタ、例えば プロビジョニング済の EKS、 AKS、 GKE、OSS の Kubernetes、Red Hat OpenShift などで提供されるクラスタについても TMC に接続 (“Attach”) することで、管理対象として扱うことが可能となります。接続する操作は、クラスタに名前を付け予め設定したグループを割り当て、必要に応じてプロキシを構成し、エージェントのインストールコマンドをコピーしてクラスタにて実行する、といった簡易な操作で行うことができます。
図5 クラスタの接続例
図6 クラスタの接続例
このようにプロビジョニングした、また接続したクラスタに対して、 TMC は OSS の Pinniped をベースとした一元的な認証の仕組みを提供しています。
TMC のユーザー認証は、VMware Cloud Services と連携しており、個別ユーザーの招待のほか、SAML 2.0 対応のユーザーレジストリーと連携が可能です。管理者は Cluster Group や Workspace に対して必要な権限を設定することが可能です。また、開発者は TMC のGUIより Kubeconfig をダウンロードし、管理者にアクセス権限を付与されたリソース、例えば特定の Namespace のみにアクセスできる、といったアクセス制御を行うことも可能です。
(2) ポリシーの管理
TMC では、単一の Kubernetes のクラスタや Namespace だけではなく、それらをグループ化した ”Cluster Group” と “Workspace” に対して、ポリシーを一括して簡易に適用することが可能です。ポリシーを設定済みの Cluster Group や Workspace に新規に追加されたクラスタに対しても、設定したポリシーが自動的に適用されるため、設定漏れも防ぐことができます。
図7 リソース階層構造
適用可能なポリシーとしては、特定のリソースに対してどの ID (個人およびグループ) がどのレベルのアクセス権を持つかを指定する Access Policy 、利用可能なイメージレジストリを指定する Image registry Policy 、Pod 間或いは他のネットワーク エンドポイントと通信する方法を定義する Network Policy、namespace の全体の総量として、クラスタで利用可能なリソースを制限する Quota Policy、Pod が実行できることと Pod がアクセスできるリソースを定義する制約をクラスタに課す Security Policy があります。
また、OPA のポリシー言語である Rego を使用し、組織のニーズに応じてカスタマイズした Custom Policy を作成することも可能です。
例として、店舗向けエッジアプリを想定して、これらのポリシーを示したものが以下となります。
各店舗に小規模なエッジのハードウェアを配置し、そこに Kubernetes クラスタを配置しアプリケーションを動作させ、来店者に対してコンテンツを提供することを想定します。TMC を利用することで、このエッジ上で稼働する Kubernetes クラスタに関して、図中に記載した様々なポリシーを適用することで、適切に管理を行うことができます。
図8 店舗向けエッジアプリの動作を想定したポリシーの例
設定したポリシーに対し準拠しているかは、 Policy Insights にて一元的に監視することができます。また、 TMC のポリシー管理は OPA をメインにしているため、 OPA 標準の方法で Prometheus などの監視ツールとも連携することが可能です。
図9 Policy insights の画面例
(3) クラスタの適合性検査
TMC では、 OSS の Sonobuoy の機能を用いて、クラスタの健全性を検査する機能を提供します。実施可能なテストとしては、ノードが Kubernetes の要件を満たしているかどうかを検証するノード適合性テストである Lite インスペクション、クラスターで実行されているバイナリを検証し、クラスタが適切にインストール、構成、および動作していることを確認する Conformance (適合性)インスペクション、Center for Internet Security (CIS)によって発行された Kubernetes の CIS ベンチマークがあります。
図10 クラスタの適合性検査の例
(4) データ保護
TMC は、OSSの Velero を利用することにより、クラスタ内のすべてのリソースや、選択した Namespace、ラベルで指定されたクラスタ内の特定のリソースについてバックアップを行うことができます。クラスタのバックアップを行うと、 Kubernetes のリソースだけではなく、永続ボリュームのスナップショットのバックアップを作成し、Amazon S3 或いは S3 互換のストレージ、またAzure Blob ストレージにバックアップを保存します。
取得したバックアップについては、 Velero のオブジェクト ストレージ同期機能により、バックアップを行った同一のクラスタのみならず、別のクラスタに対してもリストアすることが可能です。例えば、任意のクラウドまたはオンプレミス データセンターで実行されている任意のクラスタとの間でデータ保護を有効にすることができます。
図11 クラスタのバックアップとリストアの例
(5) VMware Aria Operations for Applications や VMware Tanzu Service Mesh との連携
Aria Operations for Applications は、マルチクラスタ、マルチクラウドに対するオブザーバビリティを提供する SaaS のソリューションです。TMC からはクラスタ、クラスタ グループに対してワンクリックで簡単に機能を有効化し、メトリクスを収集してダッシュボードに表示することが可能です。
また、Tanzu Service Mesh は、同様にマルチクラスタ、マルチクラウドに対するサービスメッシュ機能を提供する SaaS のソリューションですが、Aria Operations for Applications 同様にワンクリックで機能を有効化することが可能です。
今回のブログでは、Tanzu Mission Control が、エンタープライズのプロダクション環境において、様々なクラウド上での Kubernetes 運用において、統一的な手法により Kubernetes クラスタのデプロイやライフサイクル管理、組織のポリシーの適用を遵守するための仕組みをご紹介してきました。
ご紹介した以外にも、Carvel のパッケージのカタログからのインストールや、Flux CD を用いた Git リポジトリからクラスタへの継続的デプロイなどの機能も提供されています。日々進化を続ける Tanzu Mission Control、今後の機能の拡充についても是非ご期待ください。
まずはどんなものか知りたい、という方にはハンズオンラボ(VMware Tanzu Mission Control – Manage Kubernetes Across Clouds)をご用意しています。是非気軽に試してその機能を体感して頂ければと思います。