コンテンツに移動
デベロッパー

OpenStack ワークロードをクラウドネイティブにする方法

2021年12月7日
Google Cloud Japan Team

※この投稿は米国時間 2021 年 11 月 24 日に、Google Cloud blog に投稿されたものの抄訳です。

本ブログ投稿では、OpenStack の実行に対応したベアメタル版 Anthos を活用してアプリケーションのモダナイゼーションを加速する方法についてご紹介します。さらに、先日公開された「OpenStack にベアメタル版 Anthos クラスタをデプロイする」と「Kubernetes 用の OpenStack クラウド プロバイダの構成」の 2 つのガイドについても取り上げます。専門知識と OpenStack の環境に応じて、ガイドのどのステップから始めればよいか紹介していますので、ぜひ参考にしてみてください。

OpenStack とは

OpenStack は、コンピューティング、ストレージ、ネットワークの各リソースの巨大なプールを管理できるオープンソース プラットフォームです。リソースを管理、制御するための一貫性のある API とインタラクティブなダッシュボードが OpenStack には用意されています。自社にベアメタル サーバーがある場合は、そこに OpenStack をインストールし、ハードウェア リソースを外部(他のチームや社外)に公開することで、VM やロードバランサ、その他のコンピューティング サービスをプロビジョニングできます。OpenStack は、Google データセンター上で実行され、Google Cloud Console を使用したコンピューティング リソースとサービスのプロビジョニングを可能にするソフトウェアのような存在だと考えることができます。

OpenStack を利用している企業

早くから自社専用のハードウェアとネットワーク機器の取得に投資してきた多くの企業では、自社インフラストラクチャを管理するための統合プラットフォームを必要としていました。コンピューティング リソースは利用可能でしたが、コンピューティング リソースを簡単に管理し、上層部が容易に利用できる方法が求められていました。2010 年時点でインフラストラクチャの管理に企業が使用できるプラットフォームは OpenStack も含めてごくわずかしか存在していませんでした。ベアメタル環境におけるスケジュールやネットワーク、ストレージに関連する面倒なタスクはすべて OpenStack で処理されていました。このような事情もあり、Google Cloud の複数のお客様が自社インフラストラクチャの管理に長年 OpenStack を使用されています。ベアメタル サーバーやストレージ サーバー、ネットワーク機器に投資してきた企業でも、OpenStack が広く採用されています。  

ベアメタル版 Anthos とは

Anthos は、Google Cloud やオンプレミス、競合クラウド プロバイダなど、環境を問わず Kubernetes クラスタを管理できる Google のソリューションです。Anthos では、短期間でアプリケーションをモダナイズしてすべての環境で運用の一貫性を確立できます。ベアメタル版 Anthos は、自社で維持管理している物理サーバー上での Anthos の実行を可能にするオプション サービスです。ハードウェア、プラットフォーム、ネットワーク インフラストラクチャへのこれまでの投資を無駄にすることなく Kubernetes クラスタをホストできます。さらに、アプリケーションの要件が非常に厳しい場合でも、Anthos による一元管理で柔軟性とデベロッパーのアジリティが向上します。「Anthos クラスタ」という言葉は Anthos によって維持管理されている Kubenertes クラスタを指すことにご注意ください。

ベアメタル版 Anthos で OpenStack ワークロードをクラウドネイティブにすることは可能なのか

簡潔に言うと答えは「可能」です。

データセンターと大量のベアメタル サーバーに行ってきた投資は自社にとって極めて重要であるとの声をお客様から頂いています。データ所在地要件やリソースのきめ細かい管理、相殺が難しいコスト、現在の環境に熟知している既存の人材など、さまざまな理由でこれが重要になっています。ここに挙げた理由や他の理由が皆さんにもきっと当てはまるはずです。

コンテナ化やクラウドネイティブ アプリケーションの開発に向けた動きが活発になるなか、アプリケーション モダナイゼーションのトレンドがもたらすメリットを活用しながら、OpenStack 環境でアプリケーションを引き続き実行できるようにするためのお手伝いをしたいと Google Cloud では考えています。Anthos はこうした構想を実現するために開発されました。ベアメタル版 Anthos では OpenStack 環境に近い場所で Google Cloud のさまざまな機能が利用できます。適切に調整された OpenStack インフラストラクチャでワークロードを実行できるだけでなく、サービス メッシュや構成の一元管理、モニタリングやアラートなど、Google Cloud の主要機能を使ってアプリケーション スタックを継続的にモダナイズすることが可能になります。OpenStack は基盤となるコンピューティング リソースの管理に威力を発揮するのに対して、ベアメタル版 Anthos は既存のインフラストラクチャで実行されている Kubernetes クラスタの管理を可能にします。OpenStack でベアメタル版 Anthos を使用するこうした取り組みをサポートするべく、先日 2 つのガイドを公開しました。

