设置云 HA 服务器集群的虚拟机

请按照以下步骤在云部署中的服务器集群上设置和配置 VM。首先在主节点上配置 VM,然后在每个工作节点上配置 VM。NVIDIA 建议将虚拟机安装在不同的物理服务器上,以在发生硬件故障时提高冗余性。


系统要求

验证集群中的每个节点(主节点和两个工作节点)是否满足 VM 要求。

资源最低要求
处理器4 个虚拟 CPU
内存8 GB RAM
本地磁盘存储64 GB
网络接口速度1 Gb NIC
虚拟机监控程序适用于运行 Ubuntu 的服务器的 KVM/QCOW(QEMU Copy on Write)映像;
适用于运行 Cumulus Linux 或 Ubuntu 的服务器的 VMware ESXi™ 6.5 或更高版本(OVA 映像)

端口要求

确认所需的端口已打开以进行通信。OPTA 必须能够启动到 netq.nvidia.com 域 (*.netq.nvidia.com) 的 HTTPS 连接(目标 TCP 端口 443)。您还必须在 NetQ OPTA 上打开以下端口

端口或协议号协议组件访问
4IP 协议Calico 网络(IP-in-IP 协议)
22TCPSSH
80TCPnginx
179TCPCalico 网络(BGP)
443TCPNetQ UI
2379TCPetcd 数据存储
4789UDPCalico 网络(VxLAN)
5000TCPDocker 注册表
6443TCPkube-apiserver
30001TCPDPU 通信
31980TCPNetQ 代理通信
31982TCPNetQ 代理 SSL 通信
32708TCPAPI 网关

以下端口用于内部集群通信,也必须在集群中的服务器之间打开

端口或协议号协议组件访问
8080TCP管理 API
5000TCPDocker 注册表
6443TCPKubernetes API 服务器
10250TCPkubelet 健康探测
2379TCPetcd
2380TCPetcd
36443TCPKubernetes 控制平面

安装和配置

  1. 下载 NetQ 映像。

    a. 登录您的 NVIDIA 应用程序中心 帐户。
    b. 选择 NVIDIA 许可门户
    c. 从菜单中选择 软件下载
    d. 单击 产品系列 并选择 NetQ
    e. 对于使用 KVM 的部署,请下载 NetQ SW 4.12 KVM Cloud 映像。对于使用 VMware 的部署,请下载 NetQ SW 4.12 VMware Cloud 映像。
    f. 如果出现提示,请阅读许可协议并继续下载。

NVIDIA 员工可以直接从 NVIDIA 许可门户 下载 NetQ。

  1. 打开您的虚拟机监控程序并配置您的 VM。您可以使用以下示例作为参考,或使用您自己的虚拟机监控程序说明。

KVM 示例配置

此示例显示了安装了 Libvirt 和 KVM/QEMU 的系统的 VM 设置过程。

  1. 确认 SHA256 校验和与 NVIDIA 应用程序中心上发布的校验和匹配,以确保映像下载未损坏。

    $ sha256sum ./Downloads/netq-4.12.0-ubuntu-20.04-tscloud-qemu.qcow2
    $ cd9723339eb44d0acb136f27c1d36653448ae475cc35fd8d5af58dcd7a5d15c9 ./Downloads/netq-4.12.0-ubuntu-20.04-tscloud-qemu.qcow2
  2. 将 QCOW2 映像复制到您要运行它的目录。

    提示:复制而不是移动原始下载的 QCOW2 映像,以避免以后需要再次执行此过程时重新下载。

    $ sudo mkdir /vms
    $ sudo cp ./Downloads/netq-4.12.0-ubuntu-20.04-tscloud-qemu.qcow2 /vms/ts.qcow2
  3. 创建 VM。

    对于直接 VM,其中 VM 使用 MACVLAN 接口来位于主机接口上以进行连接

    $ virt-install --name=netq_ts --vcpus=4 --memory=8192 --os-type=linux --os-variant=generic --disk path=/vms/ts.qcow2,format=qcow2,bus=virtio,cache=none --network=type=direct,source=eth0,model=virtio --import --noautoconsole

    将磁盘路径值替换为 QCOW2 映像所在的位置。将网络模型值(以上示例中的 eth0)替换为 VM 连接到外部网络的接口名称。

    或者,对于桥接 VM,其中 VM 连接到已设置为允许外部访问的桥接器

    $ virt-install --name=netq_ts --vcpus=4 --memory=8192 --os-type=linux --os-variant=generic \ --disk path=/vms/ts.qcow2,format=qcow2,bus=virtio,cache=none --network=bridge=br0,model=virtio --import --noautoconsole

    将网络桥接值(以上示例中的 br0)替换为 VM 连接到外部网络的(预先存在的)桥接接口名称。

    记下安装期间使用的名称,因为稍后的步骤中需要它。

  4. 在另一个终端窗口中观看启动过程。
    $ virsh console netq_ts
