11.4. 使用预置备节点配置基本 overcloud


本章包含基本配置流程,可用于使用预置备节点配置 Red Hat OpenStack Platform (RHOSP) 环境。这种情境与标准 overcloud 创建情境有所不同,具体体现在以下几个方面:

  • 您可以使用外部工具置备节点,让 director 仅控制 overcloud 的配置。
  • 您无需依赖 director 的置备方法,可直接使用节点。如果您想创建没有电源管理控制的 overcloud 或使用具有 DHCP/PXE 引导限制的网络,该方法很有用。
  • director 不使用 OpenStack Compute (nova)、OpenStack Bare Metal (ironic) 或者 OpenStack Image (glance) 来管理节点。
  • 预置备的节点可以使用不依赖于 QCOW2 overcloud-full 镜像的自定义分区布局。

这种情境仅包括没有自定义功能的基本配置。

重要

您无法将预置备节点与 director 置备的节点合并。

11.4.1. 预置备节点要求

在开始使用预置备节点部署 overcloud 前,请确保环境中存在以下配置:

  • 您在 第 7 章 在 undercloud 上安装 director 中创建的 director 节点。
  • 节点的一组裸机。所需的节点数量由您需要创建的 overcloud 类型所决定。这些机器必须符合为每个节点类型设定的要求。这些节点需要 Red Hat Enterprise Linux 9.0 作为主机操作系统安装。红帽建议使用最新的可用版本。
  • 用于管理预置备节点的一个网络连接。本情境需要具备对节点的不间断 SSH 访问权限以进行编配代理配置。
  • Control Plane 网络的一个网络连接。这种网络具备两种主要情境:

    • 将 Provisioning 网络用作 Control Plane,这种是默认情境。这个网络通常是从预置备节点到 director 的第 3 层 (L3) 可路由网络连接。本情境示例使用以下 IP 地址分配:

      表 11.10. Provisioning 网络 IP 分配信息
      节点名IP 地址

      Director

      192.168.24.1

      控制器 0

      192.168.24.2

      计算 0

      192.168.24.3

    • 使用单独的网络。如果 director 的 Provisioning 网络是私有非路由网络,则可从任何子网定义节点的 IP 地址,通过公共 API 端点与 director 通信。有关这种情况要求的详情请参考 第 11.4.6 节 “为预置备节点使用单独网络”
  • 本示例中的所有其他网络类型使用 Control Plane 网络来提供 OpenStack 服务。不过,您可以为其他网络流量类型创建额外的网络。
  • 如果有任何节点使用 Pacemaker 资源,服务用户 hacluster 和服务组 haclient 必须具有 189 的 UID/GID。这是因为 CVE-2018-16877。如果与操作系统一起安装了 Pacemaker,则安装会自动创建这些 ID。如果错误设置 ID 值,请按照文章 OpenStack 小幅更新/快进升级可能在 controller 节点上在 pacemaker 步骤失败,显示消息“Could not evaluate: backup_cib” 中的步骤来更改 ID 值。
  • 要防止某些服务绑定到不正确的 IP 地址并导致部署失败,请确保 /etc/hosts 文件不包含 node-name=127.0.0.1 映射。

11.4.2. 在预置备节点上创建用户

使用预置备节点配置 overcloud 时,director 需要对 overcloud 节点进行 SSH 访问。在预置备的节点上,您必须创建一个使用 SSH 密钥身份验证的用户,并为该用户配置免密码 sudo 访问。在预置备的节点上创建用户后,可以结合使用 --overcloud-ssh-user--overcloud-ssh-key 选项及 openstack overcloud deploy 命令,创建具有预置备节点的 overcloud。

默认情况下,overcloud SSH 用户和 overcloud SSH 密钥的值是 stack 用户和 ~/.ssh/id_rsa。要创建 stack 用户,请完成以下步骤。

