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.第 5 章 创建 Windows 机器集
5.1. 在 AWS 上创建 Windows 机器集 复制链接链接已复制到粘贴板!
您可以在 Amazon Web Services(AWS)上的 OpenShift Container Platform 集群中创建 Windows MachineSet 对象来满足特定目的。例如,您可以创建基础架构 Windows 机器集和相关机器,以便将支持的 Windows 工作负载转移到新的 Windows 机器上。
先决条件
- 已使用 Operator Lifecycle Manager(OLM)安装 Windows Machine Config Operator(WMCO)。
您可以使用受支持的 Windows Server 作为操作系统镜像。
根据您的 Windows Server 发行版本,使用以下
aws命令之一来查询有效的 AMI 镜像:Windows Server 2022 命令示例
aws ec2 describe-images --region <aws_region_name> --filters "Name=name,Values=Windows_Server-2022*English*Core*Base*" "Name=is-public,Values=true" --query "reverse(sort_by(Images, &CreationDate))[*].{name: Name, id: ImageId}" --output table$ aws ec2 describe-images --region <aws_region_name> --filters "Name=name,Values=Windows_Server-2022*English*Core*Base*" "Name=is-public,Values=true" --query "reverse(sort_by(Images, &CreationDate))[*].{name: Name, id: ImageId}" --output tableCopy to Clipboard Copied! Toggle word wrap Toggle overflow Windows Server 2019 命令示例
aws ec2 describe-images --region <aws_region_name> --filters "Name=name,Values=Windows_Server-2019*English*Core*Base*" "Name=is-public,Values=true" --query "reverse(sort_by(Images, &CreationDate))[*].{name: Name, id: ImageId}" --output table$ aws ec2 describe-images --region <aws_region_name> --filters "Name=name,Values=Windows_Server-2019*English*Core*Base*" "Name=is-public,Values=true" --query "reverse(sort_by(Images, &CreationDate))[*].{name: Name, id: ImageId}" --output tableCopy to Clipboard Copied! Toggle word wrap Toggle overflow 其中:
- <aws_region_name>
- 指定 AWS 区域的名称。
5.1.1. Machine API 概述 复制链接链接已复制到粘贴板!
Machine API 将基于上游 Cluster API 项目的主要资源与自定义 OpenShift Container Platform 资源相结合。
对于 OpenShift Container Platform 4.11 集群,Machine API 在集群安装完成后执行所有节点主机置备管理操作。由于此系统的缘故,OpenShift Container Platform 4.11 在公有或私有云基础架构之上提供了一种弹性动态置备方法。
两种主要资源分别是:
- Machines
-
描述节点主机的基本单元。机器具有
providerSpec规格,用于描述为不同云平台提供的计算节点的类型。例如,计算节点的机器类型可能会定义特定的机器类型和所需的元数据。 - 机器集
MachineSet资源是机器组。机器集适用于机器,复制集则适用于 pod。如果需要更多机器或必须缩减规模,则可以更改机器集的 replicas 字段来满足您的计算需求。警告control plane 机器不能由机器集管理。
以下自定义资源可为集群添加更多功能:
- 机器自动扩展
MachineAutoscaler资源自动扩展云中的计算机器。您可以为指定计算机器集中的节点设置最小和最大扩展界限,机器自动扩展则维护该范围内的节点。ClusterAutoscaler对象存在后,MachineAutoscaler对象生效。ClusterAutoscaler和MachineAutoscaler资源都由ClusterAutoscalerOperator对象提供。- 集群自动扩展
- 此资源基于上游集群自动扩展项目。在 OpenShift Container Platform 实现中,它通过扩展机器集 API 来与 Machine API 集成。您可以为核心、节点、内存和 GPU 等资源设置集群范围的扩展限制。您可以设置优先级,使集群对 Pod 进行优先级排序,以便不针对不太重要的 Pod 使新节点上线。您还可以设置扩展策略,以便可以扩展节点,但不会缩减节点。
- 机器健康检查
-
MachineHealthCheck资源可检测机器何时处于不健康状态并将其删除,然后在支持的平台上生成新的机器。
在 OpenShift Container Platform 版本 3.11 中,您无法轻松地推出多区架构,因为集群不负责管理机器置备。自 OpenShift Container Platform 版本 4.1 起,此过程变得更加容易。每个机器集限定在一个区域,因此安装程序可以代表您将机器集分发到多个可用区。然后,由于您的计算是动态的,因此在面对区域故障时,您始终都有一个区域来应对必须重新平衡机器的情况。在没有多个可用区的全局 Azure 区域,您可以使用可用性集来确保高可用性。自动扩展器在集群生命周期内尽可能提供平衡。
5.1.2. AWS 上 Windows MachineSet 对象的 YAML 示例 复制链接链接已复制到粘贴板!
此 YAML 示例定义了一个在 Amazon Web Services(AWS)上运行的 Windows MachineSet 对象,它可响应 Windows Machine Config Operator(WMCO)。
- 1 3 5 10 13 14 15
- 指定基于置备集群时所设置的集群 ID 的基础架构 ID。您可以运行以下命令来获取基础架构 ID:
oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 2 4 6
- 指定基础架构 ID、worker 标签和区。
- 7
- 将机器配置为 Windows 机器。
- 8
- 将 Windows 节点配置为计算机器。
- 9
- 指定安装了容器运行时的受支持的 Windows 镜像的 AMI ID。
- 11
- 指定 AWS 区域,如
us-east-1a。 - 12
- 指定 AWS 区域,如
us-east-1。 - 16
- 由 WMCO 配置第一个 Windows 机器时创建的。之后,所有后续机器组都可以使用
windows-user-data。
5.1.3. 创建机器集 复制链接链接已复制到粘贴板!
除了安装程序创建的计算机器集外,您还可以创建自己的来动态管理您选择的特定工作负载的机器计算资源。
先决条件
- 部署一个 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-apiCopy 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 yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
运行以下命令来创建
MachineSetCR:oc create -f <file_name>.yaml
$ oc create -f <file_name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行以下命令,查看计算机器集列表:
oc get machineset -n openshift-machine-api
$ oc get machineset -n openshift-machine-apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 当新机器集可用时,
DESIRED和CURRENT的值会匹配。如果机器集不可用,请等待几分钟,然后再次运行命令。