$ oc get infrastructure cluster -o jsonpath='{.status.platform}'
您可以创建不同的计算机器集来为您的 Nutanix 上的 OpenShift Container Platform 集群提供特定用途。例如,您可以创建基础设施机器集和相关的机器,以便您可以将支持的工作负载迁移到新机器。
您只能在 Machine API 可运行的集群中使用高级机器管理和扩展功能。具有用户预配基础设施的集群需要额外的验证和配置才能使用 Machine API。 基础设施平台类型为 要查看集群的平台类型,请运行以下命令
|
此示例 YAML 定义了一个 Nutanix 计算机器集,该机器集创建标记有node-role.kubernetes.io/<role>: ""
的节点。
在此示例中,<infrastructure_id>
是基于您在预配集群时设置的集群 ID 的基础设施 ID 标签,<role>
是要添加的节点标签。
在以下示例中,您可以使用 OpenShift CLI (oc
) 获取集群的一些值。
<infrastructure_id>
字符串是基于您在预配集群时设置的集群 ID 的基础设施 ID。如果您安装了 OpenShift CLI,则可以通过运行以下命令获取基础设施 ID
$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
apiVersion: machine.openshift.io/v1beta1
kind: MachineSet
metadata:
labels:
machine.openshift.io/cluster-api-cluster: <infrastructure_id> (1)
machine.openshift.io/cluster-api-machine-role: <role> (2)
machine.openshift.io/cluster-api-machine-type: <role>
name: <infrastructure_id>-<role>-<zone> (3)
namespace: openshift-machine-api
annotations: (4)
machine.openshift.io/memoryMb: "16384"
machine.openshift.io/vCPU: "4"
spec:
replicas: 3
selector:
matchLabels:
machine.openshift.io/cluster-api-cluster: <infrastructure_id>
machine.openshift.io/cluster-api-machineset: <infrastructure_id>-<role>-<zone>
template:
metadata:
labels:
machine.openshift.io/cluster-api-cluster: <infrastructure_id>
machine.openshift.io/cluster-api-machine-role: <role>
machine.openshift.io/cluster-api-machine-type: <role>
machine.openshift.io/cluster-api-machineset: <infrastructure_id>-<role>-<zone>
spec:
metadata:
labels:
node-role.kubernetes.io/<role>: ""
providerSpec:
value:
apiVersion: machine.openshift.io/v1
bootType: "" (5)
categories: (6)
- key: <category_name>
value: <category_value>
cluster: (7)
type: uuid
uuid: <cluster_uuid>
credentialsSecret:
name: nutanix-credentials
image:
name: <infrastructure_id>-rhcos (8)
type: name
kind: NutanixMachineProviderConfig
memorySize: 16Gi (9)
project: (10)
type: name
name: <project_name>
subnets:
- type: uuid
uuid: <subnet_uuid>
systemDiskSize: 120Gi (11)
userDataSecret:
name: <user_data_secret> (12)
vcpuSockets: 4 (13)
vcpusPerSocket: 1 (14)
1 | 对于<infrastructure_id> ,请指定基于您在预配集群时设置的集群 ID 的基础设施 ID。 |
||
2 | 指定要添加的节点标签。 | ||
3 | 指定基础设施 ID、节点标签和区域。 | ||
4 | 集群自动伸缩器的批注。 | ||
5 | 指定计算机器使用的引导类型。有关引导类型的更多信息,请参见了解虚拟化环境中的 UEFI、安全启动和 TPM。有效值为Legacy 、SecureBoot 或UEFI 。默认值为Legacy 。
|
||
6 | 指定要应用于计算机器的一个或多个 Nutanix Prism 类别。此节需要key 和value 参数,用于 Prism Central 中存在的类别键值对。有关类别的更多信息,请参见类别管理。 |
||
7 | 指定 Nutanix Prism Element 集群配置。在此示例中,集群类型为uuid ,因此有一个uuid 节。 |
||
8 | 指定要使用的镜像。使用集群中现有默认计算机器集中的镜像。 | ||
9 | 指定集群的内存大小(以 Gi 为单位)。 | ||
10 | 指定用于集群的 Nutanix 项目。在此示例中,项目类型为name ,因此有一个name 节。 |
||
11 | 指定系统磁盘的大小(以 Gi 为单位)。 | ||
12 | 指定用户数据 YAML 文件中openshift-machine-api 命名空间中的密钥名称。使用安装程序在默认计算机器集中填充的值。 |
||
13 | 指定 vCPU 套接字数。 | ||
14 | 指定每个套接字的 vCPU 数量。 |
除了安装程序创建的计算机器集之外,您还可以创建自己的计算机器集,以动态管理您选择的特定工作负载的机器计算资源。
部署 OpenShift Container Platform 集群。
安装 OpenShift CLI (oc
)。
以具有cluster-admin
权限的用户身份登录到oc
。
创建一个新的YAML文件,其中包含计算机器集自定义资源 (CR) 示例,并将其命名为<file_name>.yaml
。
确保您设置了<clusterID>
和<role>
参数值。
可选:如果您不确定为特定字段设置哪个值,可以检查集群中现有的计算机器集。
要列出集群中的计算机器集,请运行以下命令
$ oc get machinesets -n openshift-machine-api
NAME DESIRED CURRENT READY AVAILABLE AGE
agl030519-vplxk-worker-us-east-1a 1 1 1 1 55m
agl030519-vplxk-worker-us-east-1b 1 1 1 1 55m
agl030519-vplxk-worker-us-east-1c 1 1 1 1 55m
agl030519-vplxk-worker-us-east-1d 0 0 55m
agl030519-vplxk-worker-us-east-1e 0 0 55m
agl030519-vplxk-worker-us-east-1f 0 0 55m
要查看特定计算机器集自定义资源 (CR) 的值,请运行以下命令
$ oc get machineset <machineset_name> \
-n openshift-machine-api -o yaml
apiVersion: machine.openshift.io/v1beta1
kind: MachineSet
metadata:
labels:
machine.openshift.io/cluster-api-cluster: <infrastructure_id> (1)
name: <infrastructure_id>-<role> (2)
namespace: openshift-machine-api
spec:
replicas: 1
selector:
matchLabels:
machine.openshift.io/cluster-api-cluster: <infrastructure_id>
machine.openshift.io/cluster-api-machineset: <infrastructure_id>-<role>
template:
metadata:
labels:
machine.openshift.io/cluster-api-cluster: <infrastructure_id>
machine.openshift.io/cluster-api-machine-role: <role>
machine.openshift.io/cluster-api-machine-type: <role>
machine.openshift.io/cluster-api-machineset: <infrastructure_id>-<role>
spec:
providerSpec: (3)
...
1 | 集群基础设施 ID。 | ||
2 | 默认节点标签。
|
||
3 | 计算机器集 CR 的<providerSpec> 部分中的值是特定于平台的。有关 CR 中<providerSpec> 参数的更多信息,请参阅您的提供程序的示例计算机器集 CR 配置。 |
通过运行以下命令创建MachineSet
CR
$ oc create -f <file_name>.yaml
通过运行以下命令查看计算机器集列表
$ oc get machineset -n openshift-machine-api
NAME DESIRED CURRENT READY AVAILABLE AGE
agl030519-vplxk-infra-us-east-1a 1 1 1 1 11m
agl030519-vplxk-worker-us-east-1a 1 1 1 1 55m
agl030519-vplxk-worker-us-east-1b 1 1 1 1 55m
agl030519-vplxk-worker-us-east-1c 1 1 1 1 55m
agl030519-vplxk-worker-us-east-1d 0 0 55m
agl030519-vplxk-worker-us-east-1e 0 0 55m
agl030519-vplxk-worker-us-east-1f 0 0 55m
当新的计算机器集可用时,DESIRED
和CURRENT
值匹配。如果计算机器集不可用,请等待几分钟,然后再次运行该命令。
您可以使用机器集标签来指示集群自动缩放器可以使用哪些机器来部署支持 GPU 的节点。
您的集群使用集群自动缩放器。
在您要为集群自动缩放器创建机器以用于部署支持 GPU 的节点的机器集上,添加cluster-api/accelerator
标签
apiVersion: machine.openshift.io/v1beta1
kind: MachineSet
metadata:
name: machine-set-name
spec:
template:
spec:
metadata:
labels:
cluster-api/accelerator: nvidia-t4 (1)
1 | 指定您选择的标签,该标签由字母数字字符、- 、_ 或. 组成,并且以字母数字字符开头和结尾。例如,您可以使用nvidia-t4 表示 Nvidia T4 GPU,或使用nvidia-a10g 表示 A10G GPU。
|