步骤

  1. 在每个 overcloud 节点上,创建 stack 用户并设定密码。例如,在 Controller 节点上运行以下命令:

    [root@controller-0 ~]# useradd stack
    [root@controller-0 ~]# passwd stack  # specify a password
  2. 进行以下操作以使这个用户使用 sudo 时不需要输入密码:

    [root@controller-0 ~]# echo "stack ALL=(root) NOPASSWD:ALL" | tee -a /etc/sudoers.d/stack
    [root@controller-0 ~]# chmod 0440 /etc/sudoers.d/stack
  3. 在所有预置备节点上创建并配置 stack 用户后,将 stack 用户的公共 SSH 密钥从 director 节点复制到每个 overcloud 节点。例如,要将 director 的公共 SSH 密钥复制到 Controller 节点,请运行以下命令:

    [stack@director ~]$ ssh-copy-id stack@192.168.24.2
重要

要复制 SSH 密钥,您可能必须在每个 overcloud 节点的 SSH 配置中临时设置 PasswordAuthentication Yes。复制 SSH 密钥后,设置 PasswordAuthentication No,并在以后使用 SSH 密钥进行身份验证。

11.4.3. 为预置备节点注册操作系统

每个节点需要具备访问红帽订阅的权限。在每个节点上完成以下步骤,将节点注册到 Red Hat Content Delivery Network 中。以 root 用户身份或具有 sudo 特权的用户身份执行命令。

重要

仅启用列出的软件仓库。其他软件仓库可能导致软件包和软件冲突。请勿启用任何其他软件仓库。

步骤

  1. 运行注册命令,按照提示输入您的客户门户用户名和密码:

    [root@controller-0 ~]# sudo subscription-manager register
  2. 查找 Red Hat OpenStack Platform 17.0 的权利池:

    [root@controller-0 ~]# sudo subscription-manager list --available --all --matches="Red Hat OpenStack"
  3. 使用上一步中的池 ID 以附加 Red Hat OpenStack Platform 16 权利:

    [root@controller-0 ~]# sudo subscription-manager attach --pool=pool_id
  4. 禁用所有默认软件仓库:

    [root@controller-0 ~]# sudo subscription-manager repos --disable=*
  5. 启用所需的 Red Hat Enterprise Linux 软件仓库:

    [root@controller-0 ~]# sudo subscription-manager repos \
     --enable=rhel-9-for-x86_64-baseos-eus-rpms \
     --enable=rhel-9-for-x86_64-appstream-eus-rpms \
     --enable=rhel-9-for-x86_64-highavailability-eus-rpms \
     --enable=openstack-beta-for-rhel-9-x86_64-rpms \
     --enable=fast-datapath-for-rhel-9-x86_64-rpms
  6. 如果 overcloud 使用 Ceph Storage 节点,请启用相关的 Ceph Storage 软件仓库:

    [root@cephstorage-0 ~]# sudo subscription-manager repos \
     --enable=rhel-9-for-x86_64-baseos-rpms \
     --enable=rhel-9-for-x86_64-appstream-rpms \
     --enable=openstack-beta-deployment-tools-for-rhel-9-x86_64-rpms
  7. 锁定除 Red Hat Ceph Storage 节点外的所有 overcloud 节点上的 RHEL 版本:

    [root@controller-0 ~]# sudo subscription-manager release --set=9.0
  8. 更新您的系统,确保您具备最新的基础系统软件包:

    [root@controller-0 ~]# sudo dnf update -y
    [root@controller-0 ~]# sudo reboot

节点现在可供您的 overcloud 使用。

11.4.4. 配置对 director 的 SSL/TLS 访问权限

如果 director 使用 SSL/TLS,那么预置备节点需要用于签署 director 的 SSL/TLS 证书的证书授权机构文件。如果使用自己的证书颁发机构(CA),请在每个 overcloud 节点上执行以下操作。

步骤

  1. 将证书授权机构文件复制到各预置备节点上的 /etc/pki/ca-trust/source/anchors/ 目录中。
  2. 在每个 overcloud 节点上运行以下命令:

    [root@controller-0 ~]#  sudo update-ca-trust extract

