このドキュメントでは、Google Distributed Cloud(GDC)エアギャップ内の特定の仮想マシン(VM)インスタンスの Tier 1 ネットワーキング パフォーマンスを構成する方法について説明します。Tier 1 ネットワーキング構成の VM は、ハイ パフォーマンス コンピューティング(HPC)、機械学習(ML)、ディープ ラーニング(DL)など、大量のノード間通信を使用する大規模な分散コンピューティング ワークロードに対して特に有効です。
始める前に
gdcloud コマンドライン インターフェース(CLI)コマンドを使用するには、gdcloud CLI をダウンロード、インストール、構成していることを確認してください。Distributed Cloud のすべてのコマンドは gdcloud または kubectl CLI を使用し、オペレーティング システム(OS)環境が必要です。
kubeconfig ファイルのパスを取得する
Management API サーバーに対してコマンドを実行するには、次のリソースがあることを確認します。
Management API サーバーの kubeconfig ファイルがない場合は、ログインして生成します。
これらの手順では、Management API サーバーの kubeconfig ファイルのパスを使用して
MANAGEMENT_API_SERVERを置き換えます。
権限とアクセス権をリクエストする
このページに記載されているタスクを行うには、プロジェクトの VirtualMachine 管理者ロールが必要です。VM が存在するプロジェクトの名前空間にプロジェクト VirtualMachine 管理者(project-vm-admin)ロールがあることを確認する手順に沿って操作します。
GDC コンソールまたは gdcloud CLI を使用する VM オペレーションの場合は、プロジェクト IAM 管理者に、プロジェクトの VirtualMachine 管理者ロールとプロジェクト閲覧者(project-viewer)ロールの両方を割り当てるよう依頼してください。
制限事項
Tier 1 ネットワーキングは、4 個以上の vCPU を備えた N2、N3、N4、A2、A3 マシンタイプでサポートされています。
帯域幅の階層
上り(内向き)と下り(外向き)の帯域幅の上限は、GDC が VM インスタンスのネットワーク インターフェース(NIC)から送信または受信できる時間単位あたりの最大データ量(ギガビット/秒(Gbps)など)を表します。帯域幅には、VM インスタンスとオブジェクト ストレージ間で転送されるデータが含まれます。
GDC には次の帯域幅の上限があります。
- デフォルトの帯域幅の上限は 10 Gbps です。
- Tier 1 ネットワーキングでは、コンピューティング インスタンスの下り(外向き)帯域幅の上限が引き上げられます。下り(外向き)帯域幅の上限は、インスタンスのサイズとマシンタイプに応じて 16 ~ 25 Gbps の範囲になります。
- 実際の下り(外向き)帯域幅は常に、下り(外向き)帯域幅の上限以下になります。
下り(外向き)帯域幅の値を可能な限り引き上げるには、次の条件をすべて満たす必要があります。
- 送信元と受信先のコンピューティング インスタンスは同じゾーンに存在する必要があります。
- インスタンス間で送信されるパケットには、内部 IP アドレスの宛先を使用する必要があります。
- TCP フローの数は 4 ~ 128 フローにする必要があります。
- 送信インスタンスでは TCP セグメンテーション オフロード(TSO)が有効になっている必要があり、受信インスタンスでは汎用受信オフロード(GRO)が有効になっている必要があります。
N2 VM と N3 VM
| vCPU | 内部 IP | Tier 1 内部 IP |
|---|---|---|
| 2 | 10 Gbps | 該当なし |
| 4 | 10 Gbps | 該当なし |
| 8 | 10 Gbps | 16 Gbps |
| 12 | 10 Gbps | 25 Gbps |
| 16 | 10 Gbps | 25 Gbps |
| 32 | 10 Gbps | 25 Gbps |
| 64 | 10 Gbps | 25 Gbps |
N4 VM
| vCPU | 内部 IP | Tier 1 内部 IP |
|---|---|---|
| 4 | 10 Gbps | 該当なし |
| 8 | 10 Gbps | 該当なし |
| 16 | 10 Gbps | 25 Gbps |
| 32 | 10 Gbps | 25 Gbps |
| 48 | 10 Gbps | 25 Gbps |
| 64 | 10 Gbps | 25 Gbps |
| 80 | 10 Gbps | 25 Gbps |
| 160 | 10 Gbps | 25 Gbps |
A2 VM
| vCPU | 内部 IP | Tier 1 内部 IP |
|---|---|---|
| 12 | 10 Gbps | 18 Gbps |
| 24 | 10 Gbps | 25 Gbps |
A3 VM
| vCPU | 内部 IP | Tier 1 内部 IP |
|---|---|---|
| 28 | 10 Gbps | 25 Gbps |
| 56 | 10 Gbps | 25 Gbps |
| 112 | 10 Gbps | 25 Gbps |
Tier 1 ネットワーキングを使用する VM を構成する
Tier 1 ネットワーキングを使用するインスタンスとコンテナを作成します。
gdcloud
gdcloud compute instances create VM_NAME \
--machine-type=MACHINE_TYPE \
--image=BOOT_DISK_IMAGE_NAME --image-project=vm-system \
--boot-disk-size=BOOT_DISK_SIZE \
--network-performance-tier=tier_1
次のように置き換えます。
| 変数 | 定義 |
|---|---|
VM_NAME |
新しい VM の名前。名前には英数字とダッシュのみを使用し、53 文字以下にする必要があります。 |
MACHINE_TYPE |
新しい VM の事前定義されたマシンタイプ。使用可能なマシンタイプを選択します。
gdcloud compute machine-types list
|
BOOT_DISK_IMAGE_NAME |
新しい VM ブートディスクに使用するイメージの名前。 |
BOOT_DISK_SIZE |
ブートディスクのサイズ(20GB など)。この値は、常にブートディスク イメージの minimumDiskSize 以上である必要があります。 |
API
kubectl --kubeconfig MANAGEMENT_API_SERVER \
apply -n PROJECT -f - <<EOF
apiVersion: virtualmachine.gdc.goog/v1
kind: VirtualMachineDisk
metadata:
name: VM_BOOT_DISK_NAME
spec:
source:
image:
name: BOOT_DISK_IMAGE_NAME
namespace: vm-system
size: BOOT_DISK_SIZE
---
apiVersion: virtualmachine.gdc.goog/v1
kind: VirtualMachine
metadata:
name: VM_NAME
spec:
compute:
virtualMachineType: MACHINE_TYPE
disks:
- virtualMachineDiskRef:
name: VM_BOOT_DISK_NAME
boot: true
autoDelete: BOOT_DISK_AUTO_DELETE
network:
networkPerformanceTier: Tier_1
EOF
次のように置き換えます。
| 変数 | 定義 |
|---|---|
MANAGEMENT_API_SERVER |
Management API サーバーの kubeconfig ファイル。 |
PROJECT |
VM を作成する Distributed Cloud プロジェクト。 |
VM_BOOT_DISK_NAME |
新しい VM ブートディスクの名前。 |
BOOT_DISK_IMAGE_NAME |
新しい VM ブートディスクに使用するイメージの名前。 |
BOOT_DISK_SIZE |
ブートディスクのサイズ(20Gi など)。この値は、常にブートディスク イメージの minimumDiskSize 以上である必要があります。 |
VM_NAME |
新しい VM の名前。名前には英数字とダッシュのみを使用し、53 文字以下にする必要があります。 |
MACHINE_TYPE |
新しい VM の事前定義されたマシンタイプ。使用可能なマシンタイプを選択します。
kubectl --kubeconfig MANAGEMENT_API_SERVER
get virtualmachineimage.virtualmachine.gdc.goog --namespace PROJECT
|
BOOT_DISK_AUTO_DELETE |
true または false。VM インスタンスが削除されたときにブートディスクが自動的に削除されるかどうかを示します。 |