第 13 章 使用 Cluster API 管理机器
13.1. 关于集群 API
使用集群 API 管理机器只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
Cluster API 是一个上游项目,被集成到 OpenShift Container Platform 中,作为 Amazon Web Services (AWS)和 Google Cloud Platform (GCP) 的技术预览。
13.1.1. 集群 API 概述
您可以使用 Cluster API 来创建和管理 OpenShift Container Platform 集群中的计算机器和计算机器集。这个功能是使用 Machine API 管理机器的补充或替代功能。
对于 OpenShift Container Platform 4.15 集群,您可以使用 Cluster API 在集群安装完成后执行节点主机置备管理操作。该系统在公有或私有云基础架构之上启用弹性动态置备方法。
使用 Cluster API 技术预览,您可以为支持的供应商在 OpenShift Container Platform 集群中创建计算机器和计算机器集。您还可以探索此实施可能不能使用 Machine API 启用的功能。
13.1.1.1. 集群 API 的优点
通过使用集群 API,OpenShift Container Platform 用户和开发人员能够实现以下优点:
- 使用上游社区 Cluster API 基础架构提供程序的选项可能不受 Machine API 支持。
- 为基础架构供应商维护机器控制器的第三方合作机会。
- 在 OpenShift Container Platform 中,使用同一组 Kubernetes 工具进行基础架构管理的能力。
- 使用支持 Machine API 不提供的功能的集群 API 创建计算机器集的功能。
13.1.1.2. 集群 API 限制
使用集群 API 管理机器是一个技术预览功能,有以下限制:
要使用这个功能,您必须启用
TechPreviewNoUpgrade
功能集。重要启用此功能集无法撤消并阻止次版本更新。
- 只有 AWS 和 GCP 集群才能使用 Cluster API。
- 您必须手动创建 Cluster API 需要的主要资源。如需更多信息,请参阅"开始使用集群 API"。
- 您不能使用 Cluster API 管理 control plane 机器。
- 不支持将 Machine API 创建的现有计算机器集迁移到 Cluster API 计算机器集。
- 使用 Machine API 的全功能奇偶校验不可用。
对于使用 Cluster API 的集群,OpenShift CLI (
oc
) 命令会优先选择 Cluster API(与 Machine API 对象相比)。此行为会影响任何对集群 API 和 Machine API 中代表的对象执行操作的oc
命令。有关此问题的更多信息和临时解决方案,请参阅故障排除内容中的"使用 CLI 时引用预期的对象"。
13.1.2. 集群 API 架构
OpenShift Container Platform 与上游 Cluster API 集成由 Cluster CAPI Operator 实现和管理。Cluster CAPI Operator 及其操作对象在 openshift-cluster-api
命名空间中置备,这与使用 openshift-machine-api
命名空间中的 Machine API 相反。
13.1.2.1. Cluster CAPI Operator
Cluster CAPI Operator 是一个 OpenShift Container Platform Operator,维护 Cluster API 资源的生命周期。此 Operator 负责在 OpenShift Container Platform 集群中部署 Cluster API 项目的所有管理任务。
如果正确配置了集群以允许使用 Cluster API,Cluster CAPI Operator 会在集群中安装 Cluster API 组件。
如需更多信息,请参阅 Cluster Operator 参考内容中的 Cluster CAPI Operator 条目。
13.1.2.2. Cluster API 主资源
集群 API 由以下主要资源组成:对于这个功能的技术预览,您必须在 openshift-cluster-api
命名空间中手动创建这些资源。
- 集群
- 代表由 Cluster API 管理的集群的基本单元。
- 基础架构
- 特定于供应商的资源,用于定义集群中所有计算机器集(如地区和子网)共享的属性。
- 机器模板
- 特定于提供程序的模板,用于定义计算机器组创建的机器的属性。
- 机器集
一组机器。
计算机器集适用于机器,副本集则适用于 pod。要添加机器或缩减机器,请更改计算机器设置自定义资源上的
replicas
字段来满足您的计算需求。使用 Cluster API 时,计算机器集引用
Cluster
对象和特定于供应商的机器模板。- 机器
描述节点主机的基本单元。
Cluster API 根据机器模板中的配置创建机器。