这些步骤将确保 overcloud 节点可以通过 SSL/TLS 访问 director 的公共 API。

11.4.5. 配置 control plane 网络

预置备 overcloud 节点使用标准 HTTP 请求从 director 获取元数据。这表示所有 overcloud 节点都需要 L3 权限来访问以下之一:

  • director 的 Control Plane 网络,这是在 undercloud.conf 文件中使用 network_cidr 参数定义的子网。overcloud 节点需要对该子网的直接访问权限或对该子网的可路由访问权限。
  • director 的公共 API 端点,使用 undercloud.conf 文件中的 undercloud_public_host 参数指定。如果没有指向 Control Plane 的 L3 路由或希望使用 SSL/TLS 通信,则此选项可用。有关配置 overcloud 节点以使用公共 API 端点的更多信息,请参阅 第 11.4.6 节 “为预置备节点使用单独网络”

director 使用 Control Plane 网络管理和配置标准 overcloud。对于具有预置备节点的 overcloud,可能需要对您的网络配置进行修改以适应 director 和预置备节点之间的通信。

使用网络隔离

您可以使用网络隔离分组服务以使用特定网络,包括 Control Plane。您可以为 Control Plane 上的节点定义特定 IP 地址。有关隔离网络和创建可预测的节点放置策略的更多信息,请参阅 网络隔离

注意

如果使用网络隔离,请确保您的 NIC 模板不包括用于 undercloud 访问的 NIC。这些模板可能会重新配置 NIC,这会导致在部署过程中出现连接和配置问题。

分配 IP 地址

如果不使用网络隔离,则可使用一个 Control Plane 网络管理所有服务。这需要手动配置每个节点的 Control Plane NIC,以便使用 Control Plane 网络范围内的 IP 地址。如果将 director 的 Provisioning 网络用作 Control Plane,请确保所选的 overcloud IP 地址不在置备(dhcp_startdhcp_end)和内省 (inspection_iprange) DHCP 范围之内。

在创建标准 overcloud 期间,director 将创建 OpenStack Networking (neutron) 端口并为 Provisioning/Control Plane 网络上的 overcloud 节点自动分配 IP 地址。但是,这可能导致 director 分配的地址与您为每个节点手动配置的 IP 地址不同。在这种情况下,使用可预测的 IP 地址策略来强制 director 使用 Control Plane 上的预置备 IP 分配。

如果您使用网络隔离,请创建一个自定义环境文件 deployed-ports.yaml 来实现可预测的 IP 策略。以下示例自定义环境文件 deployed-ports.yaml,将一组资源 registry 映射和参数传递给 director,并且定义预置备节点的 IP 分配。NodePortMapControlPlaneVipDataVipPortMap 参数定义与每个 overcloud 节点对应的 IP 地址和子网 CIDR。

