第 5 章 扩展集群


部署裸机集群后,您可以使用以下步骤扩展 worker 节点的数量。确保每个 worker 节点都满足先决条件。

注意

使用 RedFish Virtual Media 扩展集群需要满足最低固件要求。有关使用 RedFish Virtual Media 扩展集群的详情,请参阅先决条件部分中的使用虚拟介质安装的固件要求

5.1. 准备裸机节点

要扩展集群,必须为节点提供相关 IP 地址。这可以通过静态配置,或使用 DHCP (动态主机配置协议)服务器来完成。在使用 DHCP 服务器扩展集群时,每个节点都必须有 DHCP 保留。

保留 IP 地址,以便其成为静态 IP 地址

有些管理员更喜欢使用静态 IP 地址,以便在没有 DHCP 服务器时每个节点的 IP 地址保持恒定状态。要使用 NMState 配置静态 IP 地址,请参阅 install-config.yaml 文件中的 "可选:配置主机网络接口,以了解更多详细信息。

准备裸机节点需要从 provisioner 节点执行以下步骤。

流程

  1. 获取 oc 二进制文件:

    $ curl -s https://mirror.openshift.com/pub/openshift-v4/clients/ocp/$VERSION/openshift-client-linux-$VERSION.tar.gz | tar zxvf - oc
    Copy to Clipboard Toggle word wrap
    $ sudo cp oc /usr/local/bin
    Copy to Clipboard Toggle word wrap
  2. 使用基板管理控制器 (BMC) 关闭裸机节点,并确保它已关闭。
  3. 检索裸机节点基板管理控制器的用户名和密码。然后,从用户名和密码创建 base64 字符串:

    $ echo -ne "root" | base64
    Copy to Clipboard Toggle word wrap
    $ echo -ne "password" | base64
    Copy to Clipboard Toggle word wrap
  4. 为裸机节点创建配置文件。根据您是否使用静态配置还是 DHCP 服务器,请使用以下示例 bmh.yaml 文件,替换 YAML 中的值以匹配您的环境:

    $ vim bmh.yaml
    Copy to Clipboard Toggle word wrap
    • 静态配置 bmh.yaml

      ---
      apiVersion: v1 
      1
      
      kind: Secret
      metadata:
       name: openshift-worker-<num>-network-config-secret 
      2
      
       namespace: openshift-machine-api
      type: Opaque
      stringData:
       nmstate: | 
      3
      
        interfaces: 
      4
      
        - name: <nic1_name> 
      5
      
          type: ethernet
          state: up
          ipv4:
            address:
            - ip: <ip_address> 
      6
      
              prefix-length: 24
            enabled: true
        dns-resolver:
          config:
            server:
            - <dns_ip_address> 
      7
      
        routes:
          config:
          - destination: 0.0.0.0/0
            next-hop-address: <next_hop_ip_address> 
      8
      
            next-hop-interface: <next_hop_nic1_name> 
      9
      
      ---
      apiVersion: v1
      kind: Secret
      metadata:
        name: openshift-worker-<num>-bmc-secret 
      10
      
        namespace: openshift-machine-api
      type: Opaque
      data:
        username: <base64_of_uid> 
      11
      
        password: <base64_of_pwd> 
      12
      
      ---
      apiVersion: metal3.io/v1alpha1
      kind: BareMetalHost
      metadata:
        name: openshift-worker-<num> 
      13
      
        namespace: openshift-machine-api
      spec:
        online: True
        bootMACAddress: <nic1_mac_address> 
      14
      
        bmc:
          address: <protocol>://<bmc_url> 
      15
      
          credentialsName: openshift-worker-<num>-bmc-secret 
      16
      
          disableCertificateVerification: True 
      17
      
          username: <bmc_username> 
      18
      
          password: <bmc_password> 
      19
      
        rootDeviceHints:
          deviceName: <root_device_hint> 
      20
      
        preprovisioningNetworkDataName: openshift-worker-<num>-network-config-secret 
      21
      Copy to Clipboard Toggle word wrap
      1
      要为新创建的节点配置网络接口,请指定包含网络配置的 secret 的名称。按照 nmstate 语法为节点定义网络配置。有关配置 NMState 语法的详情,请参阅"可选:在 install-config.yaml 文件中配置主机网络接口"。
      2 10 13 16
      namecredentialsName 字段和 preprovisioningNetworkDataName 字段中,使用裸机节点的 worker 数量替换 <num>
      3
      添加 NMState YAML 语法来配置主机接口。
      4
      可选:如果您使用 nmstate 配置网络接口,并且您要禁用接口,请将 state: 设置为 enabled: false,如下所示:
      ---
         interfaces:
         - name: <nic_name>
           type: ethernet
           state: up
           ipv4:
             enabled: false
           ipv6:
             enabled: false
      Copy to Clipboard Toggle word wrap
      5 6 7 8 9
      使用适当的值替换 <nic1_name>, <ip_address>, <dns_ip_address>, <next_hop_ip_address><next_hop_nic1_name>
      11 12
      <base64_of_uid><base64_of_pwd> 替换为用户名和密码的 base64 字符串。
      14
      <nic1_mac_address> 替换为裸机节点第一个 NIC 的 MAC 地址。如需了解更多 BMC 配置选项,请参阅"BMC 寻址"部分。
      15
      <protocol> 替换为 BMC 协议,如 IPMI、RedFish 或其他协议。将 <bmc_url> 替换为裸机节点基板管理控制器的 URL。
      17
      要跳过证书验证,将 disableCertificateVerification 设为 true。
      18 19
      <bmc_username><bmc_password> 替换为 BMC 用户名和密码的字符串。
      20
      可选:如果您指定了 root 设备提示,将 <root_device_hint> 替换为设备路径。
      21
      可选: 如果您为新创建的节点配置了网络接口,请在 BareMetalHost CR 的 preprovisioningNetworkDataName 中提供网络配置 secret 名称。
    • DHCP 配置 bmh.yaml

      ---
      apiVersion: v1
      kind: Secret
      metadata:
        name: openshift-worker-<num>-bmc-secret 
      1
      
        namespace: openshift-machine-api
      type: Opaque
      data:
        username: <base64_of_uid> 
      2
      
        password: <base64_of_pwd> 
      3
      
      ---
      apiVersion: metal3.io/v1alpha1
      kind: BareMetalHost
      metadata:
        name: openshift-worker-<num> 
      4
      
        namespace: openshift-machine-api
      spec:
        online: True
        bootMACAddress: <nic1_mac_address> 
      5
      
        bmc:
          address: <protocol>://<bmc_url> 
      6
      
          credentialsName: openshift-worker-<num>-bmc-secret 
      7
      
          disableCertificateVerification: True 
      8
      
          username: <bmc_username> 
      9
      
          password: <bmc_password> 
      10
      
        rootDeviceHints:
          deviceName: <root_device_hint> 
      11
      
        preprovisioningNetworkDataName: openshift-worker-<num>-network-config-secret 
      12
      Copy to Clipboard Toggle word wrap
      1 4 7
      namecredentialsName 字段和 preprovisioningNetworkDataName 字段中,使用裸机节点的 worker 数量替换 <num>
      2 3
      <base64_of_uid><base64_of_pwd> 替换为用户名和密码的 base64 字符串。
      5
      <nic1_mac_address> 替换为裸机节点第一个 NIC 的 MAC 地址。如需了解更多 BMC 配置选项,请参阅"BMC 寻址"部分。
      6
      <protocol> 替换为 BMC 协议,如 IPMI、RedFish 或其他协议。将 <bmc_url> 替换为裸机节点基板管理控制器的 URL。
      8
      要跳过证书验证,将 disableCertificateVerification 设为 true。
      9 10
      <bmc_username><bmc_password> 替换为 BMC 用户名和密码的字符串。
      11
      可选:如果您指定了 root 设备提示,将 <root_device_hint> 替换为设备路径。
      12
      可选: 如果您为新创建的节点配置了网络接口,请在 BareMetalHost CR 的 preprovisioningNetworkDataName 中提供网络配置 secret 名称。
    注意

    如果现有裸机节点的 MAC 地址与您试图置备的裸机主机的 MAC 地址匹配,则 Ironic 安装将失败。如果主机注册、检查、清理或其他 Ironic 步骤失败,Bare Metal Operator 会持续重试安装。如需更多信息,请参阅"诊断主机重复的 MAC 地址"。

  5. 创建裸机节点:

    $ oc -n openshift-machine-api create -f bmh.yaml
    Copy to Clipboard Toggle word wrap

    输出示例

    secret/openshift-worker-<num>-network-config-secret created
    secret/openshift-worker-<num>-bmc-secret created
    baremetalhost.metal3.io/openshift-worker-<num> created
    Copy to Clipboard Toggle word wrap

    其中 <num> 是 worker 号。

  6. 启动并检查裸机节点:

    $ oc -n openshift-machine-api get bmh openshift-worker-<num>
    Copy to Clipboard Toggle word wrap

    其中 <num> 是 worker 节点号。

    输出示例

    NAME                    STATE       CONSUMER   ONLINE   ERROR
    openshift-worker-<num>  available              true
    Copy to Clipboard Toggle word wrap

    注意

    要允许 worker 节点加入集群,请将 machineset 对象扩展到 BareMetalHost 对象的数量。您可以手动或自动缩放节点。要自动扩展节点,请为 machineset 使用 metal3.io/autoscale-to-hosts 注解。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat