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 文件可用
流程
创建一个新的 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
运行以下命令来生成 ISO 镜像:
$ oc adm node-image create nodes-config.yaml
重要要让
create
命令获取与目标集群版本匹配的发行镜像,您必须指定一个有效的 pull secret。您可以使用-registry-config
标志或预先设置REGISTRY_AUTH_FILE
环境变量来指定 pull secret。注意如果没有使用
--dir
标志指定nodes-config.yaml
文件的目录,该工具会在当前目录中查找该文件。-
验证 asset 目录中是否存在一个新的
node.<arch>.iso
文件。资产目录是您的当前目录,除非您在创建 ISO 镜像时指定了不同的目录。 - 使用生成的 ISO 镜像引导所选节点。
运行以下命令跟踪节点创建的进度:
$ oc adm node-image monitor --ip-addresses <ip_addresses>
其中:
<ip_addresses>
指定要添加的节点的 IP 地址列表。
注意如果您的节点没有反向 DNS 条目,
oc adm node-image monitor
命令会跳过检查待处理的证书签名请求 (CSR)。如果跳过这些检查,则必须通过运行oc get csr
命令手动检查 CSR。
为每个 CSR 运行以下命令批准 CSR:
$ oc adm certificate approve <csr_name>
6.4.2.2. 使用命令标记添加节点
您可以使用命令标志在集群中添加单一节点,以指定新节点的配置。
先决条件
-
已安装 OpenShift CLI (
oc
) - 您有一个与目标集群的活动连接
- 您有一个 kubeconfig 文件可用
流程
运行以下命令来生成 ISO 镜像。必须使用命令标志来指定 MAC 地址。有关可用于这个命令的更多标记,请参阅"集群配置参考"部分。
$ oc adm node-image create --mac-address=<mac_address>
其中:
<mac_address>
- 指定要添加的节点的 MAC 地址。
重要要让
create
命令获取与目标集群版本匹配的发行镜像,您必须指定一个有效的 pull secret。您可以使用-registry-config
标志或预先设置REGISTRY_AUTH_FILE
环境变量来指定 pull secret。提示要查看可用于配置节点的额外标记,请运行以下
oc adm node-image create --help
命令。-
验证 asset 目录中是否存在一个新的
node.<arch>.iso
文件。资产目录是您的当前目录,除非您在创建 ISO 镜像时指定了不同的目录。 - 使用生成的 ISO 镜像引导节点。
运行以下命令跟踪节点创建的进度:
$ oc adm node-image monitor --ip-addresses <ip_address>
其中:
<ip_address>
- 指定要添加的节点的 IP 地址列表。
注意如果您的节点没有反向 DNS 条目,
oc adm node-image monitor
命令会跳过检查待处理的证书签名请求 (CSR)。如果跳过这些检查,则必须通过运行oc get csr
命令手动检查 CSR。为每个 CSR 运行以下命令批准待处理的 CSR:
$ oc adm certificate approve <csr_name>
6.4.3. 集群配置参考
在创建 ISO 镜像时,配置从目标集群检索,并应用到新节点。任何集群的配置都会应用到节点,除非您覆盖 nodes-config.yaml
文件中的配置,或您添加到 oc adm node-image create
命令的任何标记。
6.4.3.1. YAML 文件参数
下表中描述了可在 nodes-config.yaml
文件中指定的配置参数:
参数 | 描述 | 值 |
---|---|---|
hosts: | 主机配置。 | 主机配置对象的数组。 |
hosts: hostname: | 主机名.覆盖从动态主机配置协议(DHCP)或反向 DNS 查找中获取的主机名。每个主机必须具有由这些方法提供的唯一主机名,尽管通过此参数配置主机名是可选的。 | 字符串. |
hosts: interfaces: |
为主机上的接口提供名称和 MAC 地址映射表。如果在 | 主机配置对象的数组。 |
hosts: interfaces: name: | 主机上接口名称。 | 字符串. |
hosts: interfaces: macAddress: | 主机上接口的 MAC 地址。 |
一个 MAC 地址,如以下示例: |
hosts: rootDeviceHints: | 启用将 Red Hat Enterprise Linux CoreOS (RHCOS)镜像置备到特定设备。node-adding 工具会按照发现设备的顺序检查设备,并将发现的值与 hint 值进行比较。它使用第一个与 hint 值匹配的发现设备。 | 键值对字典。如需更多信息,请参阅"为 OpenShift 安装设置环境"页面中的"Root 设备提示"。 |
hosts: rootDeviceHints: deviceName: | RHCOS 镜像置备为的设备的名称。 | 字符串. |
hosts: networkConfig: | 主机网络定义。配置必须与 nmstate 文档中定义的 Host Network Management API 匹配。 | 主机网络配置对象的字典。 |
cpuArchitecture | 可选。指定您要添加的节点架构。如果需要,此参数允许您覆盖集群中的默认值。 | 字符串. |
sshKey | 可选。包含 SSH 密钥的文件,用于验证对集群机器的访问。 | 字符串. |
6.4.3.2. 命令标志选项
您可以在 oc adm node-image create
命令中使用命令标志来配置您要创建的节点。
下表描述了没有仅限于单节点用例的命令标记:
标记 | 描述 | 值 |
---|---|---|
|
与受管容器镜像 registry 通信时使用的证书颁发机构捆绑包的路径。如果使用 | 字符串 |
| 如果提供,则包含配置文件的路径。此路径也用于存储生成的工件。 | 字符串 |
| 允许通过 HTTP 对 registry 进行推送和拉取操作。 | 布尔值 |
| 生成的输出镜像的名称。 | 字符串 |
|
到 registry 凭证的路径。或者,您可以指定 | 字符串 |
| 用于跳过验证检索内容的完整性的选项。不建议这样做,但在从旧镜像 registry 导入镜像时可能需要这样做。只有在 registry 已知可以被信任时才绕过验证。 | 布尔值 |
下表描述了仅在创建单一节点时使用的命令标记:
标记 | 描述 | 值 |
---|---|---|
|
用于安装节点的 CPU 架构。此标志可用于仅创建单一节点,并且必须定义 | 字符串 |
|
为节点设置的主机名。此标志可用于仅创建单一节点,并且必须定义 | 字符串 |
|
用于标识要应用配置的主机的 MAC 地址。此标志可用于仅创建单一节点,并且必须定义 | 字符串 |
|
包含要应用到节点的 NMState 配置的 YAML 文件的路径。此标志可用于仅创建单一节点,并且必须定义 | 字符串 |
|
用于指定镜像根文件系统存储位置的提示。接受的格式是 | 字符串 |
|
用于访问节点的 SSH 密钥的路径。此标志可用于仅创建单一节点,并且必须定义 | 字符串 |
其他资源