resource_registry:
  # Deployed Virtual IP port resources
  OS::TripleO::Network::Ports::ExternalVipPort: /usr/share/openstack-tripleo-heat-templates/network/ports/deployed_vip_external.yaml
  OS::TripleO::Network::Ports::InternalApiVipPort: /usr/share/openstack-tripleo-heat-templates/network/ports/deployed_vip_internal_api.yaml
  OS::TripleO::Network::Ports::StorageVipPort: /usr/share/openstack-tripleo-heat-templates/network/ports/deployed_vip_storage.yaml
  OS::TripleO::Network::Ports::StorageMgmtVipPort: /usr/share/openstack-tripleo-heat-templates/network/ports/deployed_vip_storage_mgmt.yaml

  # Deployed ControlPlane port resource
  OS::TripleO::DeployedServer::ControlPlanePort: /usr/share/openstack-tripleo-heat-templates/deployed-server/deployed-neutron-port.yaml

  # Controller role port resources
  OS::TripleO::Controller::Ports::ExternalPort: /usr/share/openstack-tripleo-heat-templates/network/ports/deployed_external.yaml
  OS::TripleO::Controller::Ports::InternalApiPort: /usr/share/openstack-tripleo-heat-templates/network/ports/deployed_internal_api.yaml
  OS::TripleO::Controller::Ports::StorageMgmtPort: /usr/share/openstack-tripleo-heat-templates/network/ports/deployed_storage_mgmt.yaml
  OS::TripleO::Controller::Ports::StoragePort: /usr/share/openstack-tripleo-heat-templates/network/ports/deployed_storage.yaml
  OS::TripleO::Controller::Ports::TenantPort: /usr/share/openstack-tripleo-heat-templates/network/ports/deployed_tenant.yaml

  # Compute role port resources
  OS::TripleO::Compute::Ports::InternalApiPort: /usr/share/openstack-tripleo-heat-templates/network/ports/deployed_internal_api.yaml
  OS::TripleO::Compute::Ports::StoragePort: /usr/share/openstack-tripleo-heat-templates/network/ports/deployed_storage.yaml
  OS::TripleO::Compute::Ports::TenantPort: /usr/share/openstack-tripleo-heat-templates/network/ports/deployed_tenant.yaml

  # CephStorage role port resources
  OS::TripleO::CephStorage::Ports::StorageMgmtPort: /usr/share/openstack-tripleo-heat-templates/network/ports/deployed_storage_mgmt.yaml
  OS::TripleO::CephStorage::Ports::StoragePort: /usr/share/openstack-tripleo-heat-templates/network/ports/deployed_storage.yaml

parameter_defaults:
  NodePortMap: 1
    # Controller node parameters
    controller-00-rack01: 2
      ctlplane: 3
        ip_address: 192.168.24.201
        ip_address_uri: 192.168.24.201
        ip_subnet: 192.168.24.0/24
      external:
        ip_address: 10.0.0.201
        ip_address_uri: 10.0.0.201
        ip_subnet: 10.0.0.10/24
      internal_api:
        ip_address: 172.16.2.201
        ip_address_uri: 172.16.2.201
        ip_subnet: 172.16.2.10/24
      management:
        ip_address: 192.168.1.201
        ip_address_uri: 192.168.1.201
        ip_subnet: 192.168.1.10/24
      storage:
        ip_address: 172.16.1.201
        ip_address_uri: 172.16.1.201
        ip_subnet: 172.16.1.10/24
      storage_mgmt:
        ip_address: 172.16.3.201
        ip_address_uri: 172.16.3.201
        ip_subnet: 172.16.3.10/24
      tenant:
        ip_address: 172.16.0.201
        ip_address_uri: 172.16.0.201
        ip_subnet: 172.16.0.10/24
    ...

    # Compute node parameters
    compute-00-rack01:
      ctlplane:
        ip_address: 192.168.24.11
        ip_address_uri: 192.168.24.11
        ip_subnet: 192.168.24.0/24
      internal_api:
        ip_address: 172.16.2.11
        ip_address_uri: 172.16.2.11
        ip_subnet: 172.16.2.10/24
      storage:
        ip_address: 172.16.1.11
        ip_address_uri: 172.16.1.11
        ip_subnet: 172.16.1.10/24
      tenant:
        ip_address: 172.16.0.11
        ip_address_uri: 172.16.0.11
        ip_subnet: 172.16.0.10/24
    ...

    # Ceph node parameters
    ceph-00-rack01:
      ctlplane:
        ip_address: 192.168.24.101
        ip_address_uri: 192.168.24.101
        ip_subnet: 192.168.24.0/24
      storage:
        ip_address: 172.16.1.101
        ip_address_uri: 172.16.1.101
        ip_subnet: 172.16.1.10/24
      storage_mgmt:
        ip_address: 172.16.3.101
        ip_address_uri: 172.16.3.101
        ip_subnet: 172.16.3.10/24
    ...

  # Virtual IP address parameters
  ControlPlaneVipData:
    fixed_ips:
    - ip_address: 192.168.24.5
    name: control_virtual_ip
    network:
      tags: [192.168.24.0/24]
      subnets:
      - ip_version: 4
  VipPortMap
    external:
      ip_address: 10.0.0.100
      ip_address_uri: 10.0.0.100
      ip_subnet: 10.0.0.100/24
    internal_api:
      ip_address: 172.16.2.100
      ip_address_uri: 172.16.2.100
      ip_subnet: 172.16.2.100/24
    storage:
      ip_address: 172.16.1.100
      ip_address_uri: 172.16.1.100
      ip_subnet: 172.16.1.100/24
    storage_mgmt:
      ip_address: 172.16.3.100
      ip_address_uri: 172.16.3.100
      ip_subnet: 172.16.3.100/24

  RedisVirtualFixedIPs:
    - ip_address: 192.168.24.6
        use_neutron: false
