1.4. 使用多集群引擎 operator 的集群生命周期发行注记
了解多集群引擎操作员的集群生命周期的新功能和增强功能、支持、弃用、删除和已修复的问题。
重要提示: OpenShift Container Platform 发行说明未记录在本产品文档中。对于您的 OpenShift Container Platform 集群,请参阅OpenShift Container Platform 发行说明。
已弃用:多集群引擎运算符 2.4 及更早版本不再受支持。文档可能仍然可用,但不会发布任何针对已修复问题或其他更新的勘误表。
最佳实践: 升级到最新版本。
- 除非仅在最新版本的 OpenShift Container Platform 上引入并测试特定组件或功能,否则文档会参考最早支持的 OpenShift Container Platform 版本。
- 有关完整的支持信息,请参阅多集群引擎操作员支持矩阵。如需生命周期信息,请参阅 Red Hat OpenShift Container Platform 生命周期政策。
- 如果您在当前支持的某个版本或产品文档时遇到问题,请访问 红帽支持,您可以在其中进行故障排除、查看知识库文章、与支持团队连接,或创建一个问题单。您必须使用您的凭证登录。
- 您还可以访问红帽客户门户文档,Red Hat Customer Portal FAQ。
1.4.1. 多集群引擎操作员的集群生命周期的新功能和增强功能 复制链接链接已复制到粘贴板!
了解 Kubernetes 操作员 2.9 的多集群引擎的新功能和增强功能、支持、弃用、删除以及勘误版本的修复问题。
多集群引擎操作员版本 2.9 与 Red Hat Advanced Cluster Management 版本 2.14 一起发布,用于集群生命周期管理,但您也可以将独立的多集群引擎操作员与 OpenShift Container Platform 中心集群一起使用。
有关完整的支持信息,包括支持的 OpenShift Container Platform 版本,请参阅多集群引擎操作员支持矩阵。如需生命周期信息,请参阅 Red Hat OpenShift Container Platform 生命周期政策。
使用多集群引擎操作员功能在各种基础设施云提供商、私有云和本地数据中心创建、导入、管理和销毁 Kubernetes 集群。
重要:
- 集群管理支持所有通过云原生计算基金会 (CNCF) Kubernetes 一致性计划认证的提供商。为您的混合云多集群管理选择 CNFC 可识别的供应商。请参阅以下有关使用 CNFC 供应商的信息:
- 了解 CNFC 如何通过认证的 Kubernetes 一致性进行认证。
- 有关 CNFC 第三方供应商的信息,请参阅红帽 与第三方组件的支持,或 联系红帽支持。
-
如果您具有自己的 CNFC 一致性认证集群,您需要将 OpenShift Container Platform CLI
oc命令改为 Kubernetes CLI 命令kubectl。
1.4.1.1. 每个组件的新功能和增强功能 复制链接链接已复制到粘贴板!
了解有关特定组件的新功能的更多信息。
注意: 一些功能和组件 作为技术预览 发布。
重要提示: OpenShift Container Platform 的托管控制平面文档位于 OpenShift Container Platform 文档中。请参阅托管控制平面概述。
了解多集群引擎操作员安装附带的新功能和增强功能:
-
您现在可以更改本地集群的名称。默认情况下,运行多集群引擎运算符的集群是本地集群,它是一个自我管理的中心集群。当
enabled字段设置为false(禁用本地集群功能)时,您可以更改名称。<your-local-cluster-name>值请使用 34 个或更少的字符。本地集群资源和命名空间反映了这一变化。
了解多集群引擎操作员的集群生命周期的新功能和增强功能:
-
现在,
cluster-api组件通常在多集群引擎操作员安装期间可用,以从托管集群内提供集群 API 生命周期功能。cluster-api-provider-aws通常也在安装过程中可用,为使用托管控制平面的 AWS 上的 Red Hat OpenShift Service 的集群创建、配置和管理提供 Kubernetes 风格的 API。默认情况下,这两个组件都是禁用的。 -
您可以使用
metal3基础设施提供程序和 OpenShift Container Platform 辅助引导程序和控制平面提供程序,通过 Cluster API 安装 OpenShift Container Platform 管理的集群。请参阅使用 Cluster API 安装托管集群。 -
现在,您可以使用中心集群用户令牌访问
kube-apiserver资源来收集特定资源、获取日志和查看数据。要了解更多信息,请参阅使用中心集群用户令牌收集数据。 - 现在,您可以在需要隔离注册表配置的多集群环境中为每个集群定义一个唯一的镜像注册表。要了解更多信息,请参阅为每个集群配置镜像注册表。
-
将托管集群的自动导入过程自定义为
ImportOnly(一次性过程)或ImportAndSync(持续过程)。要了解更多信息,请参阅自定义自动导入策略。 -
现在,启用中央基础设施管理时,您可以对
OSImageCACertConfigMap使用任何文件名。要了解更多信息,请参阅在断开连接的环境中启用中央基础设施管理。
如果您使用随后安装的 Red Hat Advanced Cluster Management 的多集群引擎操作员,请参阅此版本的Red Hat Advanced Cluster Management 的新功能和增强功能。
1.4.2. 修复了多集群引擎操作员的集群生命周期问题 复制链接链接已复制到粘贴板!
默认情况下,勘误版本的修复问题会在发布时自动应用。当发行版本可用时,会在此处发布详情。如果没有列出发行说明,则表示该产品目前没有勘误版本。
重要: 为了便于参考,JIRA 链接和 JIRA 号可能会添加到内容中并在内部使用。用户可能不能使用访问的链接。了解 Red Hat发布的勘误表类型。
1.4.3. 多集群引擎操作员的集群生命周期的已知问题 复制链接链接已复制到粘贴板!
查看此版本的多集群引擎操作员的集群生命周期的已知问题,或上一版本延续的已知问题。
集群管理已知问题和限制是 multicluster engine operator 文档的集群生命周期 的一部分。与Red Hat Advanced Cluster Management 集成的多集群引擎操作员的已知问题记录在Red Hat Advanced Cluster Management 的发行说明中。
重要: OpenShift Container Platform 发行注记没有包括在此文档中。对于您的 OpenShift Container Platform 集群,请参阅OpenShift Container Platform 发行说明。
1.4.3.1. 安装 复制链接链接已复制到粘贴板!
了解在 multicluster engine operator 安装过程中已知的问题和限制。
1.4.3.1.1. installNamespace 字段只能有一个值 复制链接链接已复制到粘贴板!
启用 managed-serviceaccount 附加组件时,ManagedClusterAddOn 资源中的 installNamespace 字段必须有 open-cluster-management-agent-addon 值。其他值将被忽略。managed-serviceaccount 附加组件代理总是在受管集群上的 open-cluster-management-agent-addon 命名空间中部署。
1.4.3.2. 集群管理 复制链接链接已复制到粘贴板!
了解多集群引擎操作员的集群生命周期的已知问题,例如创建、发现、导入和删除集群的问题,以及多集群引擎操作员的更多集群管理问题。
1.4.3.2.1. cluster-api-provider-aws webhooks 阻止托管控制平面部署 复制链接链接已复制到粘贴板!
OpenShift Container Platform 的托管控制平面无法管理 AWS 中的基础设施资源,因为cluster-api-provider-aws资源与hypershift-local-hosting组件安装的hypershift资源之间存在 API 冲突。
要将hypershift组件用于 AWS 平台托管的集群,请不要启用cluster-api和cluster-api-provider-aws组件,它们默认设置为enabled: false 。请参阅以下禁用组件的默认设置:
确保如果启用了hypershift-local-hosting (如下面的 YAML 示例中所示),则前面的组件未启用。
- configOverrides: {}
enabled: true
name: hypershift-local-hosting
- configOverrides: {}
enabled: true
name: hypershift-local-hosting
如果您使用 node-role.kubernetes.io/infra 污点对基础架构节点具有 NoExecute 效果,则附加组件 pod 可能会卡住。
要临时解决这个问题,对于 node-role.kubernetes.io/infra 污点使用 NoSchedule effect 而不是 NoExecute,或者从您的基础架构节点中删除 node-role.kubernetes.io/infra 污点。
1.4.3.2.3. nmstate的限制 复制链接链接已复制到粘贴板!
通过配置复制和粘贴功能来加快开发速度。要在 assisted-installer 中配置 copy-from-mac 功能,您必须将 mac-address 添加到 nmstate 定义接口和 mac-mapping 接口。mac-mapping 接口在 nmstate 定义接口之外提供。因此,您必须提供相同的 mac-address 两次。
1.4.3.2.4. 删除受管集群集不会自动删除其标签 复制链接链接已复制到粘贴板!
删除 ManagedClusterSet 后,添加到每个受管集群的标签不会被自动删除。从已删除受管集群集中包含的每个受管集群手动删除该标签。该标签类似以下示例:cluster.open-cluster-management.io/clusterset:<ManagedClusterSet Name>。
1.4.3.2.5. ClusterClaim 错误 复制链接链接已复制到粘贴板!
如果您针对 ClusterPool 创建 Hive ClusterClaim 并手动将 ClusterClaimspec 生命周期字段设置为无效的 golang 时间值,则产品将停止实现并协调所有 ClusterClaims,而不仅仅是不正确的声明。
您在 clusterclaim-controller pod 日志中看到以下错误,这是带有 PoolName 和无效生命周期的 特定示例 :
E0203 07:10:38.266841 1 reflector.go:138] sigs.k8s.io/controller-runtime/pkg/cache/internal/informers_map.go:224: Failed to watch *v1.ClusterClaim: failed to list *v1.ClusterClaim: v1.ClusterClaimList.Items: []v1.ClusterClaim: v1.ClusterClaim.v1.ClusterClaim.Spec: v1.ClusterClaimSpec.Lifetime: unmarshalerDecoder: time: unknown unit "w" in duration "1w", error found in #10 byte of ...|time":"1w"}},{"apiVe|..., bigger context ...|clusterPoolName":"policy-aas-hubs","lifetime":"1w"}},{"apiVersion":"hive.openshift.io/v1","kind":"Cl|...
E0203 07:10:38.266841 1 reflector.go:138] sigs.k8s.io/controller-runtime/pkg/cache/internal/informers_map.go:224: Failed to watch *v1.ClusterClaim: failed to list *v1.ClusterClaim: v1.ClusterClaimList.Items: []v1.ClusterClaim: v1.ClusterClaim.v1.ClusterClaim.Spec: v1.ClusterClaimSpec.Lifetime: unmarshalerDecoder: time: unknown unit "w" in duration "1w", error found in #10 byte of ...|time":"1w"}},{"apiVe|..., bigger context ...|clusterPoolName":"policy-aas-hubs","lifetime":"1w"}},{"apiVersion":"hive.openshift.io/v1","kind":"Cl|...
您可以删除无效的声明。
如果删除了不正确的声明,则声明可以在不需要进一步交互的情况下再次成功进行协调。
1.4.3.2.6. 产品频道与置备的集群不同步 复制链接链接已复制到粘贴板!
clusterimageset 处于 fast 频道,但置备的集群处于 stable 频道。目前,产品不会将 频道 同步到置备的 OpenShift Container Platform 集群。
进入 OpenShift Container Platform 控制台中的正确频道。点 Administration > Cluster Settings > Details Channel。
1.4.3.2.7. 在代理环境中使用 Ansible 自动化进行集群置备失败 复制链接链接已复制到粘贴板!
当满足以下条件时,配置为自动置备受管集群的 Automation 模板可能会失败:
- hub 集群启用了集群范围代理。
- Ansible Automation Platform 只能通过代理访问。
1.4.3.2.8. 无法手动删除受管集群命名空间 复制链接链接已复制到粘贴板!
您无法手动删除受管集群的命名空间。受管集群命名空间会在受管集群分离后自动删除。如果在分离受管集群前手动删除受管集群命名空间,受管集群会在删除受管集群后显示持续终止状态。要删除此正在终止的受管集群,请从分离的受管集群中手动删除终结器。
1.4.3.2.9. 不支持为置备的集群进行自动 secret 更新 复制链接链接已复制到粘贴板!
当您在云供应商一端更改云供应商访问密钥时,您还需要在 multicluster engine operator 的控制台中更新此云供应商的对应凭证。当凭证在托管受管集群的云供应商过期并尝试删除受管集群时,需要此项。
1.4.3.2.10. 销毁集群的进程没有完成 复制链接链接已复制到粘贴板!
当销毁受管集群时,在一小时后仍然继续显示 Destroying 状态,且集群不会被销毁。要解决这个问题请完成以下步骤:
- 手动确保云中没有孤立的资源,,且清理与受管集群关联的所有供应商资源。
输入以下命令为正在删除的受管集群打开
ClusterDeployment:oc edit clusterdeployment/<mycluster> -n <namespace>
oc edit clusterdeployment/<mycluster> -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
mycluster替换为您要销毁的受管集群的名称。使用受管集群的命名空间替换
namespace。-
删除
hive.openshift.io/deprovisionfinalizer,以强制停止尝试清理云中的集群资源的进程。 -
保存您的更改,验证
ClusterDeployment是否已不存在。 运行以下命令手动删除受管集群的命名空间:
oc delete ns <namespace>
oc delete ns <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用受管集群的命名空间替换
namespace。
您不能使用 Red Hat Advanced Cluster Management 控制台升级 OpenShift Container Platform Dedicated 环境中的 OpenShift Container Platform 受管集群。
在 Red Hat Advanced Cluster Management 版本 2.10 及更新的版本中默认启用 ManagedServiceAccount 和集群代理附加组件。如果升级后插件被禁用,则必须手动启用ManagedServiceAccount和集群代理插件才能使用 pod 日志功能。
请参阅ManagedServiceAccount 插件以了解如何启用ManagedServiceAccount ,并参阅配置集群代理插件以了解如何启用集群代理插件。
-
要了解如何启用
ManagedServiceAccount插件,请参阅ManagedServiceAccount 插件。 - 要了解如何启用集群代理插件,请参阅使用集群代理插件。
1.4.3.2.13. 客户端无法访问 iPXE 脚本 复制链接链接已复制到粘贴板!
iPXE 是开源网络引导固件。如需了解更多详细信息,请参阅 iPXE。
引导节点时,一些 DHCP 服务器中的 URL 长度限制会关闭 InfraEnv 自定义资源定义中的 ipxeScript URL,从而导致在控制台中的以下错误消息:
no bootable devices
要临时解决这个问题,请完成以下步骤:
-
在使用辅助安装时应用
InfraEnv自定义资源定义以公开bootArtifacts,它可能类似以下文件:
-
创建代理服务器以使用短 URL 公开
bootArtifacts。 运行以下命令复制
bootArtifacts并将其添加到代理中:for artifact in oc get infraenv qe2 -ojsonpath="{.status.bootArtifacts}" | jq ". | keys[]" | sed "s/\"//g" do curl -k oc get infraenv qe2 -ojsonpath="{.status.bootArtifacts.${artifact}}"` -o $artifactfor artifact in oc get infraenv qe2 -ojsonpath="{.status.bootArtifacts}" | jq ". | keys[]" | sed "s/\"//g" do curl -k oc get infraenv qe2 -ojsonpath="{.status.bootArtifacts.${artifact}}"` -o $artifactCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
ipxeScript工件代理 URL 添加到libvirt.xml中的bootp参数。
如果您在 Red Hat Advanced Cluster Management 2.6 中使用已删除的 BareMetalAssets API,则在升级到 Red Hat Advanced Cluster Management 2.7 后无法删除 ClusterDeployment,因为 BareMetalAssets API 绑定到 ClusterDeployment。
要临时解决这个问题,请在升级到 Red Hat Advanced Cluster Management 2.7 前运行以下命令来删除 finalizers:
oc patch clusterdeployment <clusterdeployment-name> -p '{"metadata":{"finalizers":null}}' --type=merge
oc patch clusterdeployment <clusterdeployment-name> -p '{"metadata":{"finalizers":null}}' --type=merge
1.4.3.2.15. ManagedClusterSet API 规格限制 复制链接链接已复制到粘贴板!
使用Clustersets API时不支持selectorType: LaberSelector设置。支持 selectorType: ExclusiveClusterSetLabel 设置。
当使用 ClusterCurator 资源升级 OpenShift Container Platform Dedicated 集群时,升级会失败,因为 Cluster curator 不支持 OpenShift Container Platform Dedicated 集群。
1.4.3.2.17. 自定义入口域无法正确应用 复制链接链接已复制到粘贴板!
您可以在安装受管集群时使用 ClusterDeployment 资源指定自定义 ingress 域,但更改仅在使用 SyncSet 资源安装后才会生效。因此,clusterdeployment.yaml 文件中的 spec 字段显示您指定的自定义入口域,但 status 仍然会显示默认域。
1.4.3.2.18. ManagedClusterAddon status becomes stuck 复制链接链接已复制到粘贴板!
如果您在ManagedClusterAddon中定义配置来覆盖ClusterManagementAddon中的某些配置,则ManagedClusterAddon可能会卡在以下状态:
progressing... mca and work configs mismatch
progressing... mca and work configs mismatch
当您检查ManagedClusterAddon状态时,即使配置存在,部分配置的规范哈希也是空的。请参见以下示例:
要解决此问题,请通过运行以下命令删除ManagedClusterAddon以重新安装和恢复ManagedClusterAddon 。将<cluster-name>替换为ManagedClusterAddon命名空间。将<addon-name>替换为ManagedClusterAddon名称:
oc -n <cluster-name> delete managedclusteraddon <addon-name>
oc -n <cluster-name> delete managedclusteraddon <addon-name>
在 MultiClusterEngine 和 MultiClusterHub 资源中配置的 tolerations 和 nodeSelector 设置不会影响本地集群中部署的 managed-serviceaccount 代理。本地集群中并不总是需要 managed-serviceaccount 附加组件。
如果需要 managed-serviceaccount 附加组件,您可以通过完成以下步骤来临时解决这个问题:
-
创建
addonDeploymentConfig自定义资源。 -
为本地集群和
managed-serviceaccount代理设置tolerations和nodeSelector值。 -
更新本地集群命名空间中的
managed-serviceaccountManagedClusterAddon,以使用您创建的addonDeploymentConfig自定义资源。
要了解有关如何使用addonDeploymentConfig自定义资源为附加组件配置容忍度和nodeSelector的更多信息,请参阅配置 klusterlet 附加组件。
1.4.3.3. 中央基础架构管理 复制链接链接已复制到粘贴板!
如果您要使用 4.19 之前的 Red Hat OpenShift Container Platform 版本安装单节点 OpenShift 集群,则您的InfraEnv自定义资源和启动的主机必须使用与安装单节点 OpenShift 集群时相同的 OpenShift Container Platform 版本。如果版本不匹配,安装将失败。
要解决此问题,请在使用 Discovery ISO 启动主机之前编辑InfraEnv资源,并包含以下内容。将<4.x>替换为您要安装的osImageVersion :
apiVersion: agent-install.openshift.io/v1beta1 kind: InfraEnv spec: osImageVersion: "<4.x>"
apiVersion: agent-install.openshift.io/v1beta1
kind: InfraEnv
spec:
osImageVersion: "<4.x>"
1.4.3.3.2. 无法使用主机清单来通过发现镜像引导,并自动添加主机 复制链接链接已复制到粘贴板!
您不能使用主机清单或 InfraEnv 自定义资源来通过发现镜像进行两个引导,并自动添加主机。如果您将之前的 InfraEnv 资源用于 BareMetalHost 资源,并且希望自行引导镜像,您可以通过创建一个新的 InfraEnv 资源来解决此问题。
1.4.3.3.3. 在删除 BareMetalHost 资源后节点关闭 复制链接链接已复制到粘贴板!
如果您从 hub 集群中删除 BareMetalHost 资源,节点会关闭。您可以再次手动打开节点电源。
1.4.4. 使用多集群引擎 Operator 弃用和删除集群生命周期 复制链接链接已复制到粘贴板!
了解产品何时被弃用或从多集群引擎 operator 中删除。考虑推荐操作中的备选操作和详细信息,它们显示在当前版本的表中和之前两个版本。如果没有为该部分添加条目,则会删除表。
已弃用:多集群引擎运算符 2.4 及更早版本不再受支持。文档可能仍然可用,但不会发布任何针对已修复问题或其他更新的勘误表。
最佳实践: 升级到最新版本。
1.4.4.1. 产品弃用和移除 复制链接链接已复制到粘贴板!
弃用(deprecated)组件、功能或服务会被支持,但不推荐使用,并可能在以后的版本中被删除。考虑使用推荐操作中的相应的替代操作,详情在下表中提供:
| 产品或类别 | 受影响的项 | Version | 推荐的操作 | 详情和链接 |
|---|---|---|---|---|
| API 文档 | multicluster engine operator API 文档 | 多集群引擎 operator 2.8 | 从控制台或终端查看当前支持的 API,而不是文档 | None |
| KlusterletConfig |
| 2.7 |
使用 | None |
| KlusterletConfig |
| 2.7 |
使用 | None |
| KlusterletConfig |
| 2.7 |
使用 | None |
一个删除(removed) 的项通常是在之前的版本中被弃用的功能,在该产品中不再可用。您必须将 alternatives 用于删除的功能。考虑使用推荐操作中的相应的替代操作,详情在下表中提供:
| 产品或类别 | 受影响的项 | Version | 推荐的操作 | 详情和链接 |
|---|---|---|---|---|
| 集群生命周期 |
| 2.9 | None | None |
| 集群生命周期 | 在 Red Hat Virtualization 上创建集群 | 2.6 | None | None |
| 集群生命周期 | klusterlet Operator Lifecycle Manager Operator | 2.6 | None | None |