成功部署安装程序预配的集群后,请考虑以下安装后步骤。
OpenShift Container Platform 在集群节点上安装chrony
网络时间协议 (NTP) 服务。成功部署后,请使用以下步骤在控制平面节点上配置 NTP 服务器,并将计算节点配置为控制平面节点的 NTP 客户端。
OpenShift Container Platform 节点必须就日期和时间达成一致才能正常运行。当计算节点从控制平面节点上的 NTP 服务器检索日期和时间时,它允许安装和操作未连接到可路由网络且因此无法访问更高层 NTP 服务器的集群。
使用以下命令在安装主机上安装 Butane
$ sudo dnf -y install butane
创建一个 Butane 配置文件,99-master-chrony-conf-override.bu
,其中包含控制平面节点的chrony.conf
文件的内容。
有关 Butane 的信息,请参见“使用 Butane 创建机器配置”。 |
variant: openshift
version: 4.17.0
metadata:
name: 99-master-chrony-conf-override
labels:
machineconfiguration.openshift.io/role: master
storage:
files:
- path: /etc/chrony.conf
mode: 0644
overwrite: true
contents:
inline: |
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (https://www.pool.ntp.org/join.html).
# The Machine Config Operator manages this file
server openshift-master-0.<cluster-name>.<domain> iburst (1)
server openshift-master-1.<cluster-name>.<domain> iburst
server openshift-master-2.<cluster-name>.<domain> iburst
stratumweight 0
driftfile /var/lib/chrony/drift
rtcsync
makestep 10 3
bindcmdaddress 127.0.0.1
bindcmdaddress ::1
keyfile /etc/chrony.keys
commandkey 1
generatecommandkey
noclientlog
logchange 0.5
logdir /var/log/chrony
# Configure the control plane nodes to serve as local NTP servers
# for all compute nodes, even if they are not in sync with an
# upstream NTP server.
# Allow NTP client access from the local network.
allow all
# Serve time even if not synchronized to a time source.
local stratum 3 orphan
1 | 必须将<cluster-name> 替换为集群的名称,并将<domain> 替换为完全限定域名。 |
使用 Butane 生成一个MachineConfig
对象文件,99-master-chrony-conf-override.yaml
,其中包含要传递到控制平面节点的配置。
$ butane 99-master-chrony-conf-override.bu -o 99-master-chrony-conf-override.yaml
创建一个 Butane 配置文件,99-worker-chrony-conf-override.bu
,其中包含引用控制平面节点上的 NTP 服务器的计算节点的chrony.conf
文件的内容。
variant: openshift
version: 4.17.0
metadata:
name: 99-worker-chrony-conf-override
labels:
machineconfiguration.openshift.io/role: worker
storage:
files:
- path: /etc/chrony.conf
mode: 0644
overwrite: true
contents:
inline: |
# The Machine Config Operator manages this file.
server openshift-master-0.<cluster-name>.<domain> iburst (1)
server openshift-master-1.<cluster-name>.<domain> iburst
server openshift-master-2.<cluster-name>.<domain> iburst
stratumweight 0
driftfile /var/lib/chrony/drift
rtcsync
makestep 10 3
bindcmdaddress 127.0.0.1
bindcmdaddress ::1
keyfile /etc/chrony.keys
commandkey 1
generatecommandkey
noclientlog
logchange 0.5
logdir /var/log/chrony
1 | 必须将<cluster-name> 替换为集群的名称,并将<domain> 替换为完全限定域名。 |
使用 Butane 生成一个MachineConfig
对象文件,99-worker-chrony-conf-override.yaml
,其中包含要传递到工作节点的配置。
$ butane 99-worker-chrony-conf-override.bu -o 99-worker-chrony-conf-override.yaml
将99-master-chrony-conf-override.yaml
策略应用于控制平面节点。
$ oc apply -f 99-master-chrony-conf-override.yaml
machineconfig.machineconfiguration.openshift.io/99-master-chrony-conf-override created
将99-worker-chrony-conf-override.yaml
策略应用于计算节点。
$ oc apply -f 99-worker-chrony-conf-override.yaml
machineconfig.machineconfiguration.openshift.io/99-worker-chrony-conf-override created
检查已应用的 NTP 设置的状态。
$ oc describe machineconfigpool
裸机集群的辅助安装程序和安装程序预配安装提供了在没有provisioning
网络的情况下部署集群的功能。此功能适用于概念验证集群或在每个节点的基板管理控制器通过baremetal
网络可路由时专门使用 Redfish 虚拟介质进行部署的场景。
安装后,您可以使用集群裸机操作符 (CBO) 启用provisioning
网络。
必须存在连接到所有工作节点和控制平面节点的专用物理网络。
必须隔离本机未标记的物理网络。
当provisioningNetwork
配置设置为Managed
时,网络不能有DHCP服务器。
在OpenShift Container Platform 4.10中,您可以省略provisioningInterface
设置以使用bootMACAddress
配置设置。
设置provisioningInterface
设置时,首先确定集群节点的配置接口名称。例如,eth0
或eno1
。
在集群节点的provisioning
网络接口上启用预启动执行环境 (PXE)。
检索provisioning
网络的当前状态并将其保存到配置自定义资源 (CR) 文件中。
$ oc get provisioning -o yaml > enable-provisioning-nw.yaml
修改配置CR文件。
$ vim ~/enable-provisioning-nw.yaml
向下滚动到provisioningNetwork
配置设置,并将其从Disabled
更改为Managed
。然后,在provisioningNetwork
设置之后添加provisioningIP
、provisioningNetworkCIDR
、provisioningDHCPRange
、provisioningInterface
和watchAllNameSpaces
配置设置。为每个设置提供适当的值。
apiVersion: v1
items:
- apiVersion: metal3.io/v1alpha1
kind: Provisioning
metadata:
name: provisioning-configuration
spec:
provisioningNetwork: (1)
provisioningIP: (2)
provisioningNetworkCIDR: (3)
provisioningDHCPRange: (4)
provisioningInterface: (5)
watchAllNameSpaces: (6)
1 | provisioningNetwork 可以是Managed 、Unmanaged 或Disabled 之一。设置为Managed 时,Metal3 管理配置网络,并且 CBO 部署具有已配置 DHCP 服务器的 Metal3 pod。设置为Unmanaged 时,系统管理员手动配置DHCP服务器。 |
2 | provisioningIP 是DHCP服务器和ironic用于配置网络的静态IP地址。此静态IP地址必须位于provisioning 子网内,并且在DHCP范围之外。如果配置此设置,即使provisioning 网络为Disabled ,它也必须具有有效的IP地址。静态IP地址绑定到metal3 pod。如果metal3 pod 失败并移动到另一台服务器,静态IP地址也会移动到新服务器。 |
3 | 无类别域间路由 (CIDR) 地址。如果配置此设置,即使provisioning 网络为Disabled ,它也必须具有有效的CIDR地址。例如:192.168.0.1/24 。 |
4 | DHCP范围。此设置仅适用于Managed 配置网络。如果provisioning 网络为Disabled ,则省略此配置设置。例如:192.168.0.64, 192.168.0.253 。 |
5 | 集群节点上provisioning 接口的网卡名称。provisioningInterface 设置仅适用于Managed 和Unmanaged 配置网络。如果provisioning 网络为Disabled ,则省略provisioningInterface 配置设置。省略provisioningInterface 配置设置以改用bootMACAddress 配置设置。 |
6 | 如果希望metal3监视除默认openshift-machine-api 命名空间以外的其他命名空间,则将此设置为true 。默认值为false 。 |
将更改保存到配置CR文件。
将配置CR文件应用到集群。
$ oc apply -f enable-provisioning-nw.yaml
br-ex
桥的清单对象作为使用configure-ovs.sh
shell脚本在裸机平台上设置自定义br-ex
桥的替代方法,您可以创建一个包含自定义br-ex
桥网络配置的NodeNetworkConfigurationPolicy
自定义资源 (CR)。
创建包含自定义 有关 Red Hat 技术预览功能的支持范围的更多信息,请参阅技术预览功能支持范围。 |
此功能支持以下任务:
修改集群的最大传输单元 (MTU)。
修改不同绑定接口的属性,例如 MIImon(媒体独立接口监视器)、绑定模式或服务质量 (QoS)。
更新 DNS 值。
考虑创建包含自定义br-ex
桥的清单对象的以下用例:
您希望对桥进行安装后更改,例如更改 Open vSwitch (OVS) 或 OVN-Kubernetes br-ex
桥网络。configure-ovs.sh
shell 脚本不支持对桥进行安装后更改。
您希望在主机或服务器 IP 地址上可用的接口之外的另一个接口上部署桥。
您希望对桥进行高级配置,而configure-ovs.sh
shell脚本无法进行这些配置。将脚本用于这些配置可能会导致桥无法连接多个网络接口并促进接口之间的数据转发。
您使用替代方法configure-ovs
设置了自定义br-ex
。
您安装了 Kubernetes NMState 运算符。
创建NodeNetworkConfigurationPolicy
(NNCP) CR 并定义自定义br-ex
桥网络配置。根据您的需求,请确保为ipv4.address.ip
、ipv6.address.ip
或两个参数设置伪装 IP。伪装 IP 地址必须与正在使用的 IP 地址块匹配。
作为安装后任务,您可以配置在现有 NNCP CR 中定义的自定义 |
apiVersion: nmstate.io/v1
kind: NodeNetworkConfigurationPolicy
metadata:
name: worker-0-br-ex (1)
spec:
nodeSelector:
kubernetes.io/hostname: worker-0
desiredState:
interfaces:
- name: enp2s0 (2)
type: ethernet (3)
state: up (4)
ipv4:
enabled: false (5)
ipv6:
enabled: false
- name: br-ex
type: ovs-bridge
state: up
ipv4:
enabled: false
dhcp: false
ipv6:
enabled: false
dhcp: false
bridge:
port:
- name: enp2s0 (6)
- name: br-ex
- name: br-ex
type: ovs-interface
state: up
copy-mac-from: enp2s0
ipv4:
enabled: true
dhcp: true
address:
- ip: "169.254.169.2"
prefix-length: 29
ipv6:
enabled: false
dhcp: false
address:
- ip: "fd69::2"
prefix-length: 125
1 | 策略的名称。 |
2 | 接口的名称。 |
3 | 以太网的类型。 |
4 | 创建后接口的请求状态。 |
5 | 在此示例中禁用 IPv4 和 IPv6。 |
6 | 桥连接到的节点网卡。 |
您可以将 OpenShift Container Platform 集群配置为使用用户管理的负载均衡器来代替默认负载均衡器。
配置用户管理的负载均衡器取决于您的供应商的负载均衡器。 本节中的信息和示例仅供指导之用。请咨询供应商文档以获取有关供应商负载均衡器的更多具体信息。 |
Red Hat 支持以下用户管理负载均衡器的服务:
入口控制器
OpenShift API
OpenShift MachineConfig API
您可以选择是否要为用户管理的负载均衡器配置一项或所有这些服务。仅配置入口控制器服务是一个常见的配置选项。为了更好地理解每项服务,请查看以下图表:
以下配置选项受用户管理的负载均衡器支持:
使用节点选择器将入口控制器映射到特定节点集。您必须为此集合中的每个节点分配静态 IP 地址,或将每个节点配置为从动态主机配置协议 (DHCP) 接收相同的 IP 地址。基础设施节点通常会收到此类配置。
定位子网上的所有 IP 地址。此配置可以减少维护开销,因为您可以在这些网络中创建和销毁节点而无需重新配置负载均衡器目标。如果您使用机器集在较小的网络(例如 /27
或 /28
)上部署入口 Pod,则可以简化负载均衡器目标。
您可以通过检查机器配置池的资源来列出网络中存在的所有 IP 地址。 |
在为 OpenShift Container Platform 集群配置用户管理的负载均衡器之前,请考虑以下信息:
对于前端 IP 地址,您可以使用相同的 IP 地址作为前端 IP 地址、Ingress Controller 的负载均衡器和 API 负载均衡器。请检查厂商文档以了解此功能。
对于后端 IP 地址,请确保 OpenShift Container Platform 控制平面节点的 IP 地址在用户管理的负载均衡器的生命周期内不会更改。您可以通过完成以下操作之一来实现此目的
为每个控制平面节点分配静态 IP 地址。
配置每个节点,使其每次请求 DHCP 租约时都从 DHCP 接收相同的 IP 地址。根据厂商的不同,DHCP 租约可能是 IP 预留或静态 DHCP 分配。
在用户管理的负载均衡器中手动定义运行 Ingress Controller 的每个节点,用于 Ingress Controller 后端服务。例如,如果 Ingress Controller 移动到未定义的节点,则可能会发生连接中断。
您可以将 OpenShift Container Platform 集群配置为使用用户管理的负载均衡器来代替默认负载均衡器。
在配置用户管理的负载均衡器之前,请确保您已阅读“用户管理负载均衡器的服务”部分。 |
阅读以下适用于您要为用户管理的负载均衡器配置的服务的先决条件。
在集群上运行的 MetalLB 充当用户管理的负载均衡器。 |
您已定义前端 IP 地址。
负载均衡器的前端 IP 地址上公开了 TCP 端口 6443 和 22623。请检查以下项目
端口 6443 提供对 OpenShift API 服务的访问。
端口 22623 可以为节点提供启动配置。
所有位于 OpenShift Container Platform 集群外部位置的系统用户都可以访问前端 IP 地址和端口 6443。
只有 OpenShift Container Platform 节点才能访问前端 IP 地址和端口 22623。
负载均衡器后端可以与 OpenShift Container Platform 控制平面节点的 6443 和 22623 端口进行通信。
您已定义前端 IP 地址。
负载均衡器的前端 IP 地址上公开了 TCP 端口 443 和 80。
所有位于 OpenShift Container Platform 集群外部位置的系统用户都可以访问前端 IP 地址、端口 80 和端口 443。
OpenShift Container Platform 集群中运行的所有节点都可以访问前端 IP 地址、端口 80 和端口 443。
负载均衡器后端可以与运行 Ingress Controller 的 OpenShift Container Platform 节点的 80、443 和 1936 端口进行通信。
您可以通过设置健康检查 URL 来配置大多数负载均衡器,这些 URL 用于确定服务是可用还是不可用。OpenShift Container Platform 为 OpenShift API、机器配置 API 和 Ingress Controller 后端服务提供这些健康检查。
以下示例显示了前面列出的后端服务的健康检查规范
Path: HTTPS:6443/readyz
Healthy threshold: 2
Unhealthy threshold: 2
Timeout: 10
Interval: 10
Path: HTTPS:22623/healthz
Healthy threshold: 2
Unhealthy threshold: 2
Timeout: 10
Interval: 10
Path: HTTP:1936/healthz/ready
Healthy threshold: 2
Unhealthy threshold: 2
Timeout: 5
Interval: 10
配置 HAProxy Ingress Controller,以便您可以通过负载均衡器访问 6443、22623、443 和 80 端口上的集群。根据您的需求,您可以在 HAProxy 配置中指定单个子网的 IP 地址或多个子网的 IP 地址。
# ...
listen my-cluster-api-6443
bind 192.168.1.100:6443
mode tcp
balance roundrobin
option httpchk
http-check connect
http-check send meth GET uri /readyz
http-check expect status 200
server my-cluster-master-2 192.168.1.101:6443 check inter 10s rise 2 fall 2
server my-cluster-master-0 192.168.1.102:6443 check inter 10s rise 2 fall 2
server my-cluster-master-1 192.168.1.103:6443 check inter 10s rise 2 fall 2
listen my-cluster-machine-config-api-22623
bind 192.168.1.100:22623
mode tcp
balance roundrobin
option httpchk
http-check connect
http-check send meth GET uri /healthz
http-check expect status 200
server my-cluster-master-2 192.168.1.101:22623 check inter 10s rise 2 fall 2
server my-cluster-master-0 192.168.1.102:22623 check inter 10s rise 2 fall 2
server my-cluster-master-1 192.168.1.103:22623 check inter 10s rise 2 fall 2
listen my-cluster-apps-443
bind 192.168.1.100:443
mode tcp
balance roundrobin
option httpchk
http-check connect
http-check send meth GET uri /healthz/ready
http-check expect status 200
server my-cluster-worker-0 192.168.1.111:443 check port 1936 inter 10s rise 2 fall 2
server my-cluster-worker-1 192.168.1.112:443 check port 1936 inter 10s rise 2 fall 2
server my-cluster-worker-2 192.168.1.113:443 check port 1936 inter 10s rise 2 fall 2
listen my-cluster-apps-80
bind 192.168.1.100:80
mode tcp
balance roundrobin
option httpchk
http-check connect
http-check send meth GET uri /healthz/ready
http-check expect status 200
server my-cluster-worker-0 192.168.1.111:80 check port 1936 inter 10s rise 2 fall 2
server my-cluster-worker-1 192.168.1.112:80 check port 1936 inter 10s rise 2 fall 2
server my-cluster-worker-2 192.168.1.113:80 check port 1936 inter 10s rise 2 fall 2
# ...
# ...
listen api-server-6443
bind *:6443
mode tcp
server master-00 192.168.83.89:6443 check inter 1s
server master-01 192.168.84.90:6443 check inter 1s
server master-02 192.168.85.99:6443 check inter 1s
server bootstrap 192.168.80.89:6443 check inter 1s
listen machine-config-server-22623
bind *:22623
mode tcp
server master-00 192.168.83.89:22623 check inter 1s
server master-01 192.168.84.90:22623 check inter 1s
server master-02 192.168.85.99:22623 check inter 1s
server bootstrap 192.168.80.89:22623 check inter 1s
listen ingress-router-80
bind *:80
mode tcp
balance source
server worker-00 192.168.83.100:80 check inter 1s
server worker-01 192.168.83.101:80 check inter 1s
listen ingress-router-443
bind *:443
mode tcp
balance source
server worker-00 192.168.83.100:443 check inter 1s
server worker-01 192.168.83.101:443 check inter 1s
listen ironic-api-6385
bind *:6385
mode tcp
balance source
server master-00 192.168.83.89:6385 check inter 1s
server master-01 192.168.84.90:6385 check inter 1s
server master-02 192.168.85.99:6385 check inter 1s
server bootstrap 192.168.80.89:6385 check inter 1s
listen inspector-api-5050
bind *:5050
mode tcp
balance source
server master-00 192.168.83.89:5050 check inter 1s
server master-01 192.168.84.90:5050 check inter 1s
server master-02 192.168.85.99:5050 check inter 1s
server bootstrap 192.168.80.89:5050 check inter 1s
# ...
使用 `curl` CLI 命令验证用户管理的负载均衡器及其资源是否正在运行
通过运行以下命令并观察响应,验证集群机器配置 API 是否可被 Kubernetes API 服务器资源访问
$ curl https://<loadbalancer_ip_address>:6443/version --insecure
如果配置正确,您将收到 JSON 对象作为响应
{
"major": "1",
"minor": "11+",
"gitVersion": "v1.11.0+ad103ed",
"gitCommit": "ad103ed",
"gitTreeState": "clean",
"buildDate": "2019-01-09T06:44:10Z",
"goVersion": "go1.10.3",
"compiler": "gc",
"platform": "linux/amd64"
}
通过运行以下命令并观察输出,验证集群机器配置 API 是否可被机器配置服务器资源访问
$ curl -v https://<loadbalancer_ip_address>:22623/healthz --insecure
如果配置正确,命令的输出将显示以下响应
HTTP/1.1 200 OK
Content-Length: 0
通过运行以下命令并观察输出,验证控制器是否可被 80 端口上的 Ingress Controller 资源访问
$ curl -I -L -H "Host: console-openshift-console.apps.<cluster_name>.<base_domain>" http://<load_balancer_front_end_IP_address>
如果配置正确,命令的输出将显示以下响应
HTTP/1.1 302 Found
content-length: 0
location: https://console-openshift-console.apps.ocp4.private.opequon.net/
cache-control: no-cache
通过运行以下命令并观察输出,验证控制器是否可被 443 端口上的 Ingress Controller 资源访问
$ curl -I -L --insecure --resolve console-openshift-console.apps.<cluster_name>.<base_domain>:443:<Load Balancer Front End IP Address> https://console-openshift-console.apps.<cluster_name>.<base_domain>
如果配置正确,命令的输出将显示以下响应
HTTP/1.1 200 OK
referrer-policy: strict-origin-when-cross-origin
set-cookie: csrf-token=UlYWOyQ62LWjw2h003xtYSKlh1a0Py2hhctw0WmV2YEdhJjFyQwWcGBsja261dGLgaYO0nxzVErhiXt6QepA7g==; Path=/; Secure; SameSite=Lax
x-content-type-options: nosniff
x-dns-prefetch-control: off
x-frame-options: DENY
x-xss-protection: 1; mode=block
date: Wed, 04 Oct 2023 16:29:38 GMT
content-type: text/html; charset=utf-8
set-cookie: 1e2670d92730b515ce3a1bb65da45062=1bf5e9573c9a2760c964ed1659cc1673; path=/; HttpOnly; Secure; SameSite=None
cache-control: private
配置集群的 DNS 记录以指向用户管理的负载均衡器的前端 IP 地址。您必须更新集群 API 和通过负载均衡器访问应用程序的 DNS 服务器的记录。
<load_balancer_ip_address> A api.<cluster_name>.<base_domain>
A record pointing to Load Balancer Front End
<load_balancer_ip_address> A apps.<cluster_name>.<base_domain>
A record pointing to Load Balancer Front End
每个 DNS 记录的传播可能需要一些时间才能可用。请确保每个 DNS 记录都已传播后再进行验证。 |
为了让您的 OpenShift Container Platform 集群使用用户管理的负载均衡器,您必须在集群的 `install-config.yaml` 文件中指定以下配置
# ...
platform:
loadBalancer:
type: UserManaged (1)
apiVIPs:
- <api_ip> (2)
ingressVIPs:
- <ingress_ip> (3)
# ...
1 | 为 `type` 参数设置 `UserManaged`,以指定集群的用户管理的负载均衡器。此参数默认为 `OpenShiftManagedDefault`,表示默认的内部负载均衡器。对于在 `openshift-kni-infra` 命名空间中定义的服务,用户管理的负载均衡器可以将 `coredns` 服务部署到集群中的 Pod,但会忽略 `keepalived` 和 `haproxy` 服务。 |
2 | 指定用户管理的负载均衡器时所需的參數。指定用户管理的负载均衡器的公共 IP 地址,以便 Kubernetes API 可以与用户管理的负载均衡器进行通信。 |
3 | 指定用户管理的负载均衡器时所需的參數。指定用户管理的负载均衡器的公共 IP 地址,以便用户管理的负载均衡器可以管理集群的入口流量。 |
使用 `curl` CLI 命令验证用户管理的负载均衡器和 DNS 记录配置是否正在运行
通过运行以下命令并观察输出,验证您是否可以访问集群 API
$ curl https://api.<cluster_name>.<base_domain>:6443/version --insecure
如果配置正确,您将收到 JSON 对象作为响应
{
"major": "1",
"minor": "11+",
"gitVersion": "v1.11.0+ad103ed",
"gitCommit": "ad103ed",
"gitTreeState": "clean",
"buildDate": "2019-01-09T06:44:10Z",
"goVersion": "go1.10.3",
"compiler": "gc",
"platform": "linux/amd64"
}
通过运行以下命令并观察输出,验证您是否可以访问集群机器配置
$ curl -v https://api.<cluster_name>.<base_domain>:22623/healthz --insecure
如果配置正确,命令的输出将显示以下响应
HTTP/1.1 200 OK
Content-Length: 0
通过运行以下命令并观察输出,验证您是否可以访问每个集群应用程序的端口
$ curl http://console-openshift-console.apps.<cluster_name>.<base_domain> -I -L --insecure
如果配置正确,命令的输出将显示以下响应
HTTP/1.1 302 Found
content-length: 0
location: https://console-openshift-console.apps.<cluster-name>.<base domain>/
cache-control: no-cacheHTTP/1.1 200 OK
referrer-policy: strict-origin-when-cross-origin
set-cookie: csrf-token=39HoZgztDnzjJkq/JuLJMeoKNXlfiVv2YgZc09c3TBOBU4NI6kDXaJH1LdicNhN1UsQWzon4Dor9GWGfopaTEQ==; Path=/; Secure
x-content-type-options: nosniff
x-dns-prefetch-control: off
x-frame-options: DENY
x-xss-protection: 1; mode=block
date: Tue, 17 Nov 2020 08:42:10 GMT
content-type: text/html; charset=utf-8
set-cookie: 1e2670d92730b515ce3a1bb65da45062=9b714eb87e93cf34853e87a92d6894be; path=/; HttpOnly; Secure; SameSite=None
cache-control: private
通过运行以下命令并观察输出,验证您是否可以访问每个集群应用程序的 443 端口
$ curl https://console-openshift-console.apps.<cluster_name>.<base_domain> -I -L --insecure
如果配置正确,命令的输出将显示以下响应
HTTP/1.1 200 OK
referrer-policy: strict-origin-when-cross-origin
set-cookie: csrf-token=UlYWOyQ62LWjw2h003xtYSKlh1a0Py2hhctw0WmV2YEdhJjFyQwWcGBsja261dGLgaYO0nxzVErhiXt6QepA7g==; Path=/; Secure; SameSite=Lax
x-content-type-options: nosniff
x-dns-prefetch-control: off
x-frame-options: DENY
x-xss-protection: 1; mode=block
date: Wed, 04 Oct 2023 16:29:38 GMT
content-type: text/html; charset=utf-8
set-cookie: 1e2670d92730b515ce3a1bb65da45062=1bf5e9573c9a2760c964ed1659cc1673; path=/; HttpOnly; Secure; SameSite=None
cache-control: private
在裸机主机上部署 OpenShift Container Platform 时,有时需要在准备之前或之后更改主机。这可能包括检查主机的硬件、固件和固件详细信息。它还可以包括格式化磁盘或更改可修改的固件设置。
您可以使用裸机运算符 (BMO) 来预配、管理和检查集群中的裸机主机。BMO 可以完成以下操作
使用特定映像将裸机主机预配到集群。
打开或关闭主机。
检查宿主机硬件详细信息并将其报告给裸机主机。
将宿主机固件升级或降级到特定版本。
检查固件并配置 BIOS 设置。
在准备主机之前或之后清理主机磁盘内容。
BMO 使用以下资源来完成这些任务
BareMetalHost
HostFirmwareSettings
FirmwareSchema
HostFirmwareComponents
BMO 通过将每个裸机主机映射到BareMetalHost
自定义资源定义的一个实例来维护集群中物理主机的清单。每个BareMetalHost
资源都包含硬件、软件和固件详细信息。BMO 持续检查集群中的裸机主机,以确保每个BareMetalHost
资源都准确地描述了相应主机的组件。
BMO 还使用HostFirmwareSettings
资源、FirmwareSchema
资源和HostFirmwareComponents
资源来详细说明固件规范以及升级或降级裸机主机的固件。
BMO 通过使用 Ironic API 服务与集群中的裸机主机进行交互。Ironic 服务使用主机上的底板管理控制器 (BMC) 与机器进行交互。
裸机操作员 (BMO) 使用以下资源来配置、管理和检查集群中的裸机主机。下图说明了这些资源的架构
BareMetalHost
资源定义物理主机及其属性。当您将裸机主机配置到集群时,必须为此主机定义一个BareMetalHost
资源。对于主机的持续管理,您可以检查BareMetalHost
中的信息或更新此信息。
BareMetalHost
资源包含以下配置信息:
部署规范,例如操作系统引导映像或自定义 RAM 磁盘
配置状态
底板管理控制器 (BMC) 地址
所需的电源状态
BareMetalHost
资源包含以下硬件信息:
CPU 数量
网卡的 MAC 地址
主机存储设备的大小
当前电源状态
您可以使用HostFirmwareSettings
资源来检索和管理主机的固件设置。当主机变为Available
状态时,Ironic 服务读取主机的固件设置并创建HostFirmwareSettings
资源。BareMetalHost
资源和HostFirmwareSettings
资源之间存在一对一的映射关系。
您可以使用HostFirmwareSettings
资源来检查主机的固件规范或更新主机的固件规范。
编辑 |
固件设置因硬件供应商和主机型号而异。FirmwareSchema
资源是一个只读资源,其中包含每个主机型号上每个固件设置的类型和限制。数据直接来自 BMC,使用 Ironic 服务。FirmwareSchema
资源使您可以识别可以在HostFirmwareSettings
资源的spec
字段中指定的有效值。
如果模式相同,一个FirmwareSchema
资源可以应用于许多BareMetalHost
资源。
Metal3 提供HostFirmwareComponents
资源,该资源描述了 BIOS 和底板管理控制器 (BMC) 固件版本。您可以通过编辑HostFirmwareComponents
资源的spec
字段来将主机的固件升级或降级到特定版本。这在使用针对特定固件版本测试过的经过验证的模式进行部署时非常有用。
Metal3 引入了BareMetalHost
资源的概念,该资源定义物理主机及其属性。BareMetalHost
资源包含两部分
BareMetalHost
规范
BareMetalHost
状态
BareMetalHost
资源的spec
部分定义了主机的期望状态。
参数 | 描述 | ||
---|---|---|---|
|
一个接口,用于在配置和取消配置期间启用或禁用自动清理。设置为 |
||
bmc: address: credentialsName: disableCertificateVerification: |
|
||
|
用于配置主机的网卡的 MAC 地址。 |
||
|
主机的启动模式。默认为 |
||
|
对正在使用该主机的另一个资源的引用。如果当前没有其他资源正在使用该主机,则它可能为空。例如,当 |
||
|
帮助识别主机的用户提供的字符串。 |
||
|
一个布尔值,指示主机配置和取消配置是否由外部管理。设置时
|
||
|
包含有关裸机主机 BIOS 配置的信息。目前,
|
||
image: url: checksum: checksumType: format: |
|
||
|
对包含网络配置数据及其命名空间的密钥的引用,以便在主机启动之前将其附加到主机以设置网络。 |
||
|
一个布尔值,指示主机应打开电源( |
||
raid: hardwareRAIDVolumes: softwareRAIDVolumes: |
(可选)包含有关裸机主机RAID配置的信息。如果未指定,则保留当前配置。
请参阅以下配置设置:
您可以将 spec: raid: hardwareRAIDVolume: [] 如果您收到错误消息,指示驱动程序不支持RAID,请将 |
||
rootDeviceHints: deviceName: hctl: model: vendor: serialNumber: minSizeGigabytes: wwn: wwnWithExtension: wwnVendorExtension: rotational: |
|
BareMetalHost
状态表示主机的当前状态,包括已测试的凭据、当前硬件详细信息和其他信息。
参数 | 描述 |
---|---|
|
对密钥及其命名空间的引用,其中包含系统能够验证为有效的最后一组基板管理控制器 (BMC) 凭据。 |
|
如有任何错误,则为置备后端报告的最后一个错误的详细信息。 |
|
指示导致主机进入错误状态的问题类别。错误类型包括:
|
hardware: cpu arch: model: clockMegahertz: flags: count: |
|
hardware: firmware: |
包含 BIOS 固件信息,例如硬件厂商和版本。 |
hardware: nics: - ip: name: mac: speedGbps: vlans: vlanId: pxe: |
|
hardware: ramMebibytes: |
主机的内存大小,单位 MiB(兆字节)。 |
hardware: storage: - name: rotational: sizeBytes: serialNumber: |
|
hardware: systemVendor: manufacturer: productName: serialNumber: |
包含关于主机 |
|
最后一次更新主机状态的时间戳。 |
|
服务器的状态。状态为以下之一:
|
|
布尔值,指示主机是否已启动。 |
provisioning: state: id: image: raid: firmware: rootDeviceHints: |
|
|
对密钥及其命名空间的引用,其中包含发送到配置后端的最后一组 BMC 凭据。 |
BareMetalHost
资源包含物理主机的属性。您必须获取物理主机的 BareMetalHost
资源才能查看其属性。
获取 BareMetalHost
资源列表
$ oc get bmh -n openshift-machine-api -o yaml
您可以使用 |
获取主机列表
$ oc get bmh -n openshift-machine-api
获取特定主机的 BareMetalHost
资源
$ oc get bmh <host_name> -n openshift-machine-api -o yaml
其中 <host_name>
是主机的名称。
apiVersion: metal3.io/v1alpha1
kind: BareMetalHost
metadata:
creationTimestamp: "2022-06-16T10:48:33Z"
finalizers:
- baremetalhost.metal3.io
generation: 2
name: openshift-worker-0
namespace: openshift-machine-api
resourceVersion: "30099"
uid: 1513ae9b-e092-409d-be1b-ad08edeb1271
spec:
automatedCleaningMode: metadata
bmc:
address: redfish://10.46.61.19:443/redfish/v1/Systems/1
credentialsName: openshift-worker-0-bmc-secret
disableCertificateVerification: true
bootMACAddress: 48:df:37:c7:f7:b0
bootMode: UEFI
consumerRef:
apiVersion: machine.openshift.io/v1beta1
kind: Machine
name: ocp-edge-958fk-worker-0-nrfcg
namespace: openshift-machine-api
customDeploy:
method: install_coreos
online: true
rootDeviceHints:
deviceName: /dev/disk/by-id/scsi-<serial_number>
userData:
name: worker-user-data-managed
namespace: openshift-machine-api
status:
errorCount: 0
errorMessage: ""
goodCredentials:
credentials:
name: openshift-worker-0-bmc-secret
namespace: openshift-machine-api
credentialsVersion: "16120"
hardware:
cpu:
arch: x86_64
clockMegahertz: 2300
count: 64
flags:
- 3dnowprefetch
- abm
- acpi
- adx
- aes
model: Intel(R) Xeon(R) Gold 5218 CPU @ 2.30GHz
firmware:
bios:
date: 10/26/2020
vendor: HPE
version: U30
hostname: openshift-worker-0
nics:
- mac: 48:df:37:c7:f7:b3
model: 0x8086 0x1572
name: ens1f3
ramMebibytes: 262144
storage:
- hctl: "0:0:0:0"
model: VK000960GWTTB
name: /dev/disk/by-id/scsi-<serial_number>
sizeBytes: 960197124096
type: SSD
vendor: ATA
systemVendor:
manufacturer: HPE
productName: ProLiant DL380 Gen10 (868703-B21)
serialNumber: CZ200606M3
lastUpdated: "2022-06-16T11:41:42Z"
operationalStatus: OK
poweredOn: true
provisioning:
ID: 217baa14-cfcf-4196-b764-744e184a3413
bootMode: UEFI
customDeploy:
method: install_coreos
image:
url: ""
raid:
hardwareRAIDVolumes: null
softwareRAIDVolumes: []
rootDeviceHints:
deviceName: /dev/disk/by-id/scsi-<serial_number>
state: provisioned
triedCredentials:
credentials:
name: openshift-worker-0-bmc-secret
namespace: openshift-machine-api
credentialsVersion: "16120"
在裸机上部署 OpenShift Container Platform 集群后,您可能需要编辑节点的 BareMetalHost
资源。请考虑以下示例:
您使用 Assisted Installer 部署集群,并且需要添加或编辑底板管理控制器 (BMC) 主机名或 IP 地址。
您想将节点从一个集群移动到另一个集群,而无需取消其配置。
确保节点处于 Provisioned
、ExternallyProvisioned
或 Available
状态。
获取节点列表
$ oc get bmh -n openshift-machine-api
在编辑节点的 BareMetalHost
资源之前,请通过运行以下命令将节点从 Ironic 中分离:
$ oc annotate baremetalhost <node_name> -n openshift-machine-api 'baremetalhost.metal3.io/detached=true' (1)
1 | 将 <node_name> 替换为主机的名称。 |
通过运行以下命令编辑 BareMetalHost
资源:
$ oc edit bmh <node_name> -n openshift-machine-api
通过运行以下命令将节点重新连接到 Ironic:
$ oc annotate baremetalhost <node_name> -n openshift-machine-api 'baremetalhost.metal3.io/detached'-
当裸机操作员 (BMO) 删除 BareMetalHost
资源时,Ironic 会使用称为清理的过程取消裸机主机的配置。当清理失败时,Ironic 会重试清理过程三次,这是延迟的根源。清理过程可能不会成功,导致裸机主机的配置状态无限期地保持在 **deleting** 状态。当这种情况发生时,请使用以下步骤禁用清理过程。
不要从 |
如果清理过程失败并重新启动,请等待其完成。这可能需要大约 5 分钟。
如果配置状态仍然处于 **deleting** 状态,请通过修改 BareMetalHost
资源并将 automatedCleaningMode
字段设置为 disabled
来禁用清理过程。
有关更多详细信息,请参阅“编辑 BareMetalHost 资源”。
您可以使用 DataImage
资源将通用的非可引导 ISO 虚拟媒体镜像附加到已配置的节点。应用资源后,ISO 镜像在操作系统启动后即可访问。这对于在配置操作系统后以及节点首次启动之前配置节点非常有用。
节点必须使用 Redfish 或从中派生的驱动程序才能支持此功能。
节点必须处于 Provisioned
或 ExternallyProvisioned
状态。
name
必须与节点在其 BareMetalHost
资源中定义的名称相同。
您有一个指向 ISO 镜像的有效 url
。
创建 DataImage
资源
apiVersion: metal3.io/v1alpha1
kind: DataImage
metadata:
name: <node_name> (1)
spec:
url: "http://dataimage.example.com/non-bootable.iso" (2)
1 | 指定节点在其 BareMetalHost 资源中定义的名称。 |
2 | 指定 ISO 镜像的 URL 和路径。 |
通过运行以下命令将 DataImage
资源保存到文件:
$ vim <node_name>-dataimage.yaml
运行以下命令应用DataImage
资源
$ oc apply -f <node_name>-dataimage.yaml -n <node_namespace> (1)
1 | 替换<node_namespace> ,使其命名空间与BareMetalHost 资源的命名空间匹配。例如,openshift-machine-api 。 |
重启节点。
要重启节点,请添加 |
运行以下命令查看DataImage
资源
$ oc get dataimage <node_name> -n openshift-machine-api -o yaml
apiVersion: v1
items:
- apiVersion: metal3.io/v1alpha1
kind: DataImage
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"metal3.io/v1alpha1","kind":"DataImage","metadata":{"annotations":{},"name":"bmh-node-1","namespace":"openshift-machine-api"},"spec":{"url":"http://dataimage.example.com/non-bootable.iso"}}
creationTimestamp: "2024-06-10T12:00:00Z"
finalizers:
- dataimage.metal3.io
generation: 1
name: bmh-node-1
namespace: openshift-machine-api
ownerReferences:
- apiVersion: metal3.io/v1alpha1
blockOwnerDeletion: true
controller: true
kind: BareMetalHost
name: bmh-node-1
uid: 046cdf8e-0e97-485a-8866-e62d20e0f0b3
resourceVersion: "21695581"
uid: c5718f50-44b6-4a22-a6b7-71197e4b7b69
spec:
url: http://dataimage.example.com/non-bootable.iso
status:
attachedImage:
url: http://dataimage.example.com/non-bootable.iso
error:
count: 0
message: ""
lastReconciled: "2024-06-10T12:05:00Z"
您可以使用HostFirmwareSettings
资源来检索和管理主机的BIOS设置。当主机状态变为Available
时,Ironic会读取主机的BIOS设置并创建HostFirmwareSettings
资源。该资源包含从底板管理控制器(BMC)返回的完整的BIOS配置。而BareMetalHost
资源中的firmware
字段返回三个与厂商无关的字段,HostFirmwareSettings
资源通常包含每个主机许多厂商专有的BIOS设置。
HostFirmwareSettings
资源包含两部分
HostFirmwareSettings
规范。
HostFirmwareSettings
状态。
HostFirmwareSettings
规范HostFirmwareSettings
资源的spec
部分定义了主机BIOS的期望状态,默认为空。当主机处于Preparing
状态时,Ironic使用spec.settings
部分中的设置来更新底板管理控制器(BMC)。使用FirmwareSchema
资源确保您不会向主机发送无效的名称/值对。有关更多详细信息,请参阅“关于FirmwareSchema资源”。
spec:
settings:
ProcTurboMode: Disabled(1)
1 | 在上例中,spec.settings 部分包含一个名称/值对,它将ProcTurboMode BIOS设置设置为Disabled 。 |
|
HostFirmwareSettings
状态status
表示主机BIOS的当前状态。
参数 | 描述 |
---|---|
status: conditions: - lastTransitionTime: message: observedGeneration: reason: status: type: |
|
status: schema: name: namespace: lastUpdated: |
固件设置的
|
status: settings: |
|
HostFirmwareSettings
资源包含物理主机的厂商专用BIOS属性。您必须获取物理主机的HostFirmwareSettings
资源才能查看其BIOS属性。
获取HostFirmwareSettings
资源的详细列表
$ oc get hfs -n openshift-machine-api -o yaml
您可以使用 |
获取HostFirmwareSettings
资源列表
$ oc get hfs -n openshift-machine-api
获取特定主机的HostFirmwareSettings
资源
$ oc get hfs <host_name> -n openshift-machine-api -o yaml
其中 <host_name>
是主机的名称。
您可以编辑已配置主机的HostFirmwareSettings
。
您只能在主机处于 |
获取HostFirmwareSettings
资源列表
$ oc get hfs -n openshift-machine-api
编辑主机的HostFirmwareSettings
资源
$ oc edit hfs <host_name> -n openshift-machine-api
其中<host_name>
是已配置主机的名称。HostFirmwareSettings
资源将在您的终端的默认编辑器中打开。
向spec.settings
部分添加名称/值对
spec:
settings:
name: value (1)
1 | 使用FirmwareSchema 资源来识别主机可用的设置。您不能设置只读值。 |
保存更改并退出编辑器。
获取主机的机器名称
$ oc get bmh <host_name> -n openshift-machine name
其中<host_name>
是主机的名称。机器名称显示在CONSUMER
字段下。
为机器添加注释以将其从machineset中删除
$ oc annotate machine <machine_name> machine.openshift.io/delete-machine=true -n openshift-machine-api
其中<machine_name>
是要删除的机器的名称。
获取节点列表并计算工作节点的数量
$ oc get nodes
获取machineset
$ oc get machinesets -n openshift-machine-api
调整machineset的规模
$ oc scale machineset <machineset_name> -n openshift-machine-api --replicas=<n-1>
其中<machineset_name>
是machineset的名称,<n-1>
是工作节点数量减1后的值。
当主机进入Available
状态时,请向上扩展machineset以使HostFirmwareSettings
资源更改生效
$ oc scale machineset <machineset_name> -n openshift-machine-api --replicas=<n>
其中<machineset_name>
是machineset的名称,<n>
是工作节点的数量。
当用户编辑spec.settings
部分以更改HostFirmwareSetting
(HFS) 资源时,裸机操作符 (BMO) 会根据FimwareSchema
资源(这是一个只读资源)验证更改。如果设置无效,BMO将把status.Condition
设置的Type
值设置为False
,还会生成一个事件并将其存储在HFS资源中。请使用以下步骤验证资源是否有效。
获取HostFirmwareSetting
资源列表
$ oc get hfs -n openshift-machine-api
验证特定主机的HostFirmwareSettings
资源是否有效
$ oc describe hfs <host_name> -n openshift-machine-api
其中 <host_name>
是主机的名称。
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal ValidationFailed 2m49s metal3-hostfirmwaresettings-controller Invalid BIOS setting: Setting ProcTurboMode is invalid, unknown enumeration value - Foo
如果响应返回 |
BIOS设置因硬件厂商和主机型号而异。FirmwareSchema
资源是一个只读资源,包含每个主机型号上每个BIOS设置的类型和限制。数据直接来自Ironic的BMC。FirmwareSchema
使您可以识别可以在HostFirmwareSettings
资源的spec
字段中指定的有效值。FirmwareSchema
资源具有从其设置和限制派生的唯一标识符。相同的Host模型使用相同的FirmwareSchema
标识符。多个HostFirmwareSettings
实例很可能使用相同的FirmwareSchema
。
参数 | 描述 |
---|---|
<BIOS_setting_name> attribute_type: allowable_values: lower_bound: upper_bound: min_length: max_length: read_only: unique: |
|
每个厂商的每个主机型号都有不同的BIOS设置。编辑HostFirmwareSettings
资源的spec
部分时,您设置的名称/值对必须符合该主机的固件架构。为了确保您设置的名称/值对有效,请获取主机的FirmwareSchema
并查看它。
要获取FirmwareSchema
资源实例的列表,请执行以下操作:
$ oc get firmwareschema -n openshift-machine-api
要获取特定的FirmwareSchema
实例,请执行:
$ oc get firmwareschema <instance_name> -n openshift-machine-api -o yaml
其中<instance_name>
是在HostFirmwareSettings
资源中声明的架构实例的名称(参见表3)。
Metal3提供HostFirmwareComponents
资源,该资源描述了BIOS和底板管理控制器(BMC)的固件版本。HostFirmwareComponents
资源包含两个部分:
HostFirmwareComponents
规范
HostFirmwareComponents
状态
HostFirmwareComponents
资源的spec
部分定义了主机BIOS和BMC版本的期望状态。
参数 | 描述 |
---|---|
updates: component: url: |
|
HostFirmwareComponents
资源的status
部分返回主机BIOS和BMC版本的当前状态。
参数 | 描述 |
---|---|
components: component: initialVersion: currentVersion: lastVersionFlashed: updatedAt: |
|
updates: component: url: |
|
HostFirmwareComponents
资源包含物理主机的BIOS和底板管理控制器(BMC)的特定固件版本。您必须获取物理主机的HostFirmwareComponents
资源以查看固件版本和状态。
获取HostFirmwareComponents
资源的详细列表:
$ oc get hostfirmwarecomponents -n openshift-machine-api -o yaml
获取HostFirmwareComponents
资源列表:
$ oc get hostfirmwarecomponents -n openshift-machine-api
获取特定主机的HostFirmwareComponents
资源:
$ oc get hostfirmwarecomponents <host_name> -n openshift-machine-api -o yaml
其中 <host_name>
是主机的名称。
---
apiVersion: metal3.io/v1alpha1
kind: HostFirmwareComponents
metadata:
creationTimestamp: 2024-04-25T20:32:06Z"
generation: 1
name: ostest-master-2
namespace: openshift-machine-api
ownerReferences:
- apiVersion: metal3.io/v1alpha1
blockOwnerDeletion: true
controller: true
kind: BareMetalHost
name: ostest-master-2
uid: 16022566-7850-4dc8-9e7d-f216211d4195
resourceVersion: "2437"
uid: 2038d63f-afc0-4413-8ffe-2f8e098d1f6c
spec:
updates: []
status:
components:
- component: bios
currentVersion: 1.0.0
initialVersion: 1.0.0
- component: bmc
currentVersion: "1.00"
initialVersion: "1.00"
conditions:
- lastTransitionTime: "2024-04-25T20:32:06Z"
message: ""
observedGeneration: 1
reason: OK
status: "True"
type: Valid
- lastTransitionTime: "2024-04-25T20:32:06Z"
message: ""
observedGeneration: 1
reason: OK
status: "False"
type: ChangeDetected
lastUpdated: "2024-04-25T20:32:06Z"
updates: []
您可以编辑节点的HostFirmwareComponents
资源。
获取HostFirmwareComponents
资源的详细列表:
$ oc get hostfirmwarecomponents -n openshift-machine-api -o yaml
编辑主机的HostFirmwareComponents
资源:
$ oc edit <host_name> hostfirmwarecomponents -n openshift-machine-api (1)
1 | 其中<host_name> 为主机的名称。HostFirmwareComponents 资源将在您的终端的默认编辑器中打开。 |
---
apiVersion: metal3.io/v1alpha1
kind: HostFirmwareComponents
metadata:
creationTimestamp: 2024-04-25T20:32:06Z"
generation: 1
name: ostest-master-2
namespace: openshift-machine-api
ownerReferences:
- apiVersion: metal3.io/v1alpha1
blockOwnerDeletion: true
controller: true
kind: BareMetalHost
name: ostest-master-2
uid: 16022566-7850-4dc8-9e7d-f216211d4195
resourceVersion: "2437"
uid: 2038d63f-afc0-4413-8ffe-2f8e098d1f6c
spec:
updates:
- name: bios (1)
url: https://myurl.with.firmware.for.bios (2)
- name: bmc (3)
url: https://myurl.with.firmware.for.bmc (4)
status:
components:
- component: bios
currentVersion: 1.0.0
initialVersion: 1.0.0
- component: bmc
currentVersion: "1.00"
initialVersion: "1.00"
conditions:
- lastTransitionTime: "2024-04-25T20:32:06Z"
message: ""
observedGeneration: 1
reason: OK
status: "True"
type: Valid
- lastTransitionTime: "2024-04-25T20:32:06Z"
message: ""
observedGeneration: 1
reason: OK
status: "False"
type: ChangeDetected
lastUpdated: "2024-04-25T20:32:06Z"
1 | 要设置BIOS版本,请将name 属性设置为bios 。 |
2 | 要设置BIOS版本,请将url 属性设置为BIOS固件版本的URL。 |
3 | 要设置BMC版本,请将name 属性设置为bmc 。 |
4 | 要设置BMC版本,请将url 属性设置为BMC固件版本的URL。 |
保存更改并退出编辑器。
获取主机的机器名称
$ oc get bmh <host_name> -n openshift-machine name (1)
1 | 其中<host_name> 是主机的名称。机器名称显示在CONSUMER 字段下。 |
注释机器以将其从机器集删除
$ oc annotate machine <machine_name> machine.openshift.io/delete-machine=true -n openshift-machine-api (1)
1 | 其中<machine_name> 是要删除的机器的名称。 |
获取节点列表并计算工作节点的数量
$ oc get nodes
获取机器集
$ oc get machinesets -n openshift-machine-api
调整机器集规模
$ oc scale machineset <machineset_name> -n openshift-machine-api --replicas=<n-1> (1)
1 | 其中<machineset_name> 是机器集的名称,<n-1> 是减少的工作节点数量。 |
当主机进入Available
状态时,请扩大机器集规模以使HostFirmwareComponents
资源更改生效
$ oc scale machineset <machineset_name> -n openshift-machine-api --replicas=<n> (1)
1 | 其中<machineset_name> 是机器集的名称,<n> 是工作节点的数量。 |