第 3 章 替换数据平面节点


您可以在 OpenShift (RHOSO)云上扩展 Red Hat OpenStack Services 的情况下替换预置备和置备的数据平面节点。

3.1. 替换预置备节点

当您替换有问题的预置备节点时,您的替换节点与故障节点具有相同的主机名和 IP 地址。您可以创建一个新的 OpenStackDataPlaneDeployment CR 来部署新节点。

如果您的替换节点有与故障节点不同的 IP 地址,您可以为该节点设置一个新的 fixedIP,并为 OpenStackDataPlaneNodeSet CR 中的节点设置一个新的 ansibleHost。然后,您可以创建一个新的 OpenStackDataPlaneDeployment CR 来部署新节点。

当替换预置备节点时,您可以手动清理您要删除的节点。

有关错误、数据平面条件和状态以及修改 OpenStackDataPlaneNodeSet CR 时可能会出现的状态,请参阅 修改 OpenStackDataPlaneNodeSet CR 中的 自定义 OpenShift 部署上的 Red Hat OpenStack Services

先决条件

  • 以具有 cluster-admin 权限的用户身份登录 RHOCP 集群。
  • Compute 节点上的工作负载已迁移到其他 Compute 节点。

流程

  1. 如果有问题的节点仍然可以被访问,请执行清理的任务,以确保有问题的节点不会影响新节点。

    1. SSH 到移除的节点,并停止 ovnnova-compute 容器:

      $ ssh -i <key_file_name> cloud-admin@<node_IP_address>
      [cloud-admin@<hostname> ~]$ sudo systemctl stop edpm_ovn_controller
      [cloud-admin@<hostname> ~]$ sudo systemctl stop edpm_ovn_metadata_agent
      [cloud-admin@<hostname> ~]$ sudo systemctl stop edpm_nova_compute
      • 将 < key_file_name > 替换为您创建的 SSH 密钥对文件的名称和位置,以便 Ansible 管理 RHEL 节点。
      • <node_IP_address > 替换为已删除节点的 IP 地址。
    2. 删除管理 ovnnova-compute 容器的 systemd 单元文件,以防止在删除的节点重启时自动启动和注册代理:

      [cloud-admin@<hostname> ~]$ sudo rm -f /etc/systemd/system/edpm_ovn_controller
      [cloud-admin@<hostname> ~]$ sudo rm -f /etc/systemd/system/edpm_ovn_metadata_agent
      [cloud-admin@<hostname> ~]$ sudo rm -f /etc/systemd/system/edpm_nova_compute
    3. 断开与节点的连接:

      $ exit
  2. 如果您的替换节点具有与故障节点相同的 IP 地址,请执行以下步骤 3 以创建 OpenStackDataPlaneDeployment CR 来部署新节点。如果您的替换节点有与故障节点不同的 IP 地址,请打开您要更新的节点设置的 OpenStackDataPlaneNodeSet CR 文件,例如 openstack_data_plane.yaml,并进行以下更改。

    1. 为您要替换的节点更新 control plane 网络的 fixedIP,以指定新节点的 IP 地址:

      Example:

        nodes:
          edpm-compute-0:
            hostName: edpm-compute-0
            networks:
            - name: ctlplane
              subnetName: subnet1
              defaultRoute: true
              fixedIP: 192.168.122.100
            ...
    2. 更新您要替换的节点的 ansibleHost 值,以指定新节点的 IP 地址:

      Example:

        nodes:
          edpm-compute-0:
            hostName: edpm-compute-0
            ...
            ansible:
              ansibleHost: 192.168.122.100
              ansibleUser: cloud-admin
              ansibleVars:
                fqdn_internal_api: edpm-compute-0.example.com
      ...
    3. 保存 OpenStackDataPlaneNodeSet CR 文件。
    4. 应用更新的 OpenStackDataPlaneNodeSet CR 配置:

      $ oc apply -f openstack_data_plane.yaml
    5. 通过确认状态为 SetupReady 来验证 data plane 资源是否已更新:

      $ oc wait openstackdataplanenodeset openstack-data-plane --for condition=SetupReady --timeout=10m

      当状态是 SetupReady 时,命令会返回一个 condition met 消息,否则会返回超时错误。

  3. 在工作站上创建一个文件,以定义 OpenStackDataPlaneDeployment CR 来部署新节点:

    apiVersion: dataplane.openstack.org/v1beta1
    kind: OpenStackDataPlaneDeployment
    metadata:
      name: <node_set_deployment_name>
    • <node_set_deployment_name > 替换为 OpenStackDataPlaneDeployment CR 的名称。名称必须是唯一的,必须包含小写字母数字字符(hyphen)或 . (句点),且必须以字母数字字符开头和结尾。
  4. 添加 OpenStackDataPlaneNodeSet CR:

    spec:
      nodeSets:
        - <nodeSet_name>
  5. 保存 OpenStackDataPlaneDeployment CR 部署文件。
  6. 部署 OpenStackDataPlaneNodeSet CR:

    $ oc create -f openstack_data_plane_deploy.yaml -n openstack

    您可以在部署执行时查看 Ansible 日志:

    $ oc get pod -l app=openstackansibleee -w
    $ oc logs -l app=openstackansibleee -f --max-log-requests 10
  7. 验证 OpenStackDataPlaneNodeSet CR 是否已部署:

    $ oc get openstackdataplanedeployment -n openstack
    NAME             	  STATUS    MESSAGE
    openstack-data-plane   True     Setup Complete
    
    
    $ oc get openstackdataplanenodeset -n openstack
    NAME             	  STATUS    MESSAGE
    openstack-data-plane   True     NodeSet Ready
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部