6.4. 将 worker 节点添加到内部集群中


对于内部集群,您可以使用 OpenShift CLI (oc) 添加 worker 节点来生成 ISO 镜像,然后可用于引导目标集群中的一个或多个节点。无论如何安装集群,都可以使用此过程。

您可以在使用更复杂的配置(如静态网络配置)自定义每个节点时添加一个或多个节点,或者只能指定每个节点的 MAC 地址。任何在 ISO 生成期间未指定的配置都会从目标集群检索并应用到新节点。

在引导 ISO 镜像时也会执行 preflight 验证检查,以便在尝试引导每个节点前通知会导致失败的问题。

6.4.1. 支持的平台

以下平台支持使用此方法添加节点:

  • baremetal
  • vsphere
  • none
  • external

6.4.2. 在集群中添加节点

您可以使用以下两种方式添加节点:

  • 使用配置文件添加一个或多个节点。

    在运行 oc adm node-image create 命令前,您可以在 nodes-config.yaml 文件中指定一个或多个节点的配置。如果您要一次添加多个节点,或者指定了复杂的配置,这非常有用。

  • 仅使用命令标志添加单一节点。

    您可以通过运行 oc adm node-image create 命令添加节点,并使用标志来指定您的配置。如果您只想一次添加单个节点,且只有一个简单的配置来为该节点指定,这非常有用。

6.4.2.1. 使用配置文件添加一个或多个节点

您可以使用 nodes-config.yaml 文件在集群中添加一个或多个节点,以指定新节点的配置。

先决条件

  • 已安装 OpenShift CLI (oc)
  • 您有一个与目标集群的活动连接
  • 您有一个 kubeconfig 文件可用

流程

  1. 创建一个新的 YAML 文件,其中包含您要添加的节点的配置,并命名为 nodes-config.yaml。您必须为每个新节点提供 MAC 地址。

    在以下示例中,使用初始静态网络配置描述了两个新 worker:

    nodes-config.yaml 文件示例

    hosts:
    - hostname: extra-worker-1
      rootDeviceHints:
       deviceName: /dev/sda
      interfaces:
       - macAddress: 00:00:00:00:00:00
         name: eth0
      networkConfig:
       interfaces:
         - name: eth0
           type: ethernet
           state: up
           mac-address: 00:00:00:00:00:00
           ipv4:
             enabled: true
             address:
               - ip: 192.168.122.2
                 prefix-length: 23
             dhcp: false
    - hostname: extra-worker-2
      rootDeviceHints:
       deviceName: /dev/sda
      interfaces:
       - macAddress: 00:00:00:00:00:02
         name: eth0
      networkConfig:
       interfaces:
         - name: eth0
           type: ethernet
           state: up
           mac-address: 00:00:00:00:00:02
           ipv4:
             enabled: true
             address:
               - ip: 192.168.122.3
                 prefix-length: 23
             dhcp: false
    Copy to Clipboard Toggle word wrap

  2. 运行以下命令来生成 ISO 镜像:

    $ oc adm node-image create nodes-config.yaml
    Copy to Clipboard Toggle word wrap
    重要

    要让 create 命令获取与目标集群版本匹配的发行镜像,您必须指定一个有效的 pull secret。您可以使用 -registry-config 标志或预先设置 REGISTRY_AUTH_FILE 环境变量来指定 pull secret。

    注意

    如果没有使用 --dir 标志指定 nodes-config.yaml 文件的目录,该工具会在当前目录中查找该文件。

  3. 验证 asset 目录中是否存在一个新的 node.<arch>.iso 文件。资产目录是您的当前目录,除非您在创建 ISO 镜像时指定了不同的目录。
  4. 使用生成的 ISO 镜像引导所选节点。
  5. 运行以下命令跟踪节点创建的进度:

    $ oc adm node-image monitor --ip-addresses <ip_addresses>
    Copy to Clipboard Toggle word wrap

    其中:

    <ip_addresses>

    指定要添加的节点的 IP 地址列表。

    注意

    如果您的节点没有反向 DNS 条目,oc adm node-image monitor 命令会跳过检查待处理的证书签名请求 (CSR)。如果跳过这些检查,则必须通过运行 oc get csr 命令手动检查 CSR。

  6. 为每个 CSR 运行以下命令批准 CSR:

    $ oc adm certificate approve <csr_name>
    Copy to Clipboard Toggle word wrap