1
NodePortMap 映射定义节点分配的名称。
2
节点的短主机名,格式为 < node_hostname>
3
节点的网络定义和 IP 分配。网络包括 ctlplaneexternalinternal_apimanagementstoragestorage_mgmt租户。IP 分配包括 ip_addressip_address_uriip_subnet
  • IPv4: ip_addressip_address_uri 应设置为相同的值。
  • IPv6:

    • ip_address :设置为没有括号的 IPv6 地址。
    • ip_address_uri :设置为方括号中的 IPv6 地址,例如 [2001:0db8:85a3:0000:0000:8a2e:0370:7334]

11.4.6. 为预置备节点使用单独网络

默认情况下,director 使用 Provisioning 网络作为 overcloud Control Plane。但是,如果此网络被隔离且不可路由,则节点在配置期间不能与 director 的内部 API 通信。在这种情况下,您可能需要为节点指定一个单独的网络,并进行配置,以便通过公共 API 与 director 通信。

对于此情境,有几个需要满足的要求:

本节中的示例使用了与主要情境不同的 IP 地址分配:

表 11.11. Provisioning 网络 IP 分配信息
节点名IP 地址或 FQDN

Director(内部 API)

192.168.24.1 (Provisioning 网络和 Control Plane)

Director(公共 API)

10.1.1.1 / director.example.com

overcloud 虚拟 IP

192.168.100.1

控制器 0

192.168.100.2

计算 0

192.168.100.3

以下章节为需要单独的 overcloud 节点网络的情境提供额外配置。

IP 地址分配

IP 分配方法类似于 第 11.4.5 节 “配置 control plane 网络”。但是,由于 Control Plane 可能无法从部署的服务器路由,因此您可以使用 NodePortMapControlPlaneVipDataVipPortMap 参数从您选择的 overcloud 节点子网中分配 IP 地址,包括访问 Control Plane 的虚拟 IP 地址。以下示例是来自 第 11.4.5 节 “配置 control plane 网络”deployed-ports.yaml 自定义环境文件的修改版本,它适用于此网络架构:

parameter_defaults:
  NodePortMap:
    controller-00-rack01
      ctlplane
        ip_address: 192.168.100.2
        ip_address_uri: 192.168.100.2
        ip_subnet: 192.168.100.0/24
...
    compute-00-rack01:
      ctlplane
        ip_address: 192.168.100.3
        ip_address_uri: 192.168.100.3
        ip_subnet: 192.168.100.0/24
...
  ControlPlaneVipData:
    fixed_ips:
    - ip_address: 192.168.100.1
    name: control_virtual_ip
    network:
      tags: [192.168.100.0/24]
    subnets:
    - ip_version: 4
  VipPortMap:
    external:
      ip_address: 10.0.0.100
      ip_address_uri: 10.0.0.100
      ip_subnet: 10.0.0.100/24
....
  RedisVirtualFixedIPs:1
    - ip_address: 192.168.100.10
      use_neutron: false
1
RedisVipPort 资源被映射至 network/ports/noop.yaml。由于默认 Redis VIP 地址来自 Control Plane,因此该映射是必要的。在这种情况下,使用 noop 来禁用这种 Control Plane 映射。

