VMware Engine プライベート クラウドの作成
プライベート クラウドとは、ESXi ホスト、vCenter、vSAN、NSX-T、HCX で構成される、分離された VMware スタックのことです。プライベート クラウドは、Google Cloud コンソールで管理します。プライベート クラウドを作成すると、単一の vSphere クラスタと、そのクラスタ内に作成されるすべての管理 VM が得られます。
VMware Engine では、vSphere / vSAN サブネット用に選択したネットワークに管理コンポーネントをデプロイします。ネットワーク IP アドレス範囲は、デプロイ中に異なるサブネットに分割されます。
始める前に
このページのタスクを実行する前に、次の準備を行っておく必要があります。
- プライベート クラウドの vSphere / vSAN サブネットに一意の IP アドレス範囲を割り振る。
- 最小の CIDR 範囲プレフィックス: /24
- 最大の CIDR 範囲プレフィックス: /20
- Cloud DNS を使用したグローバルなアドレス解決が必要な場合は、プライベート クラウドを作成する前に Cloud DNS API を有効化して Cloud DNS の設定を完了します。
vSphere / vSAN のサブネット アドレス空間は、オンプレミス ネットワークと Google Cloud Virtual Private Cloud(VPC)など、プライベート クラウドと通信するネットワークと重複しないようにする必要があります。vSphere または vSAN サブネットの詳細については、VMware Engine の VLAN とサブネットをご覧ください。
Google Cloud CLI と API の要件
gcloud
コマンドライン ツールまたは API を使用して VMware Engine リソースを管理するには、以下で説明するようにツールを構成することをおすすめします。
gcloud
デフォルトのプロジェクト ID を設定します。
gcloud config set project PROJECT_ID
デフォルトのリージョンとゾーンを設定します。
gcloud config set compute/region REGION
gcloud config set compute/zone ZONE
gcloud vmware
ツールの詳細については、Cloud SDK リファレンス ドキュメントをご確認ください。
API
このドキュメント セットの API の例では、cURL
コマンドライン ツールを使用して API がクエリされています。cURL
リクエストには、有効なアクセス トークンが必要です。有効なアクセス トークンを取得するにはさまざまな方法があります。次の手順では、gcloud
ツールを使用してアクセス トークンを生成します。
Google Cloud にログインします。
gcloud auth login
アクセス トークンを生成して TOKEN にエクスポートします。
export TOKEN=`gcloud auth print-access-token`
TOKEN が正しく設定されていることを確認します。
echo $TOKEN
API へのリクエストで認証トークンを使用します。次に例を示します。
curl -X GET -H "Authorization: Bearer \"$TOKEN\"" -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations
Python
このドキュメントの Python コードサンプルは、VMware Engine ライブラリを使用して API と通信します。このアプローチを使用するには、ライブラリをインストールし、アプリケーションのデフォルト認証情報を構成する必要があります。
Python ライブラリをダウンロードしてインストールします。
pip install google-cloud-vmwareengine
シェルで次のコマンドを実行して、ADC 情報を構成します。
gcloud auth application-default login
または、サービス アカウント キー ファイルを使用します。
export GOOGLE_APPLICATION_CREDENTIALS="FILE_PATH"
ライブラリの詳細については、リファレンス ページまたは GitHub のコードサンプルをご覧ください。
プライベート クラウドの作成
コンソール
Google Cloud コンソールを使用してプライベート クラウドを作成するには、次の手順で操作します。
- Google Cloud コンソールにアクセスします。
- メイン ナビゲーションから [プライベート クラウド] をクリックします。
- [作成] をクリックします。
- プライベート クラウドをデプロイするロケーションを選択します。
- プライマリ クラスタのノードタイプを選択します。
- プライベート クラウドのノード数を選択します。本番環境ワークロードの場合、少なくとも 3 つのノードを持つプライベート クラウドを作成します。VMware Engine は、60 日後にノードが 1 つのみ存在するプライベート クラウドを削除します。
- 省略可: 管理クラスタ内の各ノードで使用可能なコア数を減らすには、[Customize Cores] トグルをクリックします。詳細については、カスタムコア数をご覧ください。
- VMware 管理ネットワークの CIDR 範囲を入力します。この範囲の制限については、始める前にのセクションをご覧ください。
- [確認して作成] をクリックします。
- 設定を確認します。設定を変更するには、[Back] をクリックします。
- [Create] をクリックして、プライベート クラウドのプロビジョニングを開始します。
次のリストは、プライベート クラウドの作成時に使用する各フィールドの詳細を示しています。
- Name: プライベート クラウドの永続的な一意の識別子です。
- Description: プライベート クラウドの詳細ページに表示される追加情報です。
- Region: VMware Engine がプライベート クラウドをホストする地理的な場所です。
- Zone: リージョンのサブセットです。同じリージョン内にあるゾーンは互いに物理的に隔離されています。ゾーンは、リージョン内の単一の障害発生ドメインです。
- Primary cluster name: プライベート クラウドの最初の vSphere クラスタに付けられた名前。プライベート クラウドの VMware 管理アプライアンスがこのクラスタ上で実行されます。
- ノード タイプ: プライマリ クラスタ内のノードのハードウェア構成。
- ノード: プライマリ クラスタ内のノードの数。
- Management IP address range: vCenter Server、NSX Manager、ESXi ホスト、プライベート クラウドのインフラストラクチャの他の部分に使用される IP アドレス範囲です。この範囲はワークロード VM には使用されません。また、VPC ネットワークやプライベート クラウドを接続する予定のネットワークのどの部分とも重複してはなりません。
- VMware Engine network: ネットワーク ポリシーに従ってプライベート クラウド接続を処理するネットワーク リソース。この VMware Engine ネットワークに接続しているユーザーとリソースは、Google Cloud 内からプライベート クラウドにアクセスできます。
gcloud
Google Cloud CLI を使用して拡張プライベート クラウドを作成するには、次の手順で操作します。
省略可:
gcloud vmware locations list
コマンドを実行して、プロジェクトで使用可能なリージョンとゾーンを一覧表示します。gcloud vmware locations list \ --project=PROJECT_ID
次のように置き換えます。
PROJECT_ID
: このリクエストのプロジェクト ID
gcloud vmware networks create
コマンドを実行して、プライベート クラウド用のネットワークを作成します。gcloud vmware networks create NETWORK_NAME \ --type=LEGACY \ --location=REGION \ --description="DESCRIPTION"
次のように置き換えます。
NETWORK_NAME
: プライベート クラウドのネットワーク名REGION
: プライベート クラウドのリージョンDESCRIPTION
: プライベート クラウドの説明
このリクエストはオペレーション ID を返します。
gcloud vmware operations describe
コマンドを実行して、オペレーションのステータスを確認します。オペレーションがDONE
として返されたら、レスポンスをチェックしてオペレーションが成功したかどうかを確認します。gcloud vmware operations describe OPERATION_ID \ --location REGION
次のように置き換えます。
OPERATION_ID
: 前のステップの IDREGION
: プライベート クラウドのリージョン
gcloud vmware private-clouds create
コマンドを実行して、3 ノード プライベート クラウドを作成します。gcloud vmware private-clouds create PRIVATE_CLOUD_ID \ --location=ZONE \ --cluster=CLUSTER_ID \ --node-type-config=type=NODE_TYPE,count=NODE_COUNT \ --management-range=`IP_ADDRESS` \ --vmware-engine-network=NETWORK_NAME
次のように置き換えます。
PRIVATE_CLOUD_ID
: プライベート クラウドの名前。ZONE
: プライベート クラウドのゾーンCLUSTER_ID
: このプライベート クラウドの新しいクラスタの名前。NODE_TYPE
: ノードタイプ。詳細については、ノードタイプをご覧ください。NODE_COUNT
: ノード数。3 以上の値を指定します。IP_ADDRESS
: IP アドレス。たとえば、このリクエストの場合192.168.0.0/24
。NETWORK_NAME
: このクラウドのネットワーク名。
リクエストはオペレーション ID を返します。この ID を使用してオペレーションの進行状況を確認できます。
gcloud vmware operations describe
コマンドを実行して、オペレーションのステータスを確認します。オペレーションがDONE
として返されたら、レスポンスをチェックしてオペレーションが成功したかどうかを確認します。gcloud vmware operations describe OPERATION_ID \ --location REGION
次のように置き換えます。
OPERATION_ID
: 前のステップの IDREGION
: プライベート クラウドのリージョン
プライベート サービス アクセスを設定して、VMware Engine ネットワークを VPC に接続します。
gcloud vmware private-clouds vcenter credentials describe
コマンドとgcloud vmware private-clouds nsx credentials describe
コマンドを実行して、それぞれ vCenter と NSX-T の各認証情報を取得します。gcloud vmware private-clouds vcenter credentials describe \ --private-cloud=PRIVATE_CLOUD_ID \ --location=ZONE
gcloud vmware private-clouds nsx credentials describe \ --private-cloud=PRIVATE_CLOUD_ID \ --location=ZONE
次のように置き換えます。
PRIVATE_CLOUD_ID
: プライベート クラウドの IDZONE
: プライベート クラウドのゾーン
API
VMware Engine API を使用して拡張プライベート クラウドを作成するには、次の手順を操作します。
POST
リクエストを送信してレガシー ネットワークを作成します。curl -X POST -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/vmwareEngineNetworks?vmwareEngineNetworkId=NETWORK_NAME -d "{"type": "legacy"}"
次のように置き換えます。
TOKEN
: このリクエストの認証トークンPROJECT_ID
: このリクエストのプロジェクトREGION
: このネットワークを作成するリージョンNETWORK_NAME
: プライベート クラウドのネットワーク名
リクエストはオペレーション ID を返します。この ID を使用してオペレーションの進行状況を確認できます。
GET
リクエストを送信して、オペレーションのステータスを確認します。オペレーションがDONE
として返されたら、レスポンスをチェックしてオペレーションが成功したかどうかを確認します。curl -X GET -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID
OPERATION_ID
は、前の手順の ID に置き換えます。POST
リクエストを送信して 3 ノード プライベート クラウドを作成します。curl -X POST -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/privateClouds?privateCloudId=PRIVATE_CLOUD_ID -d "{ "networkConfig":{ "vmwareEngineNetwork":"projects/PROJECT_ID/locations/REGION/vmwareEngineNetworks/NETWORK_NAME", "managementCidr":"10.241.0.0/22" }, "managementCluster":{ "clusterId": "CLUSTER_ID", "nodeTypeConfigs": { "standard-72": { "nodeCount": NODE_COUNT } } } }"
次のように置き換えます。
TOKEN
: このリクエストの認証トークン。PROJECT_ID
: このリクエストのプロジェクト IDZONE
: プライベート クラウドのゾーンPRIVATE_CLOUD_ID
: プライベート クラウドの IDREGION
: このプライベート クラウドのネットワークのリージョンNETWORK_NAME
: プライベート クラウドのネットワーク名CLUSTER_ID
: このプライベート クラウドの新しいクラスタの IDNODE_COUNT
: ノード数。3 以上の値を指定します。
リクエストはオペレーション ID を返します。この ID を使用してオペレーションの進行状況を確認できます。
GET
リクエストを送信して、オペレーションのステータスを確認します。オペレーションがDONE
として返されたら、レスポンスをチェックしてオペレーションが成功したかどうかを確認します。curl -X GET -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID
次のように置き換えます。
PROJECT_ID
: このリクエストのプロジェクト IDREGION
: プライベート クラウドのリージョンOPERATION_ID
: 前のステップの ID
プライベート サービス アクセスを設定して、VMware Engine ネットワークを VPC に接続します。
GET
リクエストを送信して、vCenter と NSX-T の各認証情報を取得します。curl -X GET -H "Authorization: Bearer \"TOKEN"\" -H "Content-Type: application/json; charset=utf-8" "https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/privateClouds/PRIVATE_CLOUD_ID:showVcenterCredentials"
curl -X GET -H "Authorization: Bearer \"TOKEN"\" -H "Content-Type: application/json; charset=utf-8" "https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/privateClouds/PRIVATE_CLOUD_ID:showNsxCredentials"
次のように置き換えます。
PROJECT_ID
: このリクエストのプロジェクト IDZONE
: プライベート クラウドのゾーンPRIVATE_CLOUD_ID
: プライベート クラウドの ID
Python
レガシー ネットワークを作成します。
3 ノードのプライベート クラウドを作成します。
create_private_cloud
関数は、オペレーションの進行状況を確認するために使用できるオペレーション オブジェクトを返します。オペレーションのステータスを確認します。次のコードにより、オペレーションに関する現在の情報を取得します。
オペレーション オブジェクトのメンバー メソッド
.result()
を使用して、オペレーションが完了するまで待機できます。プライベート サービス アクセスを設定して、VMware Engine ネットワークを VPC に接続します。
vCenter と NSX-T の認証情報を取得します。
VMware Engine は新しいプライベート クラウドが作成されると、多数の VMware コンポーネントがデプロイされ、指定された IP アドレス範囲がサブネットに分割されます。プライベート クラウドの作成には 30 分から 2 時間かかる場合があります。プロビジョニングが完了すると、メールが届きます。