6.4.2.2. 使用命令标记添加节点

您可以使用命令标志在集群中添加单一节点,以指定新节点的配置。

先决条件

  • 已安装 OpenShift CLI (oc)
  • 您有一个与目标集群的活动连接
  • 您有一个 kubeconfig 文件可用

流程

  1. 运行以下命令来生成 ISO 镜像。必须使用命令标志来指定 MAC 地址。有关可用于这个命令的更多标记,请参阅"集群配置参考"部分。

    $ oc adm node-image create --mac-address=<mac_address>
    Copy to Clipboard Toggle word wrap

    其中:

    <mac_address>
    指定要添加的节点的 MAC 地址。
    重要

    要让 create 命令获取与目标集群版本匹配的发行镜像,您必须指定一个有效的 pull secret。您可以使用 -registry-config 标志或预先设置 REGISTRY_AUTH_FILE 环境变量来指定 pull secret。

    提示

    要查看可用于配置节点的额外标记,请运行以下 oc adm node-image create --help 命令。

  2. 验证 asset 目录中是否存在一个新的 node.<arch>.iso 文件。资产目录是您的当前目录,除非您在创建 ISO 镜像时指定了不同的目录。
  3. 使用生成的 ISO 镜像引导节点。
  4. 运行以下命令跟踪节点创建的进度:

    $ oc adm node-image monitor --ip-addresses <ip_address>
    Copy to Clipboard Toggle word wrap

    其中:

    <ip_address>
    指定要添加的节点的 IP 地址列表。
    注意

    如果您的节点没有反向 DNS 条目,oc adm node-image monitor 命令会跳过检查待处理的证书签名请求 (CSR)。如果跳过这些检查,则必须通过运行 oc get csr 命令手动检查 CSR。

  5. 为每个 CSR 运行以下命令批准待处理的 CSR:

    $ oc adm certificate approve <csr_name>
    Copy to Clipboard Toggle word wrap

6.4.3. 集群配置参考

在创建 ISO 镜像时,配置从目标集群检索,并应用到新节点。任何集群的配置都会应用到节点,除非您覆盖 nodes-config.yaml 文件中的配置,或您添加到 oc adm node-image create 命令的任何标记。

6.4.3.1. YAML 文件参数

下表中描述了可在 nodes-config.yaml 文件中指定的配置参数:

Expand
表 6.2. nodes-config.yaml 参数
参数描述
hosts:
Copy to Clipboard Toggle word wrap

主机配置。

主机配置对象的数组。

hosts:
  hostname:
Copy to Clipboard Toggle word wrap

主机名.覆盖从动态主机配置协议(DHCP)或反向 DNS 查找中获取的主机名。每个主机必须具有由这些方法提供的唯一主机名,尽管通过此参数配置主机名是可选的。

字符串.

hosts:
  interfaces:
Copy to Clipboard Toggle word wrap

为主机上的接口提供名称和 MAC 地址映射表。如果在 nodes-config.yaml 文件中提供了 NetworkConfig 部分,则必须包括此表,值必须与 NetworkConfig 部分中提供的映射匹配。

主机配置对象的数组。

hosts:
  interfaces:
    name:
Copy to Clipboard Toggle word wrap

主机上接口名称。

字符串.

hosts:
  interfaces:
    macAddress:
Copy to Clipboard Toggle word wrap

主机上接口的 MAC 地址。