11.4.7. 映射预置备的节点主机名

配置预置备节点时,必须将基于 heat 的主机名映射到实际主机名,以便 ansible-playbook 能够到达可解析主机。请使用 HostnameMap 来映射这些值。

步骤

  1. 创建环境文件,例如 hostname-map.yaml,并包括 HostnameMap 参数和主机名映射。请遵循以下语法:

    parameter_defaults:
      HostnameMap:
        [HEAT HOSTNAME]: [ACTUAL HOSTNAME]
        [HEAT HOSTNAME]: [ACTUAL HOSTNAME]

    [HEAT HOSTNAME] 通常符合以下惯例:[STACK NAME]-[ROLE]-[INDEX]

    parameter_defaults:
      HostnameMap:
        overcloud-controller-0: controller-00-rack01
        overcloud-controller-1: controller-01-rack02
        overcloud-controller-2: controller-02-rack03
        overcloud-novacompute-0: compute-00-rack01
        overcloud-novacompute-1: compute-01-rack01
        overcloud-novacompute-2: compute-02-rack01
  2. 保存 hostname-map.yaml 文件。

11.4.8. 为预置备节点配置 Ceph Storage

在 undercloud 主机上完成以下步骤,为已部署的节点配置 Ceph。

流程

  1. 在 undercloud 主机上,创建环境变量 OVERCLOUD_HOSTS,并将该变量设置为您要用作 Ceph 客户端的 overcloud 主机的 IP 地址列表(以空格分隔):

    export OVERCLOUD_HOSTS="192.168.1.8 192.168.1.42"
  2. 默认的 overcloud 计划名称是 overcloud。如果使用其他名称,请创建一个环境变量 OVERCLOUD_PLAN 来存储您的自定义名称:

    export OVERCLOUD_PLAN="<custom-stack-name>"
    • <custom-stack-name> 替换为堆栈的名称。
  3. 运行 enable-ssh-admin.sh 脚本,以在 Ansible 可用于配置 Ceph 客户端的 overcloud 节点上配置用户:

    bash /usr/share/openstack-tripleo-heat-templates/deployed-server/scripts/enable-ssh-admin.sh

运行 openstack overcloud deploy 命令时,Ansible 配置您在 OVERCLOUD_HOSTS 变量中定义为 Ceph 客户端的主机。

11.4.9. 利用预置备节点创建 overcloud

overcloud 部署使用标准 CLI 方法。对于预置备的节点,该部署命令需要使用来自核心 heat 模板集的一些额外选项和环境文件:

  • --disable-validations - 使用此选项禁止对未用于预置备基础架构的服务执行基本的 CLI 验证功能。如果不禁止这些验证,部署将失败。
  • environments/deployed-server-environment.yaml - 包含此环境文件以创建和配置预置备基础架构。这种环境文件用 OS::Heat::DeployedServer 资源代替 OS::Nova::Server 资源。

以下命令是示例 overcloud 部署命令,且环境文件特定于预置备的架构:

$ source ~/stackrc
(undercloud)$ openstack overcloud deploy \
  --disable-validations \
  -e /usr/share/openstack-tripleo-heat-templates/environments/deployed-server-environment.yaml \
  -e /home/stack/templates/deployed-ports.yaml \
  -e /home/stack/templates/hostname-map.yaml \
  --overcloud-ssh-user stack \
  --overcloud-ssh-key ~/.ssh/id_rsa \
  <OTHER OPTIONS>

--overcloud-ssh-user--overcloud-ssh-key 选项用于在配置阶段通过 SSH 连接每个 overcloud 节点,创建初始 tripleo-admin 用户,以及将 SSH 密钥注入 /home/tripleo-admin/.ssh/authorized_keys。要注入 SSH 密钥,请为初始 SSH 连接指定包含 --overcloud-ssh-user--overcloud-ssh-key(默认为 ~/.ssh/id_rsa)的凭证。为了限制暴露使用 --overcloud-ssh-key 选项指定的私钥,director 不会将该密钥传递给任何 API 服务,如 heat,而只有 director openstack overcloud deploy 命令使用此密钥为 tripleo-admin 用户启用访问权限。

