GCP / Nutanix と Kubernetes でコンテナ化アプリをハイブリッド対応に
Google Cloud Japan Team
私たちは先ごろ、Nutanix との戦略的提携を発表しました。大企業のハイブリッド クラウド デプロイにおける課題の解決を支援するためです。発表に関する投稿記事はこちらにあります。
ハイブリッド クラウドを導入した企業は、オンプレミスもしくはパブリック クラウドでさまざまなアプリケーションを実行できます。このアプローチには次のような利点があります。
- 製品、機能のリリースのスピードアップ
- 顧客の需要に合わせたアプリケーションのスケーリング
- 自社のペースに合わせたアプリケーションのパブリック クラウドへの移行
- インフラストラクチャに費やす時間を減らし、コード開発の時間を増やす
- リソースの活用と効率的なコンピューティングによるコスト削減
ハイブリッド クラウド デプロイは、要求されるセキュリティ、コンプライアンス、コンピューティング パワーと、必要とする機敏性、柔軟性、スケーリングを両立させるうえで大きな力となります。
ここで例として取り上げるハイブリッド クラウドは、次の 3 つの主要コンポーネントから構成されます。
- オンプレミス : Nutanix のインフラストラクチャ
- パブリック クラウド : Google Cloud Platform(GCP)
- オープンソース : Kubernetes とコンテナ
Googleは、コンテナ ベースの社内システムを独自に開発してきた経験からヒントを得て、さまざまなコンピューティング リソースのもとでコンテナ化アプリケーションを実行できる、オープンソースと Google Cloud 管理下のプラットフォームとして Kubernetes と Google Container Engine を作りました。Kubernetes は、基盤となるインフラストラクチャを抽象化し、統一的な形でコンテナ化アプリケーションを実行できるようにします。
Kubernetes は宣言的なデプロイ モデルという概念を導入しています。このモデルのもとでは、アプリケーションをどのように実行すべきかを記述したテンプレートに従って、Kubernetes がアプリケーションの状態を制御します。Kubernetes は、コンテナのスケジューリング、スケーリング、健全性、ライフサイクル、ロード バランシング、データ永続性、ロギング、モニタリングも管理します。
Google Cloud と Nutanix による共同作業の第 1 段階では、オンプレミスの Nutanix と Google Cloud の両方の環境において、ワークロード管理の単一のコントロール プレーンとして Nutanix Calm を使用し、コンテナ管理レイヤとして Kubernetes を使用するハイブリッド運用に力を注ぎます。
Nutanix Calm は、先ごろ開催された Nutanix .NEXT カンファレンスで発表された製品で、ハイブリッド クラウド デプロイを通じてプロビジョニングとライフサイクル管理を自動化します。また Nutanix Enterprise Cloud OS は、クラウドの Google Compute Engine で実行されるハイブリッド Kubernetes 環境と、オンプレミス Nutanix 上の Kubernetes クラスタをサポートします。これにより、オンプレミスの Nutanix 環境と Google Cloud の両方で動作するポータブルなアプリケーションのブループリントをデプロイできるようになるわけです。
それでは、Nutanix と Google Cloud を使用したハイブリッド環境のセットアップ例を見ていきましょう。
作業は次の 4 つのステップから構成されています。
- Nutanix Calm のブループリントを使用して、4 ノードの Kubernetes クラスタをオンプレミスにプロビジョニングします。
- Google Cloud 用に構成された同じ Nutanix Calm のブループリントを使用して、4 ノードの Kubernetes クラスタを Compute Engine にプロビジョニングします。
- オンプレミスと Google Cloud の両方の Kubernetes クラスタを、kubectl を使って管理します。
- オンプレミスと Google Cloud の両方の Kubernetes クラスタに、同じ WordPress チャートを Helm を使ってデプロイします。
Nutanix Calm ブループリントを使って、オンプレミス Kubernetes クラスタをプロビジョニング
Nutanix Calm を使えばオンプレミスに Kubernetes クラスタをプロビジョニングでき、Nutanix Prism(仮想データセンター用インフラストラクチャ管理ソリューション)を使えば仮想化されたコンピュートとストレージのクラスタをブートストラップできます。その結果、Nutanix Calm によってオーケストレートされる準備が整った、Nutanix が管理するコンピュートおよびストレージのプールが、人気のある市販 / オープンソース パッケージのワンクリック デプロイに使用できるようになります。次に、Nutanix オンプレミス環境をターゲットとして Kubernetes ブループリントを選択します。
以下に示す Calm Kubernetes ブループリントは、すべてのノードとマスターにすべてのベース ソフトウェアを組み込んで 4 ノードの Kubernetes クラスタを構成します。この Kubernetes ブループリントは、Helm を使った WordPress チャートのデプロイを可能にするために、クラスタに Helm Tiller を構成するようにカスタマイズしてあります。また Calm ブループリントでは、下の画面の “create” アクションが示すように、指定した順序で構成のタスクが行われるようにワークフローを作ることができます。
それでは、Kubernetes ブループリントをローンチします。
数分後には、5 台の VM(1 台がマスター ノード、4 台がワーカー ノード)で構成された Kubernetes クラスタが起動します。
同じ Nutanix Calm Kubernetes ブループリントを使って、Compute Engine 上の Kubernetes クラスタをプロビジョニング
Nutanix Calm を使用すれば、Google Cloud にも Kubernetes ブループリントをデプロイできます。この場合も数分以内に、5 台の VM(1 台がマスター ノード、4 台がワーカー ノード)で構成された Compute Engine 上の Kubernetes クラスタが起動します。以上で、ハイブリッド環境にワークロードをデプロイする準備が整いました。次に、コンテナ化された WordPress スタックをデプロイします。
オンプレミスと Google Cloud の両方の Kubernetes クラスタを kubectl で管理
kubectl は、Kubernetes クラスタへのコマンド実行に使用する、Kubernetes 付属のコマンドライン インターフェース ツールです。ハイブリッド環境の個々の Kubernetes クラスタに対しても、kubectl の基本コマンドを実行できるようになりました。まず、オンプレミス環境に ssh で接続し、いくつかのコマンドを実行します。
オンプレミスと Google Cloud の両方の Kubernetes クラスタに対し、Helm を使って同じ WordPress チャートをデプロイ
ここでは、Kubernetes アプリケーションのインストールと管理に使用されるパッケージ マネージャ、Helm を使います。先ほども説明したように、上述の Calm Kubernetes ブループリントには、クラスタ セットアップの一部として Helm が含まれています。オンプレミスの Kubernetes クラスタはストレージ プロビジョニング システムの Nutanix Acropolis で構成され、この Nutanix Acropolis が WordPress ポッドのための Kubernetes 永続ボリュームを自動的に作成します。
それでは、オンプレミスと Google Cloud に WordPress をデプロイしましょう。
kubectl コマンドをいくつか実行すると、オンプレミスのデプロイをブラウズできます。
このオンプレミス環境はロード バランサをプロビジョニングしていないので、クラスタ IP を使用して WordPress サイトをブラウズしました。それに対し、Google Cloud における WordPress のデプロイでは、ロード バランサが外部 IP アドレスと共に WordPress サービスに自動的に割り当てられました。
まとめ
- Nutanix Calm は、Nutanix Enterprise Cloud と Google Cloud の両方に Kubernetes クラスタをプロビジョニングできるワンクリック デプロイ モデルを提供しています。
- ハイブリッド環境で Kubernetes クラスタが稼働していれば、同じツール(Helm、kubectl)を使って、それぞれの環境を対象とするコンテナ化アプリケーションをデプロイできます。これは、「一度書けばどこでもデプロイ」のモデルを表しています。
- Kubernetes は、基盤となるインフラストラクチャを抽象化し、異種のクラウド環境にコンテナ化アプリケーションを統一的にデプロイできるようにします。
次のステップ
- Google Cloud Platform を使ってみる。
- Kubernetes の入門サイトとコード リポジトリに行ってみる。
- Kubernetes のコミュニティと Slack チャットに参加する。
- Twitter で Kubernetes をフォローする。
- Nutanix Calm について学ぶ。
ご意見、ご質問はこちらまでお寄せください。
* この投稿は米国時間 7 月 10 日、Kubernetes and Container Engine の Product GTM Lead である Allan Naim によって投稿されたもの(投稿はこちら)の抄訳です。
- By Allan Naim, Product GTM Lead, Kubernetes and Container Engine