一个 MAC 地址,如以下示例:00-B0-D0-63-C2-26

hosts:
  rootDeviceHints:
Copy to Clipboard Toggle word wrap

启用将 Red Hat Enterprise Linux CoreOS (RHCOS)镜像置备到特定设备。node-adding 工具会按照发现设备的顺序检查设备,并将发现的值与 hint 值进行比较。它使用第一个与 hint 值匹配的发现设备。

键值对字典。如需更多信息,请参阅"为 OpenShift 安装设置环境"页面中的"Root 设备提示"。

hosts:
  rootDeviceHints:
    deviceName:
Copy to Clipboard Toggle word wrap

RHCOS 镜像置备为的设备的名称。

字符串.

hosts:
  networkConfig:
Copy to Clipboard Toggle word wrap

主机网络定义。配置必须与 nmstate 文档中定义的 Host Network Management API 匹配。

主机网络配置对象的字典。

cpuArchitecture
Copy to Clipboard Toggle word wrap

可选。指定您要添加的节点架构。如果需要,此参数允许您覆盖集群中的默认值。

字符串.

sshKey
Copy to Clipboard Toggle word wrap

可选。包含 SSH 密钥的文件,用于验证对集群机器的访问。

字符串.

6.4.3.2. 命令标志选项

您可以在 oc adm node-image create 命令中使用命令标志来配置您要创建的节点。

下表描述了没有仅限于单节点用例的命令标记:

Expand
表 6.3. 常规命令标记
标记描述

--certificate-authority

与受管容器镜像 registry 通信时使用的证书颁发机构捆绑包的路径。如果使用 --insecure 标志,则忽略这个标志。

字符串

--dir

如果提供,则包含配置文件的路径。此路径也用于存储生成的工件。

字符串

--insecure

允许通过 HTTP 对 registry 进行推送和拉取操作。

布尔值

-o, --output-name

生成的输出镜像的名称。

字符串

-a, --registry-config

到 registry 凭证的路径。或者,您可以指定 REGISTRY_AUTH_FILE 环境变量。默认路径为 ${XDG_RUNTIME_DIR}/containers/auth.json, /run/containers/${UID}/auth.json, ${XDG_CONFIG_HOME}/containers/auth.json, ${DOCKER_CONFIG}, ~/.docker/config.json, ~/.dockercfg.可以通过已弃用的 REGISTRY_AUTH_PREFERENCE 环境变量更改为"docker"值来更改顺序,以便优先选择使用 Podman 的 Docker 凭据。

字符串

--skip-verification

用于跳过验证检索内容的完整性的选项。不建议这样做,但在从旧镜像 registry 导入镜像时可能需要这样做。只有在 registry 已知可以被信任时才绕过验证。

布尔值

下表描述了仅在创建单一节点时使用的命令标记:

Expand
表 6.4. 仅限单节点命令的标记
标记描述

-c, --cpu-architecture

用于安装节点的 CPU 架构。此标志可用于仅创建单一节点,并且必须定义 --mac-address 标志。

字符串

--hostname

为节点设置的主机名。此标志可用于仅创建单一节点,并且必须定义 --mac-address 标志。

字符串

-m, --mac-address

用于标识要应用配置的主机的 MAC 地址。此标志可用于仅创建单一节点,并且必须定义 --mac-address 标志。

字符串

--network-config-path

包含要应用到节点的 NMState 配置的 YAML 文件的路径。此标志可用于仅创建单一节点,并且必须定义 --mac-address 标志。

字符串

--root-device-hint

用于指定镜像根文件系统存储位置的提示。接受的格式是 <hint_name>:<value>。此标志可用于仅创建单一节点,并且必须定义 --mac-address 标志。

字符串

-k, --ssh-key-path

用于访问节点的 SSH 密钥的路径。此标志可用于仅创建单一节点,并且必须定义 --mac-address 标志。

字符串

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat