將 vSphere 叢集新增至網域
本文說明如何使用 Compute Engine 裸機執行個體,將 vSphere 叢集新增至 Google Cloud VMware 解決方案中現有的 VMware Cloud Foundation (VCF) 9.1 網域。如需擴充運算和 vSAN 儲存空間容量,使其超出單一叢集、隔離工作負載,或在現有網域中套用獨立的 vSphere Lifecycle Manager (vLCM) 映像檔或 vSAN 儲存空間政策,請新增叢集。您可以將叢集新增至相同專案、虛擬私有雲 (VPC) 網路和可用區中的下列任一網域:
- 管理網域:新增由管理 vCenter Server 和 NSX Manager 管理的叢集。
- VI 工作負載網域:新增由工作負載網域 vCenter Server 及其 NSX Manager 執行個體管理的叢集。
架構摘要
將 vSphere 叢集新增至現有 VCF 網域時,部署作業會使用下列架構:
- 裸機 ESXi 主機:每個新的 ESXi 主機都是
z3-highmem-192-highlssd-metal裸機執行個體,連接至虛擬私有雲網路現有的第 2 層子網路 (ESXi 管理、vMotion、vSAN 和 NSX 通道端點 (TEP))。每個主機都會透過主要網路介面 (nic0) 和標記 VLAN 的動態網路介面連線。 - 不需額外管理設備:由於您將叢集新增至已管理目標網域的 vCenter Server 和 NSX Manager,因此不需部署新的管理設備。您也不必建立新的設備 Cloud DNS 記錄、後端服務、高可用性 (HA) 政策或轉送規則。而是將新主機新增至現有的可用區網路端點群組 (NEG)。
- IP 位址分配和對齊:VCF 會從網路集區分配 vMotion 和 vSAN IP 位址,NSX 則會從 NSX IP 位址集區分配 TEP (
vmk10) IP 位址。由於這兩個集區都不支援 VCF 9.1 中的每主機靜態指派,因此您在部署期間,將 Compute Engine Dynamic NIC 與 VCF 分配的 IP 位址對齊,同時保持所有 VCF 驗證啟用。
事前準備
建立叢集前,請先確認下列各節中的需求條件,並設定環境變數。
確認環境需求
確認環境符合下列需求:
- 權限:您在目標專案中具備必要的 Identity and Access Management (IAM) 角色,包括 Compute 管理員 (
roles/compute.admin)、DNS 管理員 (roles/dns.admin) 和 Secret Manager 密鑰存取者 (roles/secretmanager.secretAccessor)。 - Secret Manager 中的憑證:如果在初始部署後,您在 VCF 中變更或輪替 ESXi
root、SDDC Manager、vCenter Server 或 NSX Manager 密碼,Secret Manager 不會自動更新。執行本文件中的指令前,請先更新 Secret Manager 中的對應密鑰,或直接提供更新後的密碼,確保與有效的 VCF 憑證相符。 - 網域健康狀態:目標網域健康狀態良好 (vCenter Server、vSAN、NSX Manager、SDDC Manager 和 VCF Operations),且沒有失敗的工作。
- vSphere Lifecycle Manager (vLCM) 映像檔:VCF 映像檔庫中提供 vLCM 映像檔,或您打算從主機擷取映像檔。請使用現有叢集使用的相同映像檔,確保所有主機保持一致。
- 儲存裝置:每個新主機都有 NVMe 本機 SSD 裝置,沒有預先存在的分區,符合 vSAN 的要求。
- 節點數量下限:叢集至少需要三個裸機節點,這是 vSAN 容許一個故障 (
FTT=1) 的最低要求。 - 機型:叢集中的所有節點都使用相同的機型 (vSAN Express Storage Architecture (ESA) 為
z3-highmem-192-highlssd-metal)。 - 可用區:新叢集與現有管理和 NSX TEP 可用區 NEG 位於相同可用區。
- Jumpbox VM:您可以使用已安裝
gcloudCLI、curl和jq的 Jumpbox VM,並與虛擬私有雲網路建立網路連線 (例如在bm-gcp-demo子網路中)。 - 可信映像檔政策和 VPC Service Controls:如果貴組織強制執行
constraints/compute.trustedImageProjects組織政策,或使用 VPC Service Controls service perimeter,請確認專案允許存取smve-prod-public-images專案 (projects/999037279871) 的映像檔。詳情請參閱「管理節點容量」。 VLAN 網路:VMware 解決方案要求虛擬私有雲網路的子網路將「Resolve Subnet Mask」(解析子網路遮罩) 屬性設為「Broadcast primary range only with learning」(僅廣播主要範圍並學習),以支援 VLAN 網路。在Google Cloud 控制台支援中心提交支援單,並提供下列資訊:
- 產品:Google Cloud VMware Engine
- Priority:P2
- 類別:網路連線
- 業務影響:一般技術問題
- 提供更多詳細資料:
Allowlist L2 network connectivity for my project,以及專案 ID、專案編號,以及部署作業的目標區域和可用區
如要進一步瞭解 VLAN 網路支援,請參閱「第 2 層模擬:ARP 廣播和自訂 MAC 學習」。
查看範例環境參數
本文件中的指令使用下列範例參數:
| 輸入參數 | 範例值 | 說明 |
|---|---|---|
| 專案 ID | PROJECT_ID |
與目標網域相同的 Google Cloud 專案 |
| 區域和可用區 | us-east4/us-east4-b |
與現有可用區 NEG 位於相同可用區 |
| 客戶 ID | demo |
現有資源名稱中使用的 ID |
| 目標網域 | mgmt-domain (或 wld01) |
現有的管理網域或 VI 工作負載網域 |
| 叢集名稱 | cl02 |
新 vSphere 叢集的名稱 |
| 機型 | z3-highmem-192-highlssd-metal |
叢集內所有節點的同質機器類型 |
| 節點數 | 3 |
vSAN FTT=1 的節點數量下限 |
| 虛擬私有雲網路 | bm-demo |
現有的虛擬私有雲網路 |
| 子網路 (VLAN ID) | bm-mgmt-demo (未標記)、bm-vmotion-demo (2)、bm-vsan-demo (3)、bm-nsx-demo (4) |
現有第 2 層子網路 |
| 區域性 NEG | bm-mgmt-demo、bm-nsx-tep-demo |
現有的管理和 NSX TEP NEG |
| ESXi 映像檔 | 系列 astra-vcf-9-1-x,專案 smve-prod-offline-depot |
與現有叢集相同的 ESXi 映像檔版本 |
| DNS 網域和區域 | vmware.gve / dns-zone-demo,rev-dns-zone-demo |
現有的 Cloud DNS 正向和反向代管區域 |
| SDDC Manager | sddcm.vmware.gve (192.168.0.3) |
現有的 SDDC Manager 設備 |
ESXi root 密碼 |
esxi-root-password |
現有的 Secret Manager 密鑰,內含 ESXi root 密碼 |
規劃 IP 位址和主機名稱
下表顯示三個新 ESXi 主機的 IP 位址規劃範例:
| ESXi 主機 | 管理 IP (nic0) |
vMotion (VLAN 2) | vSAN (VLAN 3) | NSX TEP (VLAN 4) |
|---|---|---|---|---|
esxi-h7 |
192.168.0.161 |
192.168.2.21 |
192.168.3.21 |
192.168.4.21 |
esxi-h8 |
192.168.0.162 |
192.168.2.22 |
192.168.3.22 |
192.168.4.22 |
esxi-h9 |
192.168.0.163 |
192.168.2.23 |
192.168.3.23 |
192.168.4.23 |
選擇目標網域
您選取的目標網域會決定由哪個 vCenter Server、NSX Manager 和疊加傳輸可用區管理新叢集:
| 參數或資源 | 管理網域中的叢集 | VI 工作負載網域中的叢集 |
|---|---|---|
TARGET_DOMAIN變數 |
mgmt-domain |
wld01 |
| 管理 vCenter Server | vc01.vmware.gve |
vc02.vmware.gve |
NSX_MANAGER變數 |
nsx01.vmware.gve (管理 NSX) |
nsx05.vmware.gve (專用 NSX) 或 nsx01.vmware.gve (共用管理 NSX) |
TRANSPORT_ZONE變數 |
overlay-tz-mgmt-nsxt |
工作負載網域 NSX 執行個體的疊加傳輸可用區 |
驗證區域配額
佈建裸機節點或建立叢集前,請確認專案有足夠的區域和全域 Compute Engine 配額。請先將該區域中所有現有叢集的資源加到下列增量值,再與專案配額進行比較:
| 配額指標 | 每個裸機節點所需的資源 | 3 節點叢集所需的資源 |
|---|---|---|
Z3 專用的「compute.googleapis.com/cpus_per_vm_family」 |
192 個 vCPU | 3 × 192 = 576 個 vCPU |
Z3 專用的「compute.googleapis.com/local_ssd_total_storage_per_vm_family」 |
72 TB | 3 × 72 TB = 216 TB |
compute.googleapis.com/hyperdisk_balanced_total_storage |
128 GB | 3 × 128 GB = 384 GB |
compute.googleapis.com/resource_policies |
將節點新增至現有叢集時,則為 0 | 每個叢集 1 項分散配置政策 |
compute.googleapis.com/regional_backend_services_protocol_forwarding_fast_ha |
新增節點或叢集時,如未新增設備,則為 0 | 每個新的 VCF 管理設備 VIP 或 NSX Edge 端點需要 1 個 |
如需必要配額的完整清單,以及如何查看或要求提高配額的操作說明,請參閱「配額與限制」。
設定環境變數
在跳板機殼層中設定下列環境變數,以便在本指南的指令中使用:
export PROJECT_ID="PROJECT_ID"
export REGION="us-east4"
export ZONE="us-east4-b"
export CUSTOMER_ID="demo"
export VPC_NETWORK="bm-${CUSTOMER_ID}"
export DOMAIN="vmware.gve"
export DNS_ZONE="dns-zone-${CUSTOMER_ID}"
export REV_DNS_ZONE="rev-dns-zone-${CUSTOMER_ID}"
export MGMT_SUBNET="bm-mgmt-${CUSTOMER_ID}"
export VMOTION_SUBNET="bm-vmotion-${CUSTOMER_ID}"
export VSAN_SUBNET="bm-vsan-${CUSTOMER_ID}"
export TEP_SUBNET="bm-nsx-${CUSTOMER_ID}"
export MGMT_NEG="bm-mgmt-${CUSTOMER_ID}"
export TEP_NEG="bm-nsx-tep-${CUSTOMER_ID}"
export CLUSTER_NAME="cl02"
export PLACEMENT_POLICY="bm-${CLUSTER_NAME}"
export NETWORK_POOL_NAME="${CLUSTER_NAME}-np01"
export TEP_POOL_NAME="${CLUSTER_NAME}-tep-pool"
export VDS_NAME="${CLUSTER_NAME}-vds-01"
export MACHINE_TYPE="z3-highmem-192-highlssd-metal"
export ESXI_IMAGE_FAMILY="astra-vcf-9-1-x"
export ESXI_IMAGE_PROJECT="smve-prod-offline-depot"
export SDDC_MANAGER="sddcm.vmware.gve" # 192.168.0.3
export VCF_USER="admin@local"
export VCF_PASSWORD="VCF_ADMIN_PASSWORD"
export ESXI_PASSWORD_SECRET="esxi-root-password" # Secret Manager secret holding the ESXi root password
export MTU=8896 # VPC MTU
# Target domain parameters
export TARGET_DOMAIN="mgmt-domain" # Or wld01
export NSX_MANAGER="nsx01.vmware.gve" # Or nsx05.vmware.gve for wld01 with a dedicated NSX instance
export TRANSPORT_ZONE="overlay-tz-mgmt-nsxt" # Overlay transport zone of the target NSX instance
# Ordered host list: name mgmt_ip vmotion_ip vsan_ip tep_ip
CLUSTER_HOSTS=(
"esxi-h7 192.168.0.161 192.168.2.21 192.168.3.21 192.168.4.21"
"esxi-h8 192.168.0.162 192.168.2.22 192.168.3.22 192.168.4.22"
"esxi-h9 192.168.0.163 192.168.2.23 192.168.3.23 192.168.4.23"
)
# TEP pool range matching the new hosts' Compute Engine TEP NIC IPs
export TEP_CIDR="192.168.4.0/24"
export TEP_GATEWAY="192.168.4.1"
export TEP_START="192.168.4.21"
export TEP_END="192.168.4.23"
執行指令前,請先替換下列項目:
PROJECT_ID:目標 Google Cloud專案的 ID。VCF_ADMIN_PASSWORD:SDDC Manager 管理員密碼。
確認現有的轉送規則或執行個體,並未使用您預計採用的 IP 位址:
gcloud compute forwarding-rules list --project="${PROJECT_ID}" --regions="${REGION}" \
--format="table(name,IPAddress,subnetwork.basename())"
gcloud compute instances list --project="${PROJECT_ID}" --zones="${ZONE}" \
--format="table(name,networkInterfaces[].networkIP.list())"
建立 DNS 記錄
部署管理網域時,您已建立第 2 層子網路、Cloud DNS 傳入轉送政策,以及正向和反向代管區域。由於新增叢集不會部署新的設備,因此您只需要為新的 ESXi 主機建立正向 (A) 和反向 (PTR) 記錄:
add_dns() {
local name=$1 ip=$2
gcloud dns record-sets create "${name}.${DOMAIN}." \
--rrdatas="${ip}" --type=A --ttl=300 \
--zone="${DNS_ZONE}" --project="${PROJECT_ID}"
local rev
rev=$(echo "${ip}" | awk -F. '{print $4"."$3"."$2"."$1".in-addr.arpa."}')
gcloud dns record-sets create "${rev}" \
--rrdatas="${name}.${DOMAIN}." --type=PTR --ttl=300 \
--zone="${REV_DNS_ZONE}" --project="${PROJECT_ID}"
}
for entry in "${CLUSTER_HOSTS[@]}"; do
read -r HOST MGMT_IP _ <<< "${entry}"
add_dns "${HOST}" "${MGMT_IP}"
done
# Verify DNS records
gcloud dns record-sets list --zone="${DNS_ZONE}" --project="${PROJECT_ID}" \
--filter="name~'esxi-h[7-9]'"
建立裸機執行個體
為新叢集建立專屬配置政策。接著,您可以使用主要管理介面 (nic0) 和 VLAN 標記的 Dynamic NIC,為 vMotion (VLAN 2)、vSAN (VLAN 3) 和 NSX TEP (VLAN 4) 建立各個裸機 ESXi 主機。
建立配置政策
建立群組配置政策:
gcloud compute resource-policies create group-placement "${PLACEMENT_POLICY}" \
--region="${REGION}" \
--availability-domain-count=6 \
--collocation=COLLOCATED \
--project="${PROJECT_ID}"
建立開機磁碟和裸機 ESXi 執行個體
為叢集中的每部主機建立 Google Cloud Hyperdisk Balanced 開機磁碟和裸機 ESXi 執行個體:
i=0
for entry in "${CLUSTER_HOSTS[@]}"; do
read -r HOST MGMT_IP VMOTION_IP VSAN_IP TEP_IP <<< "${entry}"
AD=$(( (i % 6) + 1 )); i=$((i + 1))
# Create boot disk
gcloud compute disks create "${HOST}" \
--image-project="${ESXI_IMAGE_PROJECT}" \
--image-family="${ESXI_IMAGE_FAMILY}" \
--type=hyperdisk-balanced --interface=NVME --size=128GB \
--guest-os-features=IDPF \
--zone="${ZONE}" --project="${PROJECT_ID}"
# Create bare-metal ESXi host
gcloud compute instances create "${HOST}" \
--zone="${ZONE}" \
--machine-type="${MACHINE_TYPE}" \
--can-ip-forward \
--resource-policies="${PLACEMENT_POLICY}" \
--availability-domain="${AD}" \
--hostname="${HOST}.${DOMAIN}" \
--disk="name=${HOST},boot=yes,auto-delete=yes" \
--labels=gcve-node=true \
--tags=mm-gcve-node \
--deletion-protection \
--maintenance-policy=TERMINATE \
--restart-on-failure \
--network-performance-configs=total-egress-bandwidth-tier=TIER_1 \
--project="${PROJECT_ID}" \
--network-interface="network-tier=PREMIUM,stack-type=IPV4_ONLY,subnet=${MGMT_SUBNET},no-address,private-network-ip=${MGMT_IP}" \
--network-interface="network-tier=PREMIUM,stack-type=IPV4_ONLY,subnet=${VMOTION_SUBNET},no-address,private-network-ip=${VMOTION_IP},vlan=2" \
--network-interface="network-tier=PREMIUM,stack-type=IPV4_ONLY,subnet=${VSAN_SUBNET},no-address,private-network-ip=${VSAN_IP},vlan=3" \
--network-interface="network-tier=PREMIUM,stack-type=IPV4_ONLY,subnet=${TEP_SUBNET},no-address,private-network-ip=${TEP_IP},vlan=4"
done
# Verify instance creation and network interfaces
gcloud compute instances list --project="${PROJECT_ID}" --zones="${ZONE}" \
--filter="name~'esxi-h[7-9]'" \
--format="table(name,status,networkInterfaces[].vlan.list(),networkInterfaces[].networkIP.list())"
更新 NEG 成員
可用區中的所有節點都必須屬於子網路的同一個可用區 NEG,VCF 網路設備才能在叢集節點之間轉送流量。將新主機新增至現有的管理 NEG 和 NSX TEP NEG:
# List the NEGs in the zone (management and NSX TEP)
gcloud compute network-endpoint-groups list --zones="${ZONE}" --project="${PROJECT_ID}" \
--format="table(name,subnetwork.basename(),networkEndpointType,size)"
ALL_NEGS=("${MGMT_NEG}" "${TEP_NEG}")
for entry in "${CLUSTER_HOSTS[@]}"; do
read -r HOST _ <<< "${entry}"
for NEG in "${ALL_NEGS[@]}"; do
gcloud compute network-endpoint-groups update "${NEG}" \
--zone="${ZONE}" \
--add-endpoint="instance=${HOST}" \
--project="${PROJECT_ID}"
done
done
# Verify NEG endpoints
for NEG in "${ALL_NEGS[@]}"; do
gcloud compute network-endpoint-groups list-network-endpoints "${NEG}" \
--zone="${ZONE}" --project="${PROJECT_ID}" \
--format="table(networkEndpoint.instance,networkEndpoint.ipAddress)"
done
重設 ESXi 根密碼
為了安全起見和主機委任,請將每部新主機的 root 密碼重設為儲存在 Secret Manager 中的 ESXi root 密碼。在後續步驟中,您會使用相同的密鑰來委託主機。請確認密碼符合 VCF 複雜度規定 (至少 15 個字元,包括大寫字母、小寫字母、數字和特殊字元)。如果您在初始部署後變更或輪替 ESXi root 或 VCF 密碼,請先在 Secret Manager 中更新對應的密鑰,再執行這些指令。
如要重設每部新主機的 root 密碼,請從跳躍箱 VM 執行下列指令,並在系統提示時輸入初始 ESXi root 密碼:
# 1. Read the ESXi root password from Secret Manager
ESXI_ROOT_PASSWORD=$(gcloud secrets versions access latest \
--secret="${ESXI_PASSWORD_SECRET}" --project="${PROJECT_ID}")
# 2. Reset the root password on each new host
for entry in "${CLUSTER_HOSTS[@]}"; do
read -r HOST _ <<< "${entry}"
ssh -o StrictHostKeyChecking=no "root@${HOST}.${DOMAIN}" \
"esxcli system account set -i root -p '${ESXI_ROOT_PASSWORD}' -c '${ESXI_ROOT_PASSWORD}'"
done
# 3. Optional: Verify that the FQDN is set and vmk0 is configured as STATIC
ssh "root@esxi-h7.${DOMAIN}" \
'esxcli system hostname get; esxcli network ip interface ipv4 get -i vmk0'
建立專屬網路集區
VCF 會從您在委任主機時選取的網路集區中,分配 vMotion 和 vSAN IP 位址。由於現有叢集的網路集區僅包含其主機 IP 位址,因此請建立專用網路集區,其 IP 範圍包含您預先指派給新主機 Compute Engine Dynamic NIC 的確切 vMotion 和 vSAN IP 位址。使用專屬網路集區,可將 VCF IP 分配範圍限制在預先指派的 Compute Engine IP 位址組合內,因此日後如果發生不相符的情況,您只需要調整主機與 IP 的對應順序。
您可以使用 VCF Operations 或 SDDC Manager API 建立網路集區:
VCF Operations
在「VCF Operations」中,前往「Network pool management」(網路集區管理),按一下「Create network pool」(建立網路集區),然後使用 vMotion (VLAN 2、192.168.2.21–192.168.2.23) 和 vSAN (VLAN 3、192.168.3.21–192.168.3.23) 網路設定和 8896 位元組的 MTU 建立 cl02-np01 網路集區。
SDDC Manager API
執行下列指令,建立網路集區並擷取其 ID:
TOKEN=$(curl -s -X POST "https://${SDDC_MANAGER}/v1/tokens" \
-H "Content-Type: application/json" \
-d "{\"username\":\"${VCF_USER}\",\"password\":\"${VCF_PASSWORD}\"}" | jq -r '.accessToken')
curl -s -X POST "https://${SDDC_MANAGER}/v1/network-pools" \
-H "Authorization: Bearer ${TOKEN}" -H "Content-Type: application/json" \
-d "{
\"name\": \"${NETWORK_POOL_NAME}\",
\"networks\": [
{ \"type\": \"VMOTION\", \"vlanId\": 2, \"mtu\": ${MTU},
\"subnet\": \"192.168.2.0\", \"mask\": \"255.255.255.0\", \"gateway\": \"192.168.2.1\",
\"ipPools\": [ { \"start\": \"192.168.2.21\", \"end\": \"192.168.2.23\" } ] },
{ \"type\": \"VSAN\", \"vlanId\": 3, \"mtu\": ${MTU},
\"subnet\": \"192.168.3.0\", \"mask\": \"255.255.255.0\", \"gateway\": \"192.168.3.1\",
\"ipPools\": [ { \"start\": \"192.168.3.21\", \"end\": \"192.168.3.23\" } ] }
]
}"
# Retrieve the network pool ID for host commissioning
POOL_ID=$(curl -s "https://${SDDC_MANAGER}/v1/network-pools" -H "Authorization: Bearer ${TOKEN}" \
| jq -r --arg n "${NETWORK_POOL_NAME}" '.elements[] | select(.name==$n) | .id')
echo "${POOL_ID}"
委託主機
使用 VCF Operations 或 SDDC Manager API,將新的 ESXi 主機委託至 SDDC Manager 清單:
VCF Operations
- 在「VCF Operations」中,依序前往「Inventory」 >「Hosts」 >「Commission Hosts」。
- 選取
cl02-np01網路集區,然後選取「vSAN ESA」儲存空間類型。 - 輸入主機 FQDN (
esxi-h7.vmware.gve、esxi-h8.vmware.gve和esxi-h9.vmware.gve) 和root憑證。 - 接受 SSL 指紋、驗證主機,然後按一下「Commission」(委任)。
SDDC Manager API
執行下列指令,驗證並委託主機,然後輪詢工作 ID,直到傳回 Successful 為止:
ESXI_PASSWORD=$(gcloud secrets versions access latest \
--secret="${ESXI_PASSWORD_SECRET}" --project="${PROJECT_ID}")
HOST_FQDNS=$(for entry in "${CLUSTER_HOSTS[@]}"; do
read -r HOST _ <<< "${entry}"; echo "${HOST}.${DOMAIN}"
done | jq -R . | jq -s .)
HOSTS_JSON=$(jq -n --argjson f "${HOST_FQDNS}" --arg p "${ESXI_PASSWORD}" \
--arg np "${POOL_ID}" --arg npn "${NETWORK_POOL_NAME}" \
'$f | map({fqdn: ., username: "root", password: $p, storageType: "VSAN_ESA",
networkPoolId: $np, networkPoolName: $npn})')
# 1. Validate hosts
curl -s -X POST "https://${SDDC_MANAGER}/v1/hosts/validations" \
-H "Authorization: Bearer ${TOKEN}" -H "Content-Type: application/json" -d "${HOSTS_JSON}"
# 2. Commission hosts
TASK_ID=$(curl -s -X POST "https://${SDDC_MANAGER}/v1/hosts" \
-H "Authorization: Bearer ${TOKEN}" -H "Content-Type: application/json" \
-d "${HOSTS_JSON}" | jq -r '.id')
# 3. Poll task status until Successful
curl -s "https://${SDDC_MANAGER}/v1/tasks/${TASK_ID}" -H "Authorization: Bearer ${TOKEN}" | jq -r '.status'
如果主機 SSL 指紋顯示內部 (非 FQDN) 憑證名稱,表示主機未設定 DNS 搜尋網域。在受影響的 ESXi 主機上,執行 esxcli network ip dns search add -d vmware.gve 指令,重新執行 /var/lib/vmware/osdata/init.sh 指令碼,然後執行 /sbin/generate-certificates 指令,並重新啟動 rhttpproxy 和 hostd 服務 (/etc/init.d/rhttpproxy restart && /etc/init.d/hostd restart)。
檢查部署前的 IP 調整
在 SDDC Manager 中,請一律啟用所有 vSAN、vMotion 和網路連線驗證。只有在 VCF 指派給各主機的 vmk1 (vMotion) 和 vmk2 (vSAN) IP 位址,與該主機的 Compute Engine Dynamic NIC IP 位址相符時,這些驗證檢查才會通過。如果 SDDC Manager 指派集區 IP 位址的主機順序不同,導致不相符,叢集建立工作會在連線檢查時暫停。接著,您必須在後續步驟中調整 Dynamic NIC,然後再重試工作。
確認網路集區範圍與 Compute Engine vMotion 和 vSAN NIC IP 位址相符:確認網路集區僅包含您預先指派給新主機 Dynamic NIC 的 IP 位址 (在本例中為
192.168.2.21–192.168.2.23和192.168.3.21–192.168.3.23):# Inspect network pool definition curl -s "https://${SDDC_MANAGER}/v1/network-pools/${POOL_ID}" \ -H "Authorization: Bearer ${TOKEN}" | jq '.networks[] | {type, vlanId, mtu, ipPools}' # Inspect Compute Engine dynamic NIC IPs per new host (VLAN 2 = vMotion, 3 = vSAN, 4 = TEP) for entry in "${CLUSTER_HOSTS[@]}"; do read -r HOST _ <<< "${entry}" echo "== ${HOST}" gcloud compute instances describe "${HOST}" --zone="${ZONE}" --project="${PROJECT_ID}" \ --format="table(networkInterfaces[].name,networkInterfaces[].vlan,networkInterfaces[].networkIP)" done依主機名稱遞增順序指派 IP 位址:依主機名稱遞增順序 (
esxi-h7→.21、esxi-h8→.22、esxi-h9→.23) 預先指派 Compute Engine IP 位址,讓兩端的 IP 位址組合相同。確認 SDDC Manager 不會略過驗證:在 SDDC Manager 設備上 (以
root身分),確認application.properties檔案不含任何validation.disable.*屬性:# Must return no output. If any validation.disable.* line is present, remove it # and run: systemctl restart domainmanager grep -n 'validation.disable' /etc/vmware/vcf/domainmanager/application.properties
如果使用 SDDC Manager API 新增叢集,請勿在要求主體中設定
"skipValidations": true屬性。調整 NSX TEP 集區大小,以符合 Compute Engine TEP NIC IP 位址:為叢集設定新的靜態 NSX TEP IP 位址集區,範圍為
192.168.4.21–192.168.4.23(從TEP_START變數到TEP_END變數),與新主機的 VLAN 4 Dynamic NIC IP 位址相符,並將閘道設為192.168.4.1。
新增叢集
您可以使用 VCF Operations 或 SDDC Manager API,將叢集新增至目標網域:
VCF Operations
登入 VCF Operations,前往「Inventory」(庫存),展開「VCF Instances」(VCF 執行個體),選取目標網域 (mgmt-domain 或 wld01),然後按一下「Add cluster」(新增叢集) (或在 SDDC Manager UI 中,依序前往「Workload Domains」(工作負載網域) >「target domain」(目標網域) >「Actions」(動作) >「Add Cluster」(新增叢集))。使用下列設定完成精靈:
| 精靈頁面 | 欄位 | 值 |
|---|---|---|
| 儲存空間 | 類型 | vSAN、啟用 vSAN ESA、vSAN HCI、關閉傳輸中資料加密 |
| 叢集 | 叢集名稱 | cl02 |
| 圖片 | vLCM 映像檔 | 選取現有叢集使用的映像檔,或選取「Extract an image from a host in this VCF instance」(從這個 VCF 執行個體中的主機擷取映像檔) (使用 esxi-h7) |
| 主機 | 主機 | esxi-h7、esxi-h8、esxi-h9 (以 vSAN ESA 形式委託,使用 cl02-np01 網路集區) |
| vSphere Distributed Switch | 設定檔 | 預設 (單一 VDS) 或自訂:1 個上行 (uplink1 → vmnic0)、MTU 8896、流量類型 ESX 管理、VM 管理、vMotion、vSAN 和 NSX |
| NSX 切換模式 | 虛擬交換器運作模式 | 清除「Apply the default virtual switch mode configured in NSX Manager」,並將「Operational Mode」設為「Standard」。VMware 解決方案主機不支援預設模式 (Enhanced Datapath Standard)。 |
| NSX 主機重疊 | TEP VLAN 和 IP 指派 | VLAN 4 (與現有 NSX 設定相符)、靜態 IP 集區 (不使用 DHCP):新集區 cl02-tep-pool、CIDR 192.168.4.0/24、範圍 192.168.4.21–192.168.4.23、閘道 192.168.4.1 |
| 查看 | 提交 | 按一下「完成」。依序前往「Fleet Management」 >「Tasks」,監控工作並記錄工作 ID (TASK_ID)。 |
SDDC Manager API
擷取目標網域 ID、vLCM 映像檔個性 ID 和委任主機 ID,然後驗證並提交建立叢集的規格:
# 1. Retrieve target domain ID, vLCM image personality ID, and host specs
DOMAIN_ID=$(curl -s "https://${SDDC_MANAGER}/v1/domains" -H "Authorization: Bearer ${TOKEN}" \
| jq -r --arg d "${TARGET_DOMAIN}" '.elements[] | select(.name==$d) | .id')
curl -s "https://${SDDC_MANAGER}/v1/personalities" -H "Authorization: Bearer ${TOKEN}" \
| jq -r '.elements[] | [.personalityId, .personalityName] | @tsv'
IMAGE_ID="PERSONALITY_ID" # Select the personalityId of the existing clusters' image
HOST_SPECS=$(curl -s "https://${SDDC_MANAGER}/v1/hosts" -H "Authorization: Bearer ${TOKEN}" \
| jq --argjson f "${HOST_FQDNS}" --arg vds "${VDS_NAME}" '
[.elements[] | select(.fqdn as $x | $f | index($x))
| {id, hostNetworkSpec: {vmNics: [{id: "vmnic0", uplink: "uplink1", vdsName: $vds}]}}]')
echo "${HOST_SPECS}" | jq 'length' # Must equal 3
# 2. Construct the cluster specification (without skipValidations)
CLUSTER_SPEC=$(jq -n \
--arg domain "${DOMAIN_ID}" --arg name "${CLUSTER_NAME}" --arg img "${IMAGE_ID}" \
--argjson hosts "${HOST_SPECS}" --arg vds "${VDS_NAME}" --argjson mtu "${MTU}" \
--arg tz "${TRANSPORT_ZONE}" --arg pool "${TEP_POOL_NAME}" \
--arg cidr "${TEP_CIDR}" --arg gw "${TEP_GATEWAY}" --arg s "${TEP_START}" --arg e "${TEP_END}" '
{
domainId: $domain,
computeSpec: { clusterSpecs: [{
name: $name,
clusterImageId: $img,
hostSpecs: $hosts,
datastoreSpec: { vsanDatastoreSpec: { datastoreName: ($name + "-vsan"), esaConfig: { enabled: true } } },
networkSpec: {
vdsSpecs: [{
name: $vds, mtu: $mtu,
portGroupSpecs: [
{ name: ($vds + "-pg-mgmt"), transportType: "MANAGEMENT", activeUplinks: ["uplink1"], teamingPolicy: "loadbalance_loadbased" },
{ name: ($vds + "-pg-vmotion"), transportType: "VMOTION", activeUplinks: ["uplink1"], teamingPolicy: "loadbalance_loadbased" },
{ name: ($vds + "-pg-vsan"), transportType: "VSAN", activeUplinks: ["uplink1"], teamingPolicy: "loadbalance_loadbased" }
],
nsxtSwitchConfig: {
transportZones: [ { name: $tz, transportType: "OVERLAY" } ],
hostSwitchOperationalMode: "STANDARD"
}
}],
nsxClusterSpec: { nsxTClusterSpec: {
uplinkProfiles: [{ name: ($name + "-uplink-profile"),
teamings: [ { policy: "LOADBALANCE_SRCID", activeUplinks: ["uplink-1"] } ],
transportVlan: 4 }],
ipAddressPoolsSpec: [{ name: $pool,
subnets: [{ cidr: $cidr, gateway: $gw, ipAddressPoolRanges: [ { start: $s, end: $e } ] }] }]
}},
networkProfiles: [{
name: ($name + "-network-profile"), isDefault: true,
nsxtHostSwitchConfigs: [{
vdsName: $vds, uplinkProfileName: ($name + "-uplink-profile"), ipAddressPoolName: $pool,
vdsUplinkToNsxUplink: [ { vdsUplinkName: "uplink1", nsxUplinkName: "uplink-1" } ]
}]
}]
}
}]}
}')
# 3. Validate the cluster specification
curl -s -X POST "https://${SDDC_MANAGER}/v1/clusters/validations" \
-H "Authorization: Bearer ${TOKEN}" -H "Content-Type: application/json" \
-d "${CLUSTER_SPEC}" | jq '{executionStatus, resultStatus}'
# 4. Create the cluster and poll the task
TASK_ID=$(curl -s -X POST "https://${SDDC_MANAGER}/v1/clusters" \
-H "Authorization: Bearer ${TOKEN}" -H "Content-Type: application/json" \
-d "${CLUSTER_SPEC}" | jq -r '.id')
curl -s "https://${SDDC_MANAGER}/v1/tasks/${TASK_ID}" -H "Authorization: Bearer ${TOKEN}" | jq -r '.status'
執行指令前,請將 PERSONALITY_ID 替換為叢集 vLCM 映像檔的 personalityId 值。
如果 VCF 指派給主機的 vMotion 或 vSAN IP 位址與 Compute Engine Dynamic NIC 不同,工作會在 vSAN 和 vMotion 連線能力的驗證步驟停止。請將工作維持在失敗狀態,完成「調整 vMotion 和 vSAN 動態 NIC」中的步驟,然後重試工作。請勿取消工作或停用驗證檢查。
調整 vMotion 和 vSAN 動態 NIC
如果叢集建立工作在 vSAN 和 vMotion 連線能力的驗證步驟停止,請套用本節中的步驟。如果工作通過該步驟,請僅執行步驟 1 和 2 來確認 IP 對齊,然後繼續執行「對齊 NSX TEP Dynamic NIC」。
讀取 VCF 分配的 IP 位址:查詢 SDDC Manager
/v1/hosts端點 (或 SDDC Managerplatform資料庫),查看 VCF 分配給各主機的 vMotion (vmk1) 和 vSAN (vmk2) IP 位址:curl -s "https://${SDDC_MANAGER}/v1/hosts" -H "Authorization: Bearer ${TOKEN}" | jq -r ' ["FQDN","STATUS","CLUSTER","MGMT_IP","VMOTION_IP","VSAN_IP"], (.elements | sort_by(.fqdn)[] | [ .fqdn, (.status // "-"), (.cluster.name // .cluster.id // "-"), (([.ipAddresses[]? | select(.type=="MANAGEMENT") | .ipAddress] | first) // "-"), (([.ipAddresses[]? | select(.type=="VMOTION") | .ipAddress] | first) // "-"), (([.ipAddresses[]? | select(.type=="VSAN") | .ipAddress] | first) // "-") ]) | @tsv' | column -t # Alternative (run on the SDDC Manager appliance shell): # psql -h localhost -U postgres -d platform \ # -c "select hostname, vmotion_ip_address, vsan_ip_address from host;"與 Compute Engine Dynamic NIC 比較:列出每個新主機目前的 Dynamic NIC IP 位址:
for entry in "${CLUSTER_HOSTS[@]}"; do read -r HOST _ <<< "${entry}" echo "== ${HOST}" gcloud compute instances describe "${HOST}" --zone="${ZONE}" --project="${PROJECT_ID}" \ --format="table(networkInterfaces[].name,networkInterfaces[].vlan,networkInterfaces[].networkIP)" done先刪除所有不相符的 Dynamic NIC,然後重新新增:先刪除所有不相符主機上不相符的 Dynamic NIC (vMotion 的
nic0.2介面和 vSAN 的nic0.3介面),再重新新增任何介面。否則,兩個主機之間交換的 IP 位址會失敗,並顯示IP_IN_USE錯誤:# Example: VCF assigned esxi-h7 vMotion 192.168.2.22 and vSAN 192.168.3.22 HOST="esxi-h7" VCF_VMOTION_IP="192.168.2.22" VCF_VSAN_IP="192.168.3.22" # 3a. Delete mismatched NICs (run on all mismatched hosts before running 3b) gcloud compute instances network-interfaces delete "${HOST}" \ --network-interface=nic0.2 \ --zone="${ZONE}" --project="${PROJECT_ID}" --quiet gcloud compute instances network-interfaces delete "${HOST}" \ --network-interface=nic0.3 \ --zone="${ZONE}" --project="${PROJECT_ID}" --quiet # 3b. Re-add the dynamic NICs with the VCF-allocated IP addresses # vMotion (VLAN 2) gcloud compute instances network-interfaces add "${HOST}" \ --parent-nic-name=nic0 --vlan=2 \ --network="${VPC_NETWORK}" --subnetwork="${VMOTION_SUBNET}" \ --private-network-ip="${VCF_VMOTION_IP}" --no-address \ --zone="${ZONE}" --project="${PROJECT_ID}" # vSAN (VLAN 3) gcloud compute instances network-interfaces add "${HOST}" \ --parent-nic-name=nic0 --vlan=3 \ --network="${VPC_NETWORK}" --subnetwork="${VSAN_SUBNET}" \ --private-network-ip="${VCF_VSAN_IP}" --no-address \ --zone="${ZONE}" --project="${PROJECT_ID}"重試失敗的叢集工作:在「VCF Operations」中,依序前往「Fleet Management」 >「Tasks」重試工作,或執行下列 SDDC Manager API 指令:
curl -s -X PATCH "https://${SDDC_MANAGER}/v1/tasks/${TASK_ID}" \ -H "Authorization: Bearer ${TOKEN}" -H "Content-Type: application/json" \ -d '{"status": "RETRY"}'重試的工作會再次執行 vSAN 和 vMotion 的連線檢查,並在所有 Compute Engine 動態 NIC 與 VCF 指派的 IP 位址相符後成功完成。
調整 NSX TEP Dynamic NIC
NSX 將主機設為傳輸節點後,請驗證並調整新主機上的 VLAN 4 NSX TEP (vmk10) Dynamic NIC。
擷取 NSX 分配的 TEP IP 位址:查詢目標網域 (
NSX_MANAGER) 的 NSX Manager,或在每個 ESXi 主機上執行esxcli network ip interface ipv4 get -i vmk10指令:NSX_PW="NSX_ADMIN_PASSWORD" # Map transport node ID to hostname curl -s -u "admin:${NSX_PW}" "https://${NSX_MANAGER}/api/v1/transport-nodes" \ | jq -r '.results[] | [.id, .display_name] | @tsv' # Map transport node ID to TEP device and IP address curl -s -u "admin:${NSX_PW}" "https://${NSX_MANAGER}/api/v1/transport-nodes/state" \ | jq -r '.results[] | [.transport_node_id, .state, ([.host_switch_states[]?.endpoints[]? | .device_name + "=" + .ip] | join(","))] | @tsv'執行指令前,請將
NSX_ADMIN_PASSWORD替換為 NSX Manageradmin密碼 (可從 SDDC Manager/v1/credentials端點或 VCF Operations 密碼管理取得)。與 Compute Engine TEP NIC (VLAN 4) 比較:將 NSX 指派的
vmk10IP 位址,與新主機 (esxi-h7、esxi-h8和esxi-h9) 的 VLAN 4 Dynamic NIC IP 位址進行比較。只有新主機在範圍內,請勿修改其他叢集中主機的 TEP NIC。重新建立不相符的 TEP NIC:針對所有不相符的新主機,請先將各主機與 TEP NEG 中斷連結,並刪除所有不相符主機的
nic0.4介面。接著,您重新新增nic0.4介面,並將主機重新附加至 TEP NEG:# Example: Compute Engine has 192.168.4.21 on esxi-h7, but NSX assigned 192.168.4.23 HOST="esxi-h7" CURRENT_TEP_IP="192.168.4.21" NSX_TEP_IP="192.168.4.23" # 3a. Detach the host from the TEP NEG gcloud compute network-endpoint-groups update "${TEP_NEG}" \ --zone="${ZONE}" --project="${PROJECT_ID}" \ --remove-endpoint="instance=${HOST},ip=${CURRENT_TEP_IP}" # 3b. Delete the mismatched TEP NIC (nic0.4) on all mismatched hosts first gcloud compute instances network-interfaces delete "${HOST}" \ --network-interface=nic0.4 \ --zone="${ZONE}" --project="${PROJECT_ID}" --quiet # 3c. Re-add nic0.4 with the NSX-allocated IP address gcloud compute instances network-interfaces add "${HOST}" \ --parent-nic-name=nic0 --vlan=4 \ --network="${VPC_NETWORK}" --subnetwork="${TEP_SUBNET}" \ --private-network-ip="${NSX_TEP_IP}" --no-address \ --zone="${ZONE}" --project="${PROJECT_ID}" # 3d. Re-attach the host to the TEP NEG gcloud compute network-endpoint-groups update "${TEP_NEG}" \ --zone="${ZONE}" --project="${PROJECT_ID}" \ --add-endpoint="instance=${HOST}"
驗證叢集部署
叢集建立工作完成,且您已對齊所有 Dynamic NIC 後,請確認下列事項:
- vCenter Server (
vc01或vc02):cl02叢集和所有三個主機都已連線且運作正常,沒有網路警報。 - vSAN:在
cl02叢集,依序前往「Monitor」(監控) >「vSAN」 >「Skyline Health」,確認所有健康狀態檢查均通過,且 vSAN 資料儲存庫顯示所有三個主機的合併容量。 - NSX Manager:依序前往「System」(系統) >「Fabric」(網狀架構) >「Hosts」(主機),確認每部新主機都顯示「Success」(成功) 和「Up」(運作中),且所有疊加通道都已啟動。
- VCF 作業:目標網域中的叢集狀態為「Active」(有效),且工作清單中沒有失敗的工作。
- 現有叢集:網域中的所有其他叢集都維持健康狀態。
- 選用:使用 vMotion 在現有叢集和
cl02叢集之間,以及cl02叢集內的主機之間遷移測試 VM。
從 ESXi 主機殼層 (例如 esxi-h7),驗證 vMotion、vSAN 和 NSX TEP 介面的巨型框架連線 (8896 MTU 減去 28 位元組 IP/ICMP 標頭 = 8868 位元組):
esxcli network ip interface ipv4 get # Verify vmk0, vmk1, vmk2, and vmk10 IPs vmkping -S vmotion -I vmk1 -d -s 8868 192.168.2.22 # vMotion vmkping -I vmk2 -d -s 8868 192.168.3.22 # vSAN vmkping ++netstack=vxlan -I vmk10 -d -s 8868 192.168.4.22 # NSX TEP
選用:設定 vSAN 容錯數量
如果是 vSAN ESA,VCF 會根據叢集類型和主機數量,建立並指派預設資料儲存庫儲存空間政策。如要明確設定 FTT,請選擇叢集主機數量支援的政策:
| 可容許的故障數 | 資料放置配置 | 主機數量下限 |
|---|---|---|
FTT=1 |
RAID-1 (鏡像) 或 RAID-5 (糾刪碼) | 3 (建議 4 個以上,以便在主機故障或維護期間重建) |
FTT=2 |
RAID-1 (鏡像) | 5 |
FTT=2 |
RAID-6 (糾刪碼) | 6 |
如要在目標網域 vCenter Server (vc01 或 vc02) 的 vSphere Client 中設定預設儲存空間政策,請按照下列步驟操作:
- 停用 vSAN ESA 叢集的自動政策管理功能,以免 vSAN 覆寫自訂預設政策。
- 依序前往「Policies and Profiles」(政策和設定檔) >「VM Storage Policies」(VM 儲存空間政策) >「Create」(建立),啟用 vSAN 儲存空間規則,然後在「Availability」(可用性) 區段中選取「Failures to tolerate」(可容許的故障數) (例如,3 到 4 個主機為「1 failure - RAID-1 (Mirroring)」(1 個故障 - RAID-1 (鏡像)),6 個以上的主機為「2 failures - RAID-6 (Erasure Coding)」(2 個故障 - RAID-6 (糾刪碼)))。
- 將新政策設為資料儲存庫預設值:選取
cl02vSAN 資料儲存庫,依序前往「Configure」(設定) >「General」(一般) >「Default Storage Policy」(預設儲存空間政策) >「Edit」(編輯),然後選取新政策。 - 將政策套用至現有 VM (依序點選「VM Policies」(VM 政策) >「Edit VM Storage Policies」(編輯 VM 儲存空間政策))。依序前往
cl02叢集的「Monitor」(監控) >「vSAN」 >「Virtual Objects」(虛擬物件),確認是否符合規範。
排解叢集建立問題
下表列出將 vSphere 叢集新增至網域時的常見問題、原因和解決方法:
| 問題 | 原因 | 解析度 |
|---|---|---|
| vSAN 和 vMotion 連線能力驗證失敗;新主機回報狀態不佳 | 建立或擴充叢集時,SDDC Manager 會從網路集區分配 vmk1 和 vmk2 IP 位址,不會保留主機順序。 |
請保持啟用驗證功能。建立與 Compute Engine NIC IP 位址相符的專用網路集區,確認預先部署的設定一致。如果工作在連線能力檢查時暫停,請調整 Dynamic NIC 並重試工作。 |
新增叢集後,NSX 主機狀態為 Degraded 或通道中斷 |
NSX Manager 會從 IP 集區隨機指派 TEP (vmk10) IP 位址,因此可能與 Compute Engine TEP NIC 不符;Dynamic NIC 子網路不支援 DHCP。 |
使用與 Compute Engine TEP IP 位址相符的專用 TEP IP 集區,並在 NSX 主機準備完成後,調整 TEP Dynamic NIC。 |
BFD 啟動時,NSX_VDL2 代理程式或主機回報 Degraded |
NSX TEP IP 集區中缺少閘道 IP 位址。 | 在 TEP IP 集區中設定子網路閘道 (192.168.4.1)。 |
重新新增動態 NIC 時發生 IP_IN_USE 錯誤 |
兩個主機交換了 IP 位址,或預定 IP 位址與其他叢集重疊。 | 請先刪除所有主機上不相符的 Dynamic NIC,再重新新增介面,並確認 IP 方案與現有叢集不重疊。 |
| 不支援 NSX 虛擬交換器模式 | 在 VCF 9.x 中,預設的 NSX 虛擬交換器模式為「Enhanced Datapath Standard」,VMware 解決方案主機不支援此模式。 | 清除「Apply the default virtual switch mode configured in NSX Manager」,並將「Operational Mode」設為「Standard」 (或 API 規格中的 "hostSwitchOperationalMode": "STANDARD")。詳情請參閱「NSX 虛擬交換器模式」。 |
主機無法對子網路閘道 (.1) 執行連線偵測 (ping) |
Google Cloud 不會回應子網路閘道 IP 位址上的 ICMP 回應要求。 | 這是預期行為,請忽略閘道連線偵測 (ping) 警告。 |
| 時間同步處理 (NTP) 設定 | 裸機主機使用 Compute Engine 中繼資料伺服器同步時間。 | 直接使用中繼資料伺服器 IP 位址 (169.254.169.254) 做為 NTP 伺服器。 |
| 主機指紋或憑證顯示內部名稱 | 主機上未設定 DNS 搜尋網域,或主機名稱結尾為點號。 | 執行 esxcli network ip dns search add -d vmware.gve 指令,重新執行 /var/lib/vmware/osdata/init.sh 指令碼,然後執行 /sbin/generate-certificates 指令,並重新啟動 rhttpproxy 和 hostd 服務。 |
| 主機委任失敗 | vmk0 VMkernel 轉接器仍使用 DHCP,因為啟動服務並未轉換。 |
請執行 esxcli network ip interface ipv4 get -i vmk0 指令。如果類型是 DHCP,請手動設為靜態 (例如在 esxi-h7:esxcli network ip interface ipv4 set -i vmk0 -t static -I 192.168.0.161 -N 255.255.255.0 -g 192.168.0.1)。 |
| vSAN 複製錯誤、vMotion 逾時或 NSX 疊加層分割 | VCF 會將 VDS、VMkernel 轉接器和 NSX 設定檔的 MTU 預設為 9000 位元組,而虛擬私有雲網路會捨棄大於 8896 位元組的框架。 |
在 VDS、網路集區 (vMotion 和 vSAN) 和 NSX 上行設定檔,設定 8896 位元組的 MTU。詳情請參閱「VDS MTU 不相符」。 |
| 精靈會提示輸入疊加通訊埠群組的 VLAN ID | 預設 VDS 設定檔需要 NSX 主機疊加層 VLAN ID。 | 輸入現有 NSX 設定的 TEP VLAN ID (本指南中為 4)。 |
| 新叢集上的工作負載 VM 沒有任何通訊埠群組 | 預設 VDS 設定檔只會建立基礎架構通訊埠群組。 | 建立叢集後,請為工作負載 VM 建立分散式通訊埠群組,或使用自訂切換設定。 |
| 無法使用所選 vLCM 映像檔新增主機 | 叢集的 vLCM 映像檔與主機上安裝的 ESXi 版本不同。 | 使用現有叢集採用的 ESXi 映像檔系列,或從其中一個新主機擷取映像檔。 |
後續步驟
- 如要擴充或縮減現有叢集,請參閱「在 vSphere 叢集中新增或移除節點」。
- 如要管理裸機節點容量,請前往 Google Cloud 控制台的「Manage node capacity」(管理節點容量)。
- 請參閱「關於 vSphere 叢集」一文,瞭解叢集大小和架構指南。
- 請參閱「已知問題」,瞭解常見的部署和操作解決方法。
- 進一步瞭解Dynamic NIC 和裸機執行個體。