第 2 章 配置 Cluster Samples Operator
Cluster Samples Operator 运行在 openshift 命名空间中,用于安装和更新基于 Red Hat Enterprise Linux (RHEL) 的 OpenShift Container Platform 镜像流和 OpenShift Container Platform 模板。
从 OpenShift Container Platform 4.13 开始,Cluster Samples Operator 被降级。Cluster Samples Operator 将停止为非 Source-to-Image (Non-S2I) 镜像流和模板提供以下更新:
- 新镜像流和模板
- 更新现有镜像流和模板,除非它是 CVE 更新
- 根据 OpenShift Container Platform 生命周期策略日期和支持指南,Cluster Samples Operator 将提供对 Non-S2I 镜像流和模板的支持。
Cluster Samples Operator 将继续支持 S2I 构建器镜像和模板,并接受更新。S2I 镜像流和模板包括:
- Ruby
- Python
- Node.js
- Perl
- PHP
- HTTPD
- Nginx
- EAP
- Java
- Webserver
- .NET
- Go
- 从 OpenShift Container Platform 4.16 开始,Cluster Samples Operator 将停止管理非 S2I 镜像流和模板。您可以联系镜像流或模板所有者以获取任何要求和将来的计划。此外,请参阅托管镜像流或模板的存储库列表。
2.1. 了解 Cluster Samples Operator 复制链接链接已复制到粘贴板!
在安装过程中,Operator 会为自己创建默认配置对象,然后创建示例镜像流和模板,包括快速启动模板。
为便于从需要凭证的其他 registry 中导入镜像流,集群管理员可在镜像导入所需的 openshift 命名空间中创建包含 Docker config.json 文件内容的额外 secret。
Cluster Samples Operator 配置是一个集群范围的资源,其部署包含在 openshift-cluster-samples-operator 命名空间中。
Cluster Samples Operator 的镜像包含关联的 OpenShift Container Platform 发行版本的镜像流和模板定义。在创建或更新每个示例时,Cluster Sample Operator 包含一个注解(annotation),用于注明 OpenShift Container Platform 的版本。Operator 使用此注解来确保每个示例与发行版本匹配。清单(inventory)以外的示例会与跳过的示例一样被忽略。对任何由 Operator 管理的示例进行的修改(版本注解被修改或删除),都将会被自动恢复。
Jenkins 镜像实际上自安装后便已是镜像有效负载的一部分,并直接标记(tag)到镜像流中。
Cluster Samples Operator 配置资源包含一个终结器(finalizer),它会在删除时清除以下内容:
- Operator 管理的镜像流。
- Operator 管理的模板。
- Operator 生成的配置资源。
- 集群状态资源。
删除样本资源后,Samples Operator 会使用默认配置重新创建资源。
2.1.1. Cluster Samples Operator 使用管理状态 复制链接链接已复制到粘贴板!
Cluster Samples Operator 默认配置为 Managed,或者配置了全局代理。在 Managed 状态下,Cluster Samples Operator 会主动管理其资源并保持组件的活跃状态,以便从 registry 中拉取示例镜像流和镜像,并确保安装了必要的示例模板。
在某些情况下,Cluster Samples Operator 会将自身引导为 Removed,包括:
- 如果 Cluster Samples Operator 在全新安装后初始启动时三分钟后仍无法访问 registry.redhat.io。
- 如果 Cluster Samples Operator 检测到它位于 IPv6 网络中。
-
镜像控制器配置参数 阻止使用默认镜像 registry 或通过
samplesRegistry设置 指定的镜像 registry 创建镜像流。
对于 OpenShift Container Platform,默认的镜像 registry 是 registry.redhat.io。
但是,如果 Cluster Samples Operator 检测到它位于 IPv6 网络上,并且配置了 OpenShift Container Platform 全局代理,则 IPv6 检查会替换所有检查。因此,Cluster Samples Operator 会将自身引导为 Removed。
registry.redhat.io目前不支持 IPv6 安装。Cluster Samples Operator 从 registry.redhat.io 中提取大多数示例镜像流和镜像。
2.1.1.1. 受限网络安装 复制链接链接已复制到粘贴板!
当无法访问 registry.redhat.io 时,当网络限制已存在时,Boostrapping 为 Removed 有助于进行受限网络安装。当网络访问受限时,Bootstrapping 为 Removed 可让集群管理员有更多时间决定是否需要样本,因为 Cluster Samples Operator 不提交当管理状态设置为 Removed 时示例镜像流导入失败的警报。当 Cluster Samples Operator 启动为 Managed 并尝试安装示例镜像流时,它会在安装失败时在初始安装后 2 小时启动警报。
2.1.1.2. 使用初始网络访问受限网络安装 复制链接链接已复制到粘贴板!
当一个集群旨在作为受限网络或断开连接而安装的集群,如果其存在网络连接,则 Cluster Samples Operator 会从 registry.redhat.io 中安装内容,因为可以访问它。如果您希望 Cluster Samples Operator 仍然引导为 Removed,以便延迟样本安装,直到您决定了需要安装哪个样本、如何设置镜像等,请按照有关使用带有备用 registry 以及自定义节点(均在 additional resources 部分中链接)的 Samples Operator 的说明来覆盖 Cluster Samples Operator 默认配置,以便最初以 Removed 的形式出现。
您必须将以下额外 YAML 文件放到由 openshift-install create manifest 创建的 openshift 目录中:
带有 managementState: Removed 的 Cluster Samples Operator YAML 文件示例:
2.1.2. Cluster Samples Operator 跟踪和错误恢复镜像流导入 复制链接链接已复制到粘贴板!
在创建或更新示例镜像流后,Cluster Samples Operator 会监控每个镜像流标签镜像导入的进度。
如果导入失败,Cluster Samples Operator 会通过镜像流镜像导入 API(与 oc import-image 命令使用的 API 相同)。重新尝试导入大约每 15 分钟进行一次,直到导入成功,或者 Cluster Samples Operator 的配置已更改为镜像流被添加到 skippedImagestreams 列表中,或者管理状态变为 Removed。