以下过程介绍了如何使用 NSX API 替换 NSX Edge 集群中的 NSX Edge 传输节点。无论 Edge 传输节点是否正在运行,您都可以替换该节点。

前提条件

  • 熟悉安装 NSX Edge 节点、将 Edge 节点加入管理平面以及创建 NSX Edge 传输节点的过程。有关详细信息,请参见NSX 安装指南
  • 确保将用于替换旧 NSX Edge 节点的新 NSX Edge 节点已准备就绪。有关详细信息,请参见NSX 安装指南

过程

  1. 如果希望新的 NSX Edge 传输节点具有与要替换的旧 NSX Edge 传输节点相同的配置,请进行以下 API 调用以查找配置:
    GET https://<nsx-manager-IP>/api/v1/transport-nodes/<tn-id>
    {
        "node_id": "250175b8-223b-11ed-826e-b07b25e93f64",
        "host_switch_spec": {
            "host_switches": [
                {
                    "host_switch_name": "nsxHostSwitch",
                    "host_switch_id": "809299a2-c090-4543-8747-d200e12cd2ea",
                    "host_switch_type": "NVDS",
                    "host_switch_mode": "STANDARD",
                    "host_switch_profile_ids": [
                        {
                            "key": "UplinkHostSwitchProfile",
                            "value": "57da58fa-bce6-448b-8db3-874ceff59656"
                        },
                        {
                            "key": "LldpHostSwitchProfile",
                            "value": "9e0b4d2d-d155-4b4b-8947-fbfe5b79f7cb"
                        }
                    ],
                    "pnics": [
                        {
                            "device_name": "fp-eth0",
                            "uplink_name": "Uplink1"
                        },
                        {
                            "device_name": "fp-eth2",
                            "uplink_name": "Uplink2"
                        },
                        {
                            "device_name": "fp-eth4",
                            "uplink_name": "Uplink3"
                        },
                        {
                            "device_name": "fp-eth6",
                            "uplink_name": "Uplink4"
                        }
                    ],
                    "is_migrate_pnics": false,
                    "ip_assignment_spec": {
                        "ip_pool_id": "82f8ae96-992b-45c6-8376-777b82bfeb1d",
                        "resource_type": "StaticIpPoolSpec"
                    },
                    "cpu_config": [],
                    "transport_zone_endpoints": [
                        {
                            "transport_zone_id": "15897bda-802f-4481-b9fd-4e5cc1ef084b",
                            "transport_zone_profile_ids": [
                                {
                                    "resource_type": "BfdHealthMonitoringProfile",
                                    "profile_id": "52035bb3-ab02-4a08-9884-18631312e50a"
                                }
                            ]
                        },
                        {
                            "transport_zone_id": "4a237a28-050e-4499-a241-0eb0c9dad97f",
                            "transport_zone_profile_ids": [
                                {
                                    "resource_type": "BfdHealthMonitoringProfile",
                                    "profile_id": "52035bb3-ab02-4a08-9884-18631312e50a"
                                }
                            ]
                        }
                    ],
                    "pnics_uninstall_migration": [],
                    "vmk_uninstall_migration": [],
                    "not_ready": false
                }
            ],
            "resource_type": "StandardHostSwitchSpec"
        },
        "maintenance_mode": "DISABLED",
        "node_deployment_info": {
            "deployment_type": "PHYSICAL_MACHINE",
            "node_settings": {
                "hostname": "w1-hs2-m2716.eng.vmware.com",
                "enable_ssh": true,
                "allow_ssh_root_login": false
            },
            "resource_type": "EdgeNode",
            "external_id": "250175b8-223b-11ed-826e-b07b25e93f64",
            "ip_addresses": [
                "10.196.145.177"
            ],
            "id": "250175b8-223b-11ed-826e-b07b25e93f64",
            "display_name": "w1-hs2-m2716.eng.vmware.com",
            "tags": [],
            "_revision": 3
        },
        "is_overridden": false,
        "failure_domain_id": "4fc1e3b0-1cd4-4339-86c8-f76baddbaafb",
        "resource_type": "TransportNode",
        "id": "250175b8-223b-11ed-826e-b07b25e93f64",
        "display_name": "w1-hs2-m2716.eng.vmware.com",
        "tags": [],
        "_create_time": 1661187299037,
        "_create_user": "admin",
        "_last_modified_time": 1661255498968,
        "_last_modified_user": "admin",
        "_system_owned": false,
        "_protection": "NOT_PROTECTED",
        "_revision": 3
    }
  2. 记下要替换的节点的传输节点 ID“55120a1a-51c6-4c20-b4a3-6f59662c9f6a”。
  3. 准备要替换旧 NSX Edge 节点的新 NSX Edge 传输节点。请参见NSX 安装指南中的创建 NSX Edge 传输节点
    准备新 NSX Edge 节点时,请注意以下配置点:
    • 如果旧 NSX Edge 节点正在运行,请勿使用相同 IP 地址 "ip_addresses": ["10.161.68.92"]
    • 如果旧 NSX Edge 节点正在运行,请勿使用相同的 TEP IP 地址
  4. 确认新 Edge 传输节点的 UUID。运行步骤 1 中提到的 API。
  5. 进行 API 调用以检索必须替换的传输节点的成员索引。
    GET https://<nsx-manager-IP>/api/v1/edge-clusters
    ....
        {
          "resource_type": "EdgeCluster",
          "description": "",
          "id": "9a302df7-0833-4237-af1f-4d826c25ad78",
          "display_name": "Edge-Cluster-1",
    ...
          "members": [
            {
              "member_index": 0,
              "transport_node_id": "55120a1a-51c6-4c20-b4a3-6f59662c9f6a"
            },
            {
              "member_index": 1,
              "transport_node_id": "890f0e3c-aa81-46aa-843b-8ac25fe30bd3"
            }
          ],
  6. 进行 API 调用以替换 NSX Edge 集群中的传输节点。member_index 必须与要替换的传输节点的索引匹配。
    例如,传输节点 TN-edgenode-01a (73cb00c9-70d0-4808-abfe-a12a43251133) 发生故障,并将其替换为 NSX Edge 集群 Edge-Cluster-1 (9a302df7-0833-4237-af1f-4d826c25ad78) 中的传输节点 TN-edgenode-03a (890f0e3c-aa81-46aa-843b-8ac25fe30bd3)。
    POST http://<nsx-manager-IP>/api/v1/edge-clusters/9a302df7-0833-4237-af1f-4d826c25ad78?action=replace_transport_node
    {
        "member_index": 0,
        "transport_node_id" : "890f0e3c-aa81-46aa-843b-8ac25fe30bd3"
    }

结果

如果运行的 NSX 版本低于 3.1.3,则在替换 NSX Edge 传输节点后,您可能会看到警报“所有 BGP/BFD 会话已关闭 (All BGP/BFD sessions are down)。”要解决此问题,请按照知识库文章 https://kb.vmware.com/s/article/83983 中的解决办法说明执行操作。