VMware 示例配置此示例显示了使用带有 VMware ESXi 的 OVA 文件设置 VM 的过程。
  1. 在浏览器中输入硬件地址。

  2. 使用具有 root 访问权限的凭据登录 VMware。

  3. 单击导航器中的 存储 以验证您是否安装了 SSD。

  4. 单击右侧窗格顶部的 创建/注册 VM

  5. 选择 从 OVF 或 OVA 文件部署虚拟机,然后单击 下一步

  6. 为 VM 提供名称,例如 NetQ

    提示:记下安装期间使用的名称,因为稍后的步骤中需要它。

  7. 拖放您在上面的步骤 1 中下载的 NetQ 平台映像文件。

  8. 单击 下一步

  9. 选择要使用的映像的存储类型和数据存储,然后单击 下一步。在此示例中,只有一个可用。

  10. 接受默认部署选项或根据您的网络需求修改它们。完成后单击 下一步

  11. 查看配置摘要。单击 返回 以更改任何设置,或单击 完成 以继续创建 VM。

    请求的进度显示在应用程序底部的“最近任务”窗口中。这可能需要一些时间,因此请继续您的其他工作,直到上传完成。

  12. 完成后,查看 VM 和硬件的完整详细信息。

  1. 登录到 VM 并更改密码。

首次登录时使用默认凭据

  • 用户名:cumulus
  • 密码:cumulus
$ ssh cumulus@<ipaddr>
Warning: Permanently added '<ipaddr>' (ECDSA) to the list of known hosts.
Ubuntu 20.04 LTS
cumulus@<ipaddr>'s password:
You are required to change your password immediately (root enforced)
System information as of Thu Dec  3 21:35:42 UTC 2020
System load:  0.09              Processes:           120
Usage of /:   8.1% of 61.86GB   Users logged in:     0
Memory usage: 5%                IP address for eth0: <ipaddr>
Swap usage:   0%
WARNING: Your password has expired.
You must change your password now and login again!
Changing password for cumulus.
(current) UNIX password: cumulus
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Connection to <ipaddr> closed.

使用新密码再次登录。

$ ssh cumulus@<ipaddr>
Warning: Permanently added '<ipaddr>' (ECDSA) to the list of known hosts.
Ubuntu 20.04 LTS
cumulus@<ipaddr>'s password:
  System information as of Thu Dec  3 21:35:59 UTC 2020
  System load:  0.07              Processes:           121
  Usage of /:   8.1% of 61.86GB   Users logged in:     0
  Memory usage: 5%                IP address for eth0: <ipaddr>
  Swap usage:   0%
Last login: Thu Dec  3 21:35:43 2020 from <local-ipaddr>
cumulus@ubuntu:~$
  1. 验证主节点是否已准备好安装。在安装 NetQ 软件之前修复任何错误。
cumulus@hostname:~$ sudo opta-check-cloud
  1. 将 VM 的主机名从默认值更改。

NetQ 虚拟机的默认主机名为 ubuntu。更改主机名以符合您的命名约定,同时满足 Internet 和 Kubernetes 命名标准。

Kubernetes 要求主机名由一系列用点连接的标签组成。例如,“en.wikipedia.org”是一个主机名。每个标签的长度必须为 1 到 63 个字符。整个主机名(包括分隔点)最多包含 253 个 ASCII 字符。

协议的 Internet 标准 (RFC) 规定标签只能包含 ASCII 字母 a 到 z(小写)、数字 0 到 9 和连字符“-”。

使用以下命令

cumulus@hostname:~$ sudo hostnamectl set-hostname NEW_HOSTNAME

将相同的 NEW_HOSTNAME 值添加到 VM 上的 /etc/hosts 中,用于 localhost 条目。例如

127.0.0.1 localhost NEW_HOSTNAME
  1. 打开您的虚拟机监控程序,并以与主节点相同的方式设置 VM。

    记下您分配给工作节点的私有 IP 地址。您将在安装过程的稍后阶段需要它。

  2. 验证工作节点是否已准备好安装。在安装 NetQ 软件之前修复任何错误。

cumulus@hostname:~$ sudo opta-check-cloud
  1. 对集群中的每个其他工作节点重复步骤 6 和 7。

  2. 使用 CLI 安装和激活 NetQ 软件。在您的节点上运行以下命令以初始化集群。复制命令的输出以在您的工作节点上使用

cumulus@<hostname>:~$ netq install cluster master-init
    Please run the following command on all worker nodes:
    netq install cluster worker-init c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFCQVFDM2NjTTZPdVVUWWJ
  1. 在您的每个工作节点上运行 netq install cluster worker-init <ssh-key> 命令。

  2. 在您的 NetQ 云设备上运行以下命令,使用从 NVIDIA 发送给您的标题为NetQ Access Link的电子邮件中获得的 config-key。您也可以通过 NetQ UI 获取配置密钥。使用您的工作节点的 IP 地址和 HA 集群虚拟 IP 地址 (VIP)。

