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.6.2. 为生产环境创建基础架构 MachineSet
在生产部署中,至少部署三个 MachineSet 来容纳基础架构组件。日志记录聚合解决方案和服务网格都部署 Elasticsearch,而且 Elasticsearch 需要三个安装到不同节点上的实例。为获得高可用性,安装会将这些节点部署到不同的可用区。由于每个可用区需要不同的 MachineSet,因此至少创建三个 MachineSet。
6.2.1. 为不同的云创建 MachineSet 复制链接链接已复制到粘贴板!
将示例 MachineSet 用于您的云。
6.2.1.1. AWS 上 MachineSet 自定义资源的 YAML 示例 复制链接链接已复制到粘贴板!
此 YAML 示例定义了一个在 us-east-1a
Amazon Web Services (AWS) 区域中运行的 MachineSet,并创建通过 node-role.kubernetes.io/<role>: ""
标记的节点。
在本例中,<infrastructureID>
是基础架构 ID 标签,该标签基于您在置备集群时设定的集群 ID,而 <role>
则是要添加的节点标签。
- 1 3 5 11 12 13 14
- 指定基于置备集群时所设置的集群 ID 的基础架构 ID。如果已安装 OpenShift CLI 和
jq
软件包,您可以通过运行以下命令来获取基础架构 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 4 8
- 指定基础架构 ID、节点标签和区域。
- 6 7 9
- 指定要添加的节点标签。
- 10
- 为您的 OpenShift Container Platform 节点的 AWS 区域指定有效的 Red Hat Enterprise Linux CoreOS (RHCOS) AMI。
6.2.1.2. Azure 上 MachineSet 自定义资源的 YAML 示例 复制链接链接已复制到粘贴板!
此 YAML 示例定义了一个在 centralus
地区(region)的 1
Microsoft Azure 区域(zone)中运行的 MachineSet,并创建了通过 node-role.kubernetes.io/<role>: ""
标记的节点。
在本例中,<infrastructureID>
是基础架构 ID 标签,该标签基于您在置备集群时设定的集群 ID,而 <role>
则是要添加的节点标签。
- 1 5 7 12 13 14 17
- 指定基于置备集群时所设置的集群 ID 的基础架构 ID。如果已安装 OpenShift CLI 和
jq
软件包,您可以通过运行以下命令来获取基础架构 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 11 15 16
- 指定要添加的节点标签。
- 4 6 10
- 指定基础架构 ID、节点标签和地区。
- 18
- 指定您所在地区(region)内要放置 Machine 的区域 (zone)。确保您的地区支持您指定的区域。
6.2.1.3. GCP 上 MachineSet 自定义资源的 YAML 示例 复制链接链接已复制到粘贴板!
此 YAML 示例定义了一个在 Google Cloud Platform (GCP) 中运行的 MachineSet,并创建通过 node-role.kubernetes.io/<role>: ""
标记的节点。
在本例中,<infrastructureID>
是基础架构 ID 标签,该标签基于您在置备集群时设定的集群 ID,而 <role>
则是要添加的节点标签。
- 1 2 3 4 5 8 10 11 14
- 指定基于置备集群时所设置的集群 ID 的基础架构 ID。如果已安装 OpenShift CLI 和
jq
软件包,您可以通过运行以下命令来获取基础架构 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 - 12 16
- 指定基础架构 ID 和节点标签。
- 6 7 9
- 指定要添加的节点标签。
- 13 15
- 指定用于集群的 GCP 项目的名称。
6.2.2. 创建 MachineSet 复制链接链接已复制到粘贴板!
除了安装程序创建的 MachineSet 之外,还可创建自己的 MachineSet 来动态管理您选择的特定工作负载的机器计算资源。
先决条件
- 部署 OpenShift Container Platform 集群。
-
安装 OpenShift 命令行界面 (CLI),通常称为
oc
。 -
以具有
cluster-admin
权限的用户身份登录oc
。
流程
如示例所示,创建一个包含 MachineSet 自定义资源示例的新 YAML 文件,并将其命名为
<file_name>.yaml
。确保设置
<clusterID>
和<role>
参数值。创建新
MachineSet
:oc create -f <file_name>.yaml
$ oc create -f <file_name>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 查看 MachineSet 列表:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 当新 MachineSet 可用时,
DESIRED
和CURRENT
的值会匹配。如果 MachineSet 不可用,请等待几分钟,然后重新运行命令。有新的 MachineSet 可用后,检查机器及其引用的节点的状态:
oc describe machine <name> -n openshift-machine-api
$ oc describe machine <name> -n openshift-machine-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 查看新节点,并确认新节点具有您指定的标签:
oc get node <node_name> --show-labels
$ oc get node <node_name> --show-labels
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 查看命令输出,并确认
node-role.kubernetes.io/<your_label>
列在LABELS
列表中。
对 MachineSet 的任何更改都不会应用到 MachineSet 拥有的现有机器。例如,对现有 MachineSet 编辑或添加的标签不会传播到与该 MachineSet 关联的现有机器和节点。
后续步骤
如果需要其他可用区中的 MachineSet,请重复此过程来创建更多 MachineSet。