This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.2.7. 在 OpenStack 上创建机器集
您可以在 Red Hat OpenStack Platform(RHOSP)上的 OpenShift Container Platform 集群中创建不同的机器集来满足特定目的。例如,您可以创建基础架构机器集和相关的机器,以便将支持型工作负载转移到新机器上。
您只能在 Machine API 操作的集群中使用高级机器管理和扩展功能。具有用户置备的基础架构的集群需要额外的验证和配置才能使用 Machine API。
具有基础架构平台类型 none
的集群无法使用 Machine API。即使附加到集群的计算机器安装在支持该功能的平台上,也会应用这个限制。在安装后无法更改此参数。
要查看集群的平台类型,请运行以下命令:
oc get infrastructure cluster -o jsonpath='{.status.platform}'
$ oc get infrastructure cluster -o jsonpath='{.status.platform}'
2.7.1. RHOSP 上机器设置自定义资源的 YAML 示例 复制链接链接已复制到粘贴板!
此 YAML 示例定义了一个在 Red Hat OpenStack Platform(RHOSP)上运行的机器集,并创建带有 node-role.kubernetes.io/<role>: ""
标记的节点。
在本例中,<infrastructure_id>
是基础架构 ID 标签,该标签基于您在置备集群时设定的集群 ID,而 <role>
则是要添加的节点标签。
- 1 5 7 13 15 16 17 18
- 指定基于置备集群时所设置的集群 ID 的基础架构 ID。如果已安装 OpenShift CLI,您可以通过运行以下命令来获取基础架构 ID:
oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 2 3 8 9 19
- 指定要添加的节点标签。
- 4 6 10
- 指定基础架构 ID 和节点标签。
- 11
- 12
- 部署到多个网络需要。要指定多个网络,请在网络数组中添加另一个条目。此外,您必须包含用作
primarySubnet
值的网络。 - 14
- 指定您要发布节点端点的 RHOSP 子网。通常,这与
install-config.yaml
文件中的machineSubnet
值相同。
2.7.2. 在 RHOSP 上使用 SR-IOV 的机器设置自定义资源的 YAML 示例 复制链接链接已复制到粘贴板!
如果您为单根 I/O 虚拟化(SR-IOV)配置了集群,您可以创建使用该技术的机器集。
此 YAML 示例定义了一个使用 SR-IOV 网络的机器集。它创建的节点标记为 node-role.openshift.io/<node_role>: ""
在本例中,infrastructure_id
是基础架构 ID 标签,该标签基于您在置备集群时设定的集群 ID,而 node_role
则是要添加的节点标签。
示例假定两个名为"radio"和"uplink"的 SR-IOV 网络。网络在 spec.template.spec.providerSpec.value.ports
列表中的端口定义中使用。
本例中仅描述特定于 SR-IOV 部署的参数。要查看更常规的示例,请参阅 "Sample YAML for a machine set custom resource on RHOSP"。
使用 SR-IOV 网络的机器集示例
对于由网络和子网列表中的条目创建的端口,启用中继(Trunking)。从这些列表中创建的端口名称遵循 <machine_name>-<nameSuffix>
模式。端口定义中需要 nameSuffix
字段。
您可以为每个端口启用中继。
另外,您还可以在端口中添加标签作为其标签(tags)
列表的一部分。
2.7.3. 禁用端口安全性的 SR-IOV 部署的 YAML 示例 复制链接链接已复制到粘贴板!
要在禁用端口安全的网络上创建单根 I/O 虚拟化(SR-IOV)端口,请定义一个机器集,将端口作为 spec.template.spec.providerSpec.value.ports
列表中的项来包含。与标准 SR-IOV 机器集的区别在于,自动安全组以及使用网络和子网接口创建的端口允许的地址对配置。
您为机器子网定义的端口需要:
- API 和入口虚拟 IP 端口允许的地址对
- 计算安全组
- 附加到机器网络和子网
本例中仅描述特定于禁用端口安全性的 SR-IOV 部署的参数。要查看更常规的示例,请参阅 RHOSP 上使用 SR-IOV 的机器设置自定义资源的 Sample YAML。
使用 SR-IOV 网络并禁用端口安全性的机器集示例
对于由网络和子网列表中的条目创建的端口,启用中继(Trunking)。从这些列表中创建的端口名称遵循 <machine_name>-<nameSuffix>
模式。端口定义中需要 nameSuffix
字段。
您可以为每个端口启用中继。
另外,您还可以在端口中添加标签作为其标签(tags)
列表的一部分。
如果您的集群使用 Kuryr,且 RHOSP SR-IOV 网络禁用端口安全,计算机器的主要端口必须具有:
-
spec.template.spec.providerSpec.value.networks.portSecurityEnabled
参数的值设置为false
。 -
对于每个子网,
spec.template.spec.providerSpec.value.networks.subnets.portSecurityEnabled
参数的值设置为false
。 -
spec.template.spec.providerSpec.value.securityGroups
的值设为空:[]
。
Kuryr 上使用 SR-IOV 且禁用端口安全性的集群集的示例部分
在这种情况下,您可以在创建虚拟机后将计算安全组应用到主虚拟机接口。例如,从命令行:
openstack port set --enable-port-security --security-group <infrastructure_id>-<node_role> <main_port_ID>
$ openstack port set --enable-port-security --security-group <infrastructure_id>-<node_role> <main_port_ID>
2.7.4. 创建机器集 复制链接链接已复制到粘贴板!
除了安装程序创建的计算机器集外,您还可以创建自己的来动态管理您选择的特定工作负载的机器计算资源。
先决条件
- 部署一个 OpenShift Container Platform 集群。
-
安装 OpenShift CLI(
oc
)。 -
以具有
cluster-admin
权限的用户身份登录oc
。
流程
创建一个包含机器集自定义资源(CR)示例的新 YAML 文件,并将其命名为
<file_name>.yaml
。确保设置
<clusterID>
和<role>
参数值。可选:如果您不确定要为特定字段设置哪个值,您可以从集群中检查现有计算机器集:
要列出集群中的计算机器集,请运行以下命令:
oc get machinesets -n openshift-machine-api
$ oc get machinesets -n openshift-machine-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要查看特定计算机器集自定义资源 (CR) 的值,请运行以下命令:
oc get machineset <machineset_name> \ -n openshift-machine-api -o yaml
$ oc get machineset <machineset_name> \ -n openshift-machine-api -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
运行以下命令来创建
MachineSet
CR:oc create -f <file_name>.yaml
$ oc create -f <file_name>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行以下命令,查看计算机器集列表:
oc get machineset -n openshift-machine-api
$ oc get machineset -n openshift-machine-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 当新机器集可用时,
DESIRED
和CURRENT
的值会匹配。如果机器集不可用,请等待几分钟,然后再次运行命令。