11.4.10. 访问 overcloud

director 生成凭据文件,其中包含从 undercloud 操作 overcloud 所需的凭据。director 将此文件保存为 stack 用户主目录的 overcloudrc 文件。

流程

  1. 获取 overcloudrc 文件:

    (undercloud)$ source ~/overcloudrc

    命令提示符更改以表示您正在访问 overcloud:

    (overcloud)$
  2. 要返回与 undercloud 交互,请提供 stackrc 文件:

    (overcloud)$ source ~/stackrc
    (undercloud)$

    命令提示符更改以表示您正在访问 undercloud:

    (undercloud)$

11.4.11. 扩展预置备节点

扩展预置备节点的流程与 第 19 章 扩展 overcloud 节点 中的标准扩展流程类似。但是,添加新预置备节点的流程却不相同,这是因为预置备节点不从 OpenStack Bare Metal (ironic) 和 OpenStack Compute (nova) 使用标准注册和管理流程。

扩展预置备节点

使用预置备节点扩展 overcloud 时,必须在每个节点上配置编配代理以对应 director 的节点计数。

执行以下操作以扩展 overcloud 节点:

  1. 根据 第 11.4.1 节 “预置备节点要求” 准备新预置备节点。
  2. 扩展节点。更多信息请参阅 第 19 章 扩展 overcloud 节点
  3. 在执行部署命令后,等待 director 创建新的节点资源并启动配置。

缩减预置备节点

使用预置备节点缩减 overcloud 时,请按照 第 19 章 扩展 overcloud 节点 中的缩减说明操作。

在缩减操作中,您可以为 OSP 置备或预置备节点使用主机名。您也可以将 UUID 用于 OSP 置备的节点。但是,预先提供的节点没有 UUID,因此您始终使用主机名。将 hostname 或 UUID 值传递给 openstack overcloud node delete 命令。

流程

  1. 找出您要删除的节点的名称。

    $ openstack stack resource list overcloud -n5 --filter type=OS::TripleO::ComputeDeployedServerServer
  2. stack_name 列中对应的节点名称传递给 openstack overcloud node delete 命令:

    $ openstack overcloud node delete --stack <overcloud> <stack>
    • <overcloud> 替换为 overcloud 堆栈的名称或 UUID。
    • 将 &lt ;stack_name > 替换为您要删除的节点的名称。您可以在 openstack overcloud node delete 命令中包含多个节点名称。
  3. 确保 openstack overcloud node delete 命令已运行完:

    $ openstack stack list

    当删除操作完成后,overcloud 堆栈的状态会显示 UPDATE_COMPLETE

从堆栈中移除 overcloud 节点之后,关闭这些节点。在标准部署中,director 上的裸机服务控制此功能。但是,如果使用预置备节点,您必须手动关闭这些节点,或使用每个物理系统的电源管理控制。从堆栈中移除节点之后,如果您不关闭它们,它们可能保持运行,并作为 overcloud 环境的组成部分重新连接。

关闭移除的节点后,将其重新置备为基础操作系统配置,以免它们未来意外加入 overcloud。

注意

在将之前已经从 overcloud 移除的节点重新部署到新的基础操作系统之前,不要尝试再次使用它们。缩减流程只从 overcloud 堆栈移除节点,不会卸载任何软件包。

移除预置备 overcloud

要删除使用预置备节点的整个 overcloud,请参阅 第 15.7 节 “删除 overcloud 堆栈” 获取标准 overcloud 移除过程。移除 overcloud 后,关闭所有节点并将其重新置备为基础操作系统配置。

注意

在将之前已经从 overcloud 移除的节点重新部署到新的基础操作系统之前,不要尝试再次使用它们。移除流程只删除 overcloud 堆栈,不会卸载任何软件包。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.