https://storage.googleapis.com/gweb-cloudblog-publish/images/anthos_network.max-400x400.png

OpenStack へのベアメタル版 Anthos のインストール

先日公開されたガイド「OpenStack にベアメタル版 Anthos クラスタをデプロイする」では、既存の OpenStack 環境にベアメタル版 Anthos をインストールする手順を詳しく紹介しています。このガイドでは、次の図と似たような OpenStack 環境があることを前提としています。2 つの OpenStack 仮想マシンに 1 つのハイブリッド クラスタをインストールする手順が掲載されています。

https://storage.googleapis.com/gweb-cloudblog-publish/images/anthos_openstack_Zsa5Aak.max-2000x2000.png

OpenStack テナント ネットワークが作成されており、この OpenStack 環境のプロバイダ ネットワークに接続されています。このテナント ネットワークはベアメタル版 Anthos のインストールに使用する仮想マシン間のレイヤ 2 ネットワーク接続として機能します。この環境には次の 3 つの仮想マシンがあります。

  1. 管理ワークステーション: インストール プロセスを開始する仮想マシンです。ベアメタル版 Anthos のインストールの一環として、ブートストラップ クラスタが作成されます。このクラスタは管理ワークステーションに作成され、インストールが完了すると削除されます。

  2. コントロール プレーン ノード: Anthos クラスタのコントロール プレーン コンポーネントを実行する仮想マシンです。

  3. ワーカーノード: アプリケーション ワークロードを実行する仮想マシンです。

コントロール プレーン ノードとワーカーノードでベアメタル版 Anthos クラスタを形成します。

さらに、仮想マシンのアタッチ先となる同じテナント ネットワークに OpenStack Octavia ロードバランサをプロビジョニングしています。ロードバランサもルーター経由でプロバイダ ネットワークに接続されています。「Kubernetes 用の OpenStack クラウド プロバイダの構成」のインストール手順を実行したあとの作業でこのロードバランサの設定が重要になります。Kubernetes 用の OpenStack クラウド プロバイダを Anthos クラスタで構成することで、テナント ネットワーク外に Kubernetes サービスを公開できます。OpenStack クラウド プロバイダを構成すると、タイプが LoadBalancer の Kubernetes サービスを作成するたびに、Octavia ロードバランサを使用してこのサービスに IP アドレスが割り当てられます。その結果、外部プロバイダ ネットワークからサービスに到達できるようになります。

2 つのガイドに記載されている手順を簡単に実行できるように、必要なビルディング ブロックはすべて anthos-samples リポジトリにあらかじめ用意しています。設定の進み具合に応じて、次の 4 つのステップのどこから始めても構いません。

  • テスト用の OpenStack 環境がない場合: ガイド「Deploy OpenStack Ussuri on GCE VM」を参考にしながら、Google Compute Engine VM 上で OpenStack 環境を実行します。

  • OpenStack 環境はあるが、さきほど紹介した図のとおりに環境が構成されていない場合: ガイド「Provision the OpenStack VMs and network setup using Terraform」を参考にしながら、図のとおりに環境を構成します。このガイドでは、Terraform を使用してセットアップ プロセスを自動的に実行しています。そのため、作業が終わり次第環境を簡単にクリーンアップできます。

  • OpenStack 環境があり、さきほどの図のような環境がすでに構成されている場合: ガイド「OpenStack にベアメタル版 Anthos クラスタをデプロイする」に記載されている手順をそのまま実行します。

  • OpenStack 環境があり、その環境がさきほどの図と同じでベアメタル版 Anthos がインストール済みの場合: ガイド「Kubernetes 用の OpenStack クラウド プロバイダの構成」を参考にしながら、OpenStack Octavia ロードバランサを使用してテナント ネットワーク外に Kubernetes サービスを公開します。

ゼロから作業を始めて 4 つすべてのステップを実行する必要がある場合は、GitHub リポジトリにある「Getting started」ガイドを参考にすることをおすすめします。リポジトリにあるステップでは、既存の OpenStack 環境があることを前提としていません。また、Google Cloud、Google Compute Engine VM、OpenStack、OpenStack 仮想マシンを順にたどって Anthos クラスタに含まれているサービスにアクセスするために必要な情報がすべて用意されています。非常に多くのレイヤが存在します。



Developer Relations エンジニア Shabir Abdul Samadh
投稿先