HA 集群虚拟 IP 必须是

  • 从分配给您的主节点和工作节点的默认接口的同一子网分配的未使用 IP 地址。默认接口是 netq install 命令 中使用的接口。
  • 与分配给默认接口的主 IP 地址不同的 IP 地址。
  • cumulus@<hostname>:~$ netq install opta cluster full interface eth0 bundle /mnt/installables/NetQ-4.12.0-opta.tgz 
                    config-key <your-config-key> 
                    workers <worker-1-ip> <worker-2-ip> 
                    cluster-vip <vip-ip> 
                    [proxy-host <proxy-hostname> proxy-port <proxy-port>]
    

    NetQ 默认使用 10.244.0.0/16 (pod-ip-range) 和 10.96.0.0/16 (service-ip-range) 网络进行内部通信。如果您正在使用这些网络,则必须通过在 install 命令中为这些参数指定新的子网来覆盖每个范围

    cumulus@hostname:~$ netq install cluster full interface eth0 bundle /mnt/installables/NetQ-4.12.0.tgz workers <worker-1-ip> <worker-2-ip> pod-ip-range <pod-ip-range> service-ip-range <service-ip-range>

    您可以使用 ip-addr <ip-address> 参数指定服务器的 IP 地址而不是接口名称

    cumulus@hostname:~$ netq install cluster full ip-addr <ip-address> bundle /mnt/installables/NetQ-4.12.0.tgz workers <worker-1-ip> <worker-2-ip>

    如果在安装 NetQ 后更改服务器 IP 地址或主机名,则必须使用 netq bootstrap reset keep-db 命令重置服务器,然后重新运行 install 命令。

    如果此步骤因任何原因失败,请运行 netq bootstrap reset 然后重试。

    验证安装状态

    要查看安装状态,请使用 netq show status [verbose] 命令。以下示例显示了成功安装

    State: Active
        NetQ Live State: Active
        Installation Status: FINISHED
        Version: 4.12.0
        Installer Version: 4.12.0
        Installation Type: Cluster
        Activation Key: EhVuZXRxLWVuZHBvaW50LWdhdGV3YXkYsagDIixPSUJCOHBPWUFnWXI2dGlGY2hTRzExR2E5aSt6ZnpjOUvpVVTaDdpZEhFPQ==
        Master SSH Public Key: c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFCZ1FDNW9iVXB6RkczNkRC
        Is Cloud: True
        
        Kubernetes Cluster Nodes Status:
        IP Address    Hostname     Role    NodeStatus    Virtual IP
        ------------  -----------  ------  ------------  ------------
        10.213.7.52   10.213.7.52  Worker  Ready         10.213.7.53
        10.213.7.51   10.213.7.51  Worker  Ready         10.213.7.53
        10.213.7.49   10.213.7.49  Master  Ready         10.213.7.53
        
        In Summary, Live state of the NetQ is... Active
    

    运行 netq show opta-health 命令以验证所有应用程序是否正常运行。至少等待 15 分钟,让所有应用程序启动并报告其状态。

    cumulus@hostname:~$ netq show opta-health
        Application                                            Status    Namespace      Restarts    Timestamp
        -----------------------------------------------------  --------  -------------  ----------  ------------------------
        cassandra-rc-0-w7h4z                                   READY     default        0           Fri Apr 10 16:08:38 2024
        cp-schema-registry-deploy-6bf5cbc8cc-vwcsx             READY     default        0           Fri Apr 10 16:08:38 2024
        kafka-broker-rc-0-p9r2l                                READY     default        0           Fri Apr 10 16:08:38 2024
        kafka-connect-deploy-7799bcb7b4-xdm5l                  READY     default        0           Fri Apr 10 16:08:38 2024
        netq-api-gateway-deploy-55996ff7c8-w4hrs               READY     default        0           Fri Apr 10 16:08:38 2024
        netq-app-address-deploy-66776ccc67-phpqk               READY     default        0           Fri Apr 10 16:08:38 2024
        netq-app-admin-oob-mgmt-server                         READY     default        0           Fri Apr 10 16:08:38 2024
        netq-app-bgp-deploy-7dd4c9d45b-j9bfr                   READY     default        0           Fri Apr 10 16:08:38 2024
        netq-app-clagsession-deploy-69564895b4-qhcpr           READY     default        0           Fri Apr 10 16:08:38 2024
        netq-app-configdiff-deploy-ff54c4cc4-7rz66             READY     default        0           Fri Apr 10 16:08:38 2024
        ...
    

    如果在 30 分钟后任何应用程序或服务显示 DOWN 状态,请打开支持票证并附上 opta-support 命令的输出。

    安装 NetQ 后,您可以从浏览器登录到 NetQ