プライベート クラウドのリソースとアクティビティを管理する

プライベート クラウドを作成すると、その詳細情報の表示、リソースとアクティビティの管理、VMware 管理用アプライアンスへのアクセスが可能になります。各プライベート クラウドには 1 つ以上のクラスタが含まれ、各クラスタには ESXi ホストに対応するノードが含まれます。

プライベート クラウドのクラスタに適用される自動スケーリング ポリシーでは、リソースの使用量をモニタリングし、クラスタに対してノードを自動的に追加または削除します。プライベート クラウドのクラスタに対してノードを追加または削除して、プライベート クラウドを手動で拡張または縮小することもできます。たとえば、現在のニーズに基づいてプライベート クラウドを作成してから、使用量の増加に応じてノードを追加することでプライベート クラウドを拡張できます。

プライベート クラウドのリストを表示するには、まずリソースの概要ページにアクセスします。

  1. Google Cloud VMware Engine ポータルにアクセスします
  2. メイン ナビゲーションから [リソース] に移動します。
  3. プライベート クラウドのリストから、管理するプライベート クラウドを選択します。

gcloud と API の要件

gcloud コマンドライン ツールまたは API を使用して VMware Engine リソースを管理するには、以下で説明するようにツールを構成することをおすすめします。

gcloud

  1. デフォルトのプロジェクト ID を設定します。

    gcloud config set project PROJECT_ID
    
  2. デフォルトのリージョンとゾーンを設定します。

    gcloud config set compute/region REGION
    gcloud config set compute/zone ZONE

gcloud vmware ツールの詳細については、Cloud SDK リファレンス ドキュメントをご確認ください

API

このドキュメント セットの API の例では、cURL コマンドライン ツールを使用して API がクエリされています。cURL リクエストには、有効なアクセス トークンが必要です。有効なアクセス トークンを取得するにはさまざまな方法があります。次の手順では、gcloud ツールを使用してアクセス トークンを生成します。

  1. Google Cloud にログインする

    gcloud auth login
    
  2. アクセス トークンを生成して TOKEN にエクスポートする

    export TOKEN=`gcloud auth print-access-token`
    
  3. TOKEN が正しく設定されていることを確認する

    echo $TOKEN
    
    Output:
    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 と通信します。このアプローチを使用するには、ライブラリをインストールし、アプリケーションのデフォルト認証情報を構成する必要があります。

  1. Python ライブラリをダウンロードしてインストールする

     pip install google-cloud-vmwareengine
    
  2. シェルで次のコマンドを実行して、アプリケーションのデフォルト認証情報を構成する

      gcloud auth application-default login
    

    または、サービス アカウント キー ファイルを使用する

      export GOOGLE_APPLICATION_CREDENTIALS="FILE_PATH"
    

ライブラリの詳細については、リファレンス ページまたは GitHub のコードサンプルをご覧ください。

IP アドレスのレイアウト バージョンを確認する

2022 年 11 月以降に作成されたプライベート クラウドには、IP アドレス レイアウト(IP プラン)バージョン 2.0 のサブネット割り振りが適用されます。2022 年 11 月より前に作成されたほとんどのプライベート クラウドには、IP プラン バージョン 1.0 のサブネット割り振りが適用されます。

プライベート クラウドが準拠しているバージョンを確認するには、次の手順を完了します。

  1. Google Cloud VMware Engine ポータルにアクセスします
  2. [リソース] ページで、[概要] をクリックします。

バージョン番号が [IP プランのバージョン] に表示されます。

プライベート クラウドの概要の表示

概要には、名前、vSphere クラスタの数、ノード数、ロケーション、運用状態など、プライベート クラウドに関する情報が表示されます。概要ページには、プライベート クラウドにデプロイされた DNS サーバーが含まれます。

プライベート クラウドの概要ページから、次の操作を行えます。

プライベート クラウドへのノードの追加

プライベート クラウドは、1 つ以上の vSphere クラスタで構成され、各クラスタには複数のノードが含まれています。プライベート クラウドにノードを追加する場合は、既存のクラスタにノードを追加するか、新しいクラスタを作成します。プライベート クラウドは、全体のノード上限を超えない限り何度でも拡張できます。プライベート クラウドを拡張するたびに、既存のクラスタに追加するか、新しいクラスタを作成します。

新しいクラスタ構成の一部として、Google は VMware インフラストラクチャを構成します。この設定には、vSAN ディスク グループ、VMware 高可用性、分散リソース スケジューラ(DRS)のストレージ設定が含まれます。

プライベート クラウドにノードを追加する手順は次のとおりです。

コンソール

  1. プライベート クラウドの概要ページで、[Add Nodes] をクリックします。
  2. 既存のクラスタの 1 つノードを追加するか、新しい vSphere クラスタを作成するかを選択します。変更を加えると、そのページの概要情報が更新されます。
  3. 既存のいずれかのクラスタにノードを追加するには、[Add nodes to existing] を選択します。拡張するクラスタを選択して、追加するノードの数を入力します。
  4. 新しいクラスタを追加するには、[Create new] を選択します。続いて、次の詳細情報を指定します。
    1. クラスタの名前を入力します。
    2. 既存の vSphere データセンターを選択するか、新しいデータセンターを作成するための名前を入力します。
    3. ノード数を選択します。新しいクラスタごとに最低 3 つのノードが必要です。
    4. 省略可: 管理クラスタ内の各ノードで使用可能なコア数を減らすには、[Customize Cores] トグルをクリックします。詳細については、カスタムコア数をご覧ください。
  5. [送信] をクリックします。

gcloud

update コマンドを使用すると、クラスタの合計ノード数を変更できます。このコマンドには、クラスタとプライベート クラウドの名前が必要です。

  1. クラスタを一覧表示します。

    gcloud vmware private-clouds clusters list \
     --private-cloud=PC_NAME \
     --location=ZONE
  2. クラスタを更新します。たとえば、次のコマンドはノード数を 4 に変更します。

    gcloud vmware private-clouds clusters update CLUSTER_NAME \
    --location=ZONE \
    --private-cloud=PC_NAME --node-type-config=type=standard-72,count=4

    次のように置き換えます。

    • CLUSTER_NAME: このプライベート クラウドで更新するクラスタの名前
    • ZONE: プライベート クラウドのゾーン
    • PC_NAME: プライベート クラウドの名前
    • PROJECT_ID: このリクエストのプロジェクト ID

API

更新 API を使用すると、クラスタの合計ノード数を変更できます。このコマンドには、クラスタとプライベート クラウドの名前が必要です。

  1. クラスタを一覧表示します。

    curl -L -X GET -H "Authorization: Bearer TOKEN" "https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/privateClouds/PC_NAME/clusters"
    
  2. クラスタを更新します。たとえば、次のコマンドではクラスタを standard-72 に更新し、ノード数を 4 に変更します。

    curl -L -X PATCH -H "Authorization: Bearer TOKEN" \
    -H "Content-Type: application/json" \
    "https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/privateClouds/PC_NAME/clusters/CLUSTER_NAME?updateMask=node_type_configs.*.node_count" \
    -d '{
    "nodeTypeConfigs": {
      "standard-72" : {
        "nodeCount": 4
      }
    }
    }'

    次のように置き換えます。

    • PROJECT_ID: このリクエストのプロジェクト ID
    • ZONE: プライベート クラウドのゾーン
    • PC_NAME: プライベート クラウドの名前
    • CLUSTER_NAME: このプライベート クラウドで更新するクラスタの名前

Python

クラスタの更新メソッドを使用して、クラスタの合計ノード数を変更できます。このメソッドには、クラスタとプライベート クラウドの名前が必要です。

  1. クラスタを一覧表示します。
from typing import Iterable

from google.cloud import vmwareengine_v1

def list_clusters(
    project_id: str, zone: str, private_cloud_name: str
) -> Iterable[vmwareengine_v1.Cluster]:
    """
    Retrieves a list of clusters in private cloud.

    Args:
        project_id: name of the project hosting the private cloud.
        zone: zone in which the private cloud is located.
        private_cloud_name: name of the cloud of which you want to list cluster.

    Returns:
        An iterable collection of Cluster objects.
    """
    client = vmwareengine_v1.VmwareEngineClient()
    return client.list_clusters(
        parent=f"projects/{project_id}/locations/{zone}/privateClouds/{private_cloud_name}"
    )

  1. クラスタを更新します。次のメソッドを使用して、クラスタ内の standard-72 ノードの数を変更できます。
