1.4. 创建和修改裸机资产
弃用通知: 使用裸机资产创建裸机集群的步骤已弃用。请参阅在内部环境中为创建集群。
裸机资产是您配置为运行 OpenShift Container Platform 集群的虚拟或物理服务器。Red Hat Advanced Cluster Management for Kubernetes 会连接到管理员创建的裸机资产。然后您可以在受管集群中部署裸机资产。
hub 集群清单控制器定义一个名为 BareMetalAsset
的自定义资源定义 (CRD),其中包含裸机资产清单记录。在置备受管集群时,清单控制器会将 BareMetalAsset
清单记录与受管集群中对应的 BareMetalHost
资源协调。
Red Hat Advanced Cluster Management 使用 BareMetalAsset
CR 根据配置管理数据库 (CMDB) 或类似的系统中输入的记录置备集群硬件。外部工具或自动化轮询 CMDB,并使用 Red Hat Advanced Cluster Management API 在 hub 集群中创建对应的 BareMetalAsset
和对应的 Secret
资源,以便后续在受管集群中部署。
使用以下步骤为由 Red Hat Advanced Cluster Management 管理的集群创建和管理裸机资产。
1.4.1. 先决条件
创建裸机资产前需要满足以下先决条件:
- 在 OpenShift Container Platform 版本 4.6 或更高版本上部署了 Red Hat Advanced Cluster Management hub 集群。
- 访问 Red Hat Advanced Cluster Management hub 集群以连接到裸机资产。
配置了裸机资产,以及登录凭证(包含登录和管理该资产所需的权限)。
注:裸机资产凭证包括您的管理员提供的资产的以下项:用户名密码 Baseboard Management Controller (BMC) Address 引导 NIC MAC 地址
1.4.2. 使用控制台创建裸机资产
要使用 Red Hat Advanced Cluster Management for Kubernetes 控制台创建裸机资产,请进入 Infrastructure > Bare metal assets。选择 Create bare metal asset,并在控制台中完成这个流程。
裸机资产的名称在创建集群时标识它。
裸机资产、受管裸机集群及其相关 secret 必须位于同一命名空间中。
+ 有权访问此命名空间的用户可以在创建集群时将此资产与集群相关联。
基板管理控制器地址是启用与主机通信的控制器。支持以下协议:
- IPMI,如需更多信息,请参阅 IPMI 2.0 规格。
- iDRAC,如需更多信息,请参阅Dell Remote Access Controller 9(iDRAC9)的支持。
- iRMC,如需更多信息,请参阅数据手册:FUJITSU Software ServerView Suite 集成远程管理控制器 - iRMC S5。
- Redfish,如需更多信息,请参阅 Redfish 规格。
引导 NIC MAC 地址是主机网络连接 NIC 的 MAC 地址,用于在裸机资产上置备主机。
您可以继续在裸机上创建集群。
1.4.3. 使用 CLI 创建裸机资产
使用 BareMetalAsset
CR 为集群中的特定命名空间创建裸机资产。每个 BareMetalAsset
都有一个对应的 Secret
,其中包含 Baseboard Management Controller (BMC) 凭证以及同一命名空间中的 secret 名称。
1.4.3.1. 先决条件
- 在 hub 集群中安装 Red Hat Advanced Cluster Management for Kubernetes。
- 安装 Red Hat OpenShift CLI (oc)。
-
以具有
cluster-admin
权限的用户身份登录。
1.4.3.2. 创建裸机资产
- 在您的环境中安装并置备裸机资产。
- 打开 BMC,并记录硬件的 IPMI 或 Redfish BMC 地址和 MAC 地址。
创建以下
BareMetalAsset
和Secret
CR,并将文件保存为baremetalasset-cr.yaml
:apiVersion: inventory.open-cluster-management.io/v1alpha1 kind: BareMetalAsset metadata: name: <baremetalasset-machine> namespace: <baremetalasset-namespace> spec: bmc: address: ipmi://<out_of_band_ip>:<port> credentialsName: baremetalasset-machine-secret bootMACAddress: "00:1B:44:11:3A:B7" hardwareProfile: "hardwareProfile" role: "<role>" clusterName: "<cluster name>" --- apiVersion: v1 kind: Secret metadata: name: baremetalasset-machine-secret type: Opaque data: username: <username> password: <password>
-
使用裸机资产所在机器的名称替换
baremetalasset-machine
。创建后,受管集群中的BareMetalHost
的名称与 hub 集群上对应的BareMetalAsset
的名称相同。BareMetalHost
名称应始终与对应的BareMetalAsset
名称匹配。 -
使用创建裸机资产的集群命名空间替换
baremetalasset-namespace
。 -
将
out_of_band_ip
和port
替换为裸机资产的地址和端口。对于 Redfish 寻址,请使用以下地址格式:redfish://<out-band-ip>/redfish/v1/Systems/1
。 -
根据计算机角色类型,将
role
替换为worker
、master
或保留为空。role
设置用于将裸机资产与集群中的特定机器角色类型匹配。BareMetalAsset
资源不应用于指定机器角色类型来填充另一个角色。role
角色值被用作键为inventory.open-cluster-management.io/role
的标签的值。这可让集群管理应用程序或用户查询用于特定角色的清单。 -
使用集群的名称替换
cluster_name
,集群管理应用程序或用户使用该名称查询与特定集群关联的清单。保留这个值为空以创建裸机资产,而不将其添加到集群部署中。 -
使用您的 secret 的用户名替换
username
。 -
将
password
替换为您的 secret 的密码。
-
使用裸机资产所在机器的名称替换
运行以下命令来创建
BareMetalAsset
CR:oc create -f baremetalasset-cr.yaml
检查
BareMetalAsset
是否已成功创建:oc get baremetalassets -A
输出示例:
NAMESPACE NAME AGE ocp-example-bm baremetalasset-machine 2m ocp-example-bm csv-f24-h27-000-r630-master-1-1 4d21h
1.4.4. 使用控制台批量导入裸机资产
您可以使用 CSV 格式列表使用 Red Hat Advanced Cluster Management for Kubernetes 控制台批量导入裸机资产。
1.4.4.1. 先决条件
- 在一个管理一个或多个 spoke 集群的 hub 集群上安装 Red Hat Advanced Cluster Management。
- 安装 OpenShift Container Platform CLI(oc)。
-
以具有
cluster-admin
权限的用户身份登录。
1.4.4.2. 导入资产
要导入一组裸机资产,请完成以下步骤:
- 在 Red Hat Advanced Cluster Management 控制台中,在导航菜单中选择 Cluster management > Bare metal asset。
选择 Import asset,并导入包含裸机资产数据的 CSV 文件。CSV 文件必须具有以下标题列:
hostName, hostNamespace, bmcAddress, macAddress, role (optional), username, password
1.4.5. 修改裸机资产
如果您需要修改裸机资产的设置,请完成以下步骤:
- 在 Red Hat Advanced Cluster Management for Kubernetes 控制台导航中,选择: Infrastructure > Bare metal assets。
- 选择表中您要修改的资产的选项菜单。
- 选择 Edit asset。
1.4.6. 删除裸机资产
当裸机资产不再用于任何集群时,您可以将其从可用的裸机资产列表中删除。删除未使用的资产既可以简化您的可用资产列表,又可以防止意外选择该资产。
要在控制台中删除裸机资产,请完成以下步骤:
- 在 Red Hat Advanced Cluster Management for Kubernetes 控制台导航中,选择: Infrastructure > Bare metal assets。
- 选择表中要删除的资产的选项菜单。
- 选择 Delete asset。
1.4.7. 使用 REST API 创建裸机资产
您可以使用 OpenShift Container Platform REST API 管理要在 Red Hat Advanced Cluster Management 集群中使用的裸机资产。当您有单独的 CMDB 应用程序或数据库来管理环境中的裸机资产时,这很有用。
1.4.7.1. 先决条件
- 在 hub 集群中安装 Red Hat Advanced Cluster Management for Kubernetes。
- 安装 OpenShift Container Platform CLI(oc)。
-
以具有
cluster-admin
权限的用户身份登录。
1.4.7.2. 创建裸机资产
要使用 REST API 创建裸机资产,请执行以下操作:
获取 hub 集群的登录令牌,并通过命令行登录集群。例如:
oc login --token=<login_token> --server=https://<hub_cluster_api_url>:6443
使用您要添加到集群的裸机资产详情修改以下 curl 命令,并运行命令。
$ curl --location --request POST '<hub_cluster_api_url>:6443/apis/inventory.open-cluster-management.io/v1alpha1/namespaces/<bare_metal_asset_namespace>/baremetalassets?fieldManager=kubectl-create' \ --header 'Authorization: Bearer <login_token>' \ --header 'Content-Type: application/json' \ --data-raw '{ "apiVersion": "inventory.open-cluster-management.io/v1alpha1", "kind": "BareMetalAsset", "metadata": { "name": "<baremetalasset_name>", "namespace": "<bare_metal_asset_namespace>" }, "spec": { "bmc": { "address": "ipmi://<ipmi_address>", "credentialsName": "<credentials-secret>" }, "bootMACAddress": "<boot_mac_address>", "clusterName": "<cluster_name>", "hardwareProfile": "hardwareProfile", "role": "worker" } }'
-
Replacebaremetalasset-name
使用裸机资产的名称。创建后,受管集群中的BareMetalHost
的名称与 hub 集群上对应的BareMetalAsset
的名称相同。BareMetalHost
名称应始终与对应的BareMetalAsset
名称匹配。 -
使用创建裸机资产的集群命名空间替换
baremetalasset-namespace
。 -
将
out_of_band_ip
和port
替换为裸机资产的地址和端口。对于 Redfish 寻址,请使用以下地址格式:redfish://<out-band-ip>/redfish/v1/Systems/1
。 -
根据计算机角色类型,将
role
替换为worker
、master
或保留为空。role
设置用于将裸机资产与集群中的特定机器角色类型匹配。BareMetalAsset
资源不应用于指定机器角色类型来填充另一个角色。role
角色值被用作键为inventory.open-cluster-management.io/role
的标签的值。这可让集群管理应用程序或用户查询用于特定角色的清单。 使用集群的名称替换
cluster_name
,集群管理应用程序或用户使用该名称查询与特定集群关联的清单。保留这个值为空以创建裸机资产,而不将其添加到集群部署中。注:对于上一个 curl 命令,假设 API 服务器通过 HTTPS 提供,并可以安全地访问。在开发或测试环境中,您可以传递
--insecure
参数。
-
提示: 您可以将 --v=9
附加到 oc
命令来查看生成的操作的原始输出。这对于确定 oc
命令的 REST API 路由非常有用。