from google.api_core import operation
from google.cloud import vmwareengine_v1

def update_cluster_node_count(
    project_id: str,
    zone: str,
    private_cloud_name: str,
    cluster_name: str,
    node_count: int,
) -> operation.Operation:
    """
    Modify the number of nodes in a cluster in a private cloud.

    Modifying a cluster is a long-running operation and it may take over an hour.

    Args:
        project_id: name of the project you want to use.
        zone: zone in which your private cloud is located.
        private_cloud_name: name of the private cloud hosting the cluster.
        cluster_name: name of the cluster.
        node_count: desired number of nodes in the cluster.

    Returns:
        An Operation object related to cluster modification operation.
    """
    if node_count < 3:
        raise RuntimeError("Cluster needs to have at least 3 nodes")
    client = vmwareengine_v1.VmwareEngineClient()
    request = vmwareengine_v1.UpdateClusterRequest()
    request.cluster = vmwareengine_v1.Cluster()
    request.cluster.name = (
        f"projects/{project_id}/locations/{zone}/privateClouds/{private_cloud_name}"
        f"/clusters/{cluster_name}"
    )
    request.cluster.node_type_configs = {
        "standard-72": vmwareengine_v1.NodeTypeConfig()
    }
    request.cluster.node_type_configs["standard-72"].node_count = node_count
    request.update_mask = "nodeTypeConfigs.*.nodeCount"
    return client.update_cluster(request)

プライベート クラウドに新しいクラスタを追加する

既存のプライベート クラウドに新しいクラスタを追加する手順は次のとおりです。

gcloud

新しいクラスタを追加して名前を付けます。次に例を示します。

gcloud vmware private-clouds clusters create CLUSTER_NAME \
   --location=ZONE --private-cloud=PC_NAME \
   --node-type-config=type=standard-72,count=4

API

新しいクラスタを追加して名前を付けます。次に例を示します。

curl -L -X POST -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" \
"https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/privateClouds/PC_NAME/clusters?clusterId=CLUSTER_NAME" \
-d '{
  "nodeTypeConfigs": {
    "standard-72": {
      "nodeCount": 4
      }
  }
}'

Python

新しいクラスタを追加して名前を付けます。

from google.api_core import operation
from google.cloud import vmwareengine_v1

def create_cluster(
    project_id: str,
    zone: str,
    private_cloud_name: str,
    cluster_name: str,
    node_count: int = 4,
) -> operation.Operation:
    """
    Create a new cluster in a private cloud.

    Creation of a new cluster is a long-running operation and it may take over an hour.

    Args:
        project_id: name of the project you want to use.
        zone: region in which your private cloud is located.
        private_cloud_name: name of the private cloud hosting the new cluster.
        cluster_name: name of the new cluster.
        node_count: number of nodes in the new cluster. (Must be >= 3)

    Returns:
        An Operation object related to started cluster creation operation.

    Raises:
        ValueError in case an incorrect number of nodes is provided.
    """
    if node_count < 3:
        raise ValueError("Cluster needs to have at least 3 nodes")

    request = vmwareengine_v1.CreateClusterRequest()
    request.parent = (
        f"projects/{project_id}/locations/{zone}/privateClouds/{private_cloud_name}"
    )

    request.cluster = vmwareengine_v1.Cluster()
    request.cluster.name = cluster_name

    # Currently standard-72 is the only supported node type.
    request.cluster.node_type_configs = {
        "standard-72": vmwareengine_v1.NodeTypeConfig()
    }
    request.cluster.node_type_configs["standard-72"].node_count = node_count

    client = vmwareengine_v1.VmwareEngineClient()
    return client.create_cluster(request)

カスタムコア数の構成を設定した新しいクラスタを作成する

カスタムコア数の構成を設定した新しいクラスタを作成するには、次の操作を行います。

gcloud

新しいクラスタを追加し、コア数の構成を指定します。たとえば、次の例では、3 つのノードを含み、カスタムコア数が 28 に設定された standard-72 ノードタイプの新しいクラスタを作成します。

gcloud vmware private-clouds clusters create CLUSTER_NAME \
    --location=ZONE \
    --private-cloud=PC_NAME \
    --node-type-config=type=standard-72,count=4,custom-core-count=28

API

新しいクラスタを追加し、コア数の構成を指定します。たとえば、次の例では、4 つのノードを含み、カスタムコア数が 28 に設定された standard-72 ノードタイプの新しいクラスタを作成します。

curl -L -X POST -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" \
"https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/privateClouds/PROJECT_ID/clusters?clusterId=CLUSTER_NAME" \
-d '{
      "nodeTypeConfigs": {
      "standard-72": {
        "nodeCount": 4,
        "customCoreCount": 28
        }
    }
}'

Python

新しいクラスタを追加し、コア数の構成を指定します。たとえば、次の例では、構成可能なノード数とコア数が設定された standard-72 ノードタイプの新しいクラスタを作成します。

from google.api_core import operation
from google.cloud import vmwareengine_v1

def create_custom_cluster(
    project_id: str,
    zone: str,
    private_cloud_name: str,
    cluster_name: str,
    node_count: int = 4,
    core_count: int = 28,
) -> operation.Operation:
    """
    Create a new cluster with custom number of cores in its nodes
    in a private cloud.

    Creation of a new cluster is a long-running operation and it may take over an hour.

    Args:
        project_id: name of the project you want to use.
        zone: region in which your private cloud is located.
        private_cloud_name: name of the private cloud hosting the new cluster.
        cluster_name: name of the new cluster.
        node_count: number of nodes in the new cluster.
        core_count: number of CPU cores in the new cluster nodes.

    Returns:
        An Operation object related to started cluster creation operation.

    Raises:
        ValueError in case an incorrect number of nodes is provided.
    """
    if node_count < 3:
        raise ValueError("Cluster needs to have at least 3 nodes")

    request = vmwareengine_v1.CreateClusterRequest()
    request.parent = (
        f"projects/{project_id}/locations/{zone}/privateClouds/{private_cloud_name}"
    )

    request.cluster = vmwareengine_v1.Cluster()
    request.cluster.name = cluster_name

    # Currently standard-72 is the only supported node type.
    request.cluster.node_type_configs = {
        "standard-72": vmwareengine_v1.NodeTypeConfig()
    }
    request.cluster.node_type_configs["standard-72"].node_count = node_count
    request.cluster.node_type_configs["standard-72"].custom_core_count = core_count

    client = vmwareengine_v1.VmwareEngineClient()
    return client.create_cluster(request)

ノードまたはクラスタの削除

プライベート クラウドからノードを削除する場合は、既存のクラスタからノードを削除するか、クラスタ全体を削除します。

プライベート クラウドからノードを削除するには、いくつかのノードでクラスタを更新します。

コンソール

  1. プライベート クラウドの概要ページで、[Remove nodes] をクリックします。
  2. 縮小または削除するクラスタを選択します。
  3. [Remove one node] を選択します。
  4. クラスタの容量を確認します。
  5. [Submit] をクリックすると、ノードの削除プロセスが開始されます。

進行状況をモニタリングするには、[Activity] > [Tasks] の順に選択します。このプロセスでは、vSAN での再同期が必要であり、データによっては数時間かかることがあります。

gcloud

gcloud vmware private-clouds clusters update CLUSTER_NAME \
  --location=ZONE \
  --private-cloud=PC_NAME --node-type-config=type=standard-72,count=3

API

curl -L -X PATCH -H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json" \
"https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/privateClouds/PC_NAME/clusters/CLUSTER_NAME?update_mask=node_type_configs.*.node_count" \
-d '{
  "nodeTypeConfigs": {
    "standard-72" : {
      "nodeCount": 3
    }
  }
}'

Python

from google.api_core import operation
from google.cloud import vmwareengine_v1

def update_cluster_node_count(
    project_id: str,
    zone: str,
    private_cloud_name: str,
    cluster_name: str,
    node_count: int,
) -> operation.Operation:
    """
    Modify the number of nodes in a cluster in a private cloud.

    Modifying a cluster is a long-running operation and it may take over an hour.

    Args:
        project_id: name of the project you want to use.
        zone: zone in which your private cloud is located.
        private_cloud_name: name of the private cloud hosting the cluster.
        cluster_name: name of the cluster.
        node_count: desired number of nodes in the cluster.

    Returns:
        An Operation object related to cluster modification operation.
    """
    if node_count < 3:
        raise RuntimeError("Cluster needs to have at least 3 nodes")
    client = vmwareengine_v1.VmwareEngineClient()
    request = vmwareengine_v1.UpdateClusterRequest()
    request.cluster = vmwareengine_v1.Cluster()
    request.cluster.name = (
        f"projects/{project_id}/locations/{zone}/privateClouds/{private_cloud_name}"
        f"/clusters/{cluster_name}"
    )
    request.cluster.node_type_configs = {
        "standard-72": vmwareengine_v1.NodeTypeConfig()
    }
    request.cluster.node_type_configs["standard-72"].node_count = node_count
    request.update_mask = "nodeTypeConfigs.*.nodeCount"
    return client.update_cluster(request)

クラスタ全体を削除するには、次の操作を行います。

コンソール

  1. プライベート クラウドの概要ページで、[Remove nodes] をクリックします。
  2. 縮小または削除するクラスタを選択します。
  3. [Delete the whole cluster] を選択します。
  4. クラスタの容量を確認します。
  5. [Submit] をクリックすると、ノードの削除プロセスが開始されます。

gcloud

gcloud vmware private-clouds clusters delete CLUSTER_NAME \
  --location=ZONE \
  --private-cloud=PC_NAME

API

curl -L -X DELETE -H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json" \
"https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/privateClouds/PC_NAME/clusters/CLUSTER_NAME"

Python

from google.api_core import operation
from google.cloud import vmwareengine_v1

def delete_cluster(
    project_id: str, zone: str, private_cloud_name: str, cluster_name: str
) -> operation.Operation:
    """
    Delete a cluster from private cloud.

    Deleting a cluster is a long-running operation and it may take over an hour..

    Args:
        project_id: name of the project you want to use.
        zone: region in which your private cloud is located.
        private_cloud_name: name of the private cloud hosting the new cluster.
        cluster_name: name of the new cluster.

    Returns:
        An Operation object related to started cluster deletion operation.
    """
    client = vmwareengine_v1.VmwareEngineClient()
    request = vmwareengine_v1.DeleteClusterRequest()
    request.name = (
        f"projects/{project_id}/locations/{zone}/privateClouds/{private_cloud_name}"
        f"/clusters/{cluster_name}"
    )
    return client.delete_cluster(request)

制限事項

プライベート クラウドからノードを削除するプロセスには、次の制約があります。

  • vSphere クラスタには 3 つ以上のノードが必要です。ノード数が 3 つ以下のクラスタからノードを削除することはできません。
  • 使用した総容量は、クラスタからノードを削除した後の合計容量を超えることはありません。
  • プライベート クラウドの作成時に作成された最初のクラスタは削除できません。
  • vSphere DRS ルール(アフィニティと反アフィニティ)がクラスタのすべてのノードに適用されている場合、クラスタからノードを削除することはできません。ルールを削除して、ノード削除オペレーションを再試行できます。

サブネットの表示

プライベート クラウド用に定義された管理サブネットのリストを表示するには、[Subnets] タブを選択します。このリストには、プライベート クラウドの作成時に作成された HCX サブネットが含まれます。サブネットのリストには、各サブネットに関連付けられたファイアウォール テーブルも含まれています。

アクティビティ情報の表示

プライベート クラウドのアクティビティ情報を表示するには、[Activity] タブを選択します。表示される情報は、プライベート クラウドのすべてのアクティビティをフィルタリングしたリストです。このページには、最近のアクティビティが 25 件まで表示されます。アクティビティとそれらに関連する操作の全一覧については、VMware Engine アクティビティのモニタリングをご覧ください。

vSphere 管理ネットワークの表示

プライベート クラウドで現在構成されている VMware 管理リソースと仮想マシンのリストを表示するには、[vSphere Management Network] タブを選択します。情報には、ソフトウェア バージョン、完全修飾ドメイン名(FQDN)、リソースの IP アドレスが含まれます。