4.12. 管理平台 Operator (技术预览)
平台 Operator 是一个基于 OLM 的 Operator,可在 OpenShift Container Platform 集群的第 0 天操作期间或之后安装,并参与集群的生命周期。作为集群管理员,您可以使用 PlatformOperator
API 管理平台 Operator。
平台 Operator 类型只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
4.12.1. 关于平台 Operator 复制链接链接已复制到粘贴板!
Operator Lifecycle Manager (OLM) 引入了一个新的 Operator 类型,名为 平台 Operator。平台 Operator 是一个基于 OLM 的 Operator,可在 OpenShift Container Platform 集群的第 0 天操作期间或之后安装,并参与集群的生命周期。作为集群管理员,您可以使用平台 Operator 来进一步自定义 OpenShift Container Platform 安装,以满足您的要求和用例。
使用 OpenShift Container Platform 中的现有集群功能功能,集群管理员可能已经禁用了基于 Cluster Version Operator(CVO)的部分组件,因为对于集群安装前的初始负载,它们被视为是非必须的。平台 Operator 通过提供额外的自定义选项来迭代此模型。通过平台 Operator 机制,依赖于 RukPak 组件中的资源,现在可在集群安装时安装基于 OLM 的 Operator,如果 Operator 无法成功安装,则可阻止集群推出部署。
在 OpenShift Container Platform 4.15 中,这个技术预览版本侧重于基本平台 Operator 机制,并构建在即将发布的版本中扩展概念的基础。您可以使用集群范围的 PlatformOperator
API 在启用了 TechPreviewNoUpgrade
功能集的集群中或之后配置 Operator。
4.12.1.1. 平台 Operator 的技术预览限制 复制链接链接已复制到粘贴板!
在 OpenShift Container Platform 4.15 中,平台 Operator 功能的技术预览版本中,以下限制决定是否可以通过平台 Operator 机制安装 Operator:
-
Kubernetes 清单必须使用 Operator Lifecycle Manager (OLM)
registry+v1
捆绑包格式进行打包。 - Operator 无法声明软件包或 group/version/kind (GVK) 依赖项。
-
Operator 无法指定
AllNamespaces
以外的集群服务版本 (CSV) 安装模式 -
Operator 无法指定任何
Webhook
或APIService
定义。 -
所有软件包捆绑包都必须位于
redhat-operators
目录源中。
在考虑这些限制后,可以成功安装以下 Operator:
3scale-operator | amq-broker-rhel8 |
amq-online | amq-streams |
ansible-cloud-addons-operator | apicast-operator |
container-security-operator | eap |
file-integrity-operator | gatekeeper-operator-product |
integration-operator | jws-operator |
kiali-ossm | node-healthcheck-operator |
odf-csi-addons-operator | odr-hub-operator |
openshift-custom-metrics-autoscaler-operator | openshift-gitops-operator |
openshift-pipelines-operator-rh | quay-operator |
red-hat-camel-k | rhpam-kogito-operator |
service-registry-operator | servicemeshoperator |
skupper-operator |
在此技术预览版本中不提供以下功能:
- 集群推出部署后自动升级平台 Operator 软件包
- 扩展平台 Operator 机制以支持任何基于 CVO 的可选组件
4.12.2. 先决条件 复制链接链接已复制到粘贴板!
-
使用具有
cluster-admin
权限的账户访问 OpenShift Container Platform 集群。 在集群中启用
TechPreviewNoUpgrades
功能集警告启用
TechPreviewNoUpgrade
功能集将无法撤消,并防止次版本更新。不建议在生产环境集群中使用这些功能集。-
仅在集群中启用
redhat-operators
目录源。这是技术预览版本期间的一个限制。 -
oc
命令在工作站上安装。
4.12.3. 在集群创建过程中安装平台 Operator 复制链接链接已复制到粘贴板!
作为集群管理员,您可以通过在创建集群过程中提供 FeatureGate
和 PlatformOperator
清单来安装平台 Operator。
流程
- 从受支持的基于 OLM 的 Operator 集合中选择一个平台 Operator。有关此集合列表以及当前限制的详情,请参阅"平台 Operator 的技术预览限制"。
-
选择集群安装方法并按照创建
install-config.yaml
文件进行操作。有关准备集群安装的详情,请参阅"选择集群安装方法并为用户准备它"。 创建
install-config.yaml
文件并完成对其所做的任何修改后,切换到包含安装程序的目录并创建清单:./openshift-install create manifests --dir <installation_directory>
$ ./openshift-install create manifests --dir <installation_directory>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 对于
<installation_directory>
,请指定包含集群的install-config.yaml
文件的目录名称。
在
<installation_directory>/manifests/
目录中创建一个FeatureGate
对象 YAML 文件,该文件启用了TechPreviewNoUpgrade
功能集,例如feature-gate.yaml
文件:feature-gate.yaml
文件示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 启用
TechPreviewNoUpgrade
功能集。
在
<installation_directory>/manifests/
目录中为所选平台 Operator 创建PlatformOperator
对象 YAML 文件,如 Red Hat OpenShift Service Mesh Operator 的service-mesh-po.yaml
文件:service-mesh-po.yaml
文件示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 当您准备好完成集群安装时,请参阅您选择的安装方法并继续运行
openshift-install create cluster
命令。在集群创建过程中,提供的清单用于启用
TechPreviewNoUpgrade
功能集并安装所选平台 Operator。重要无法成功安装平台 Operator 将阻止集群安装过程。
验证
运行以下命令,检查
service-mesh-po
platform Operator 的状态:oc get platformoperator service-mesh-po -o yaml
$ oc get platformoperator service-mesh-po -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 等待
Installed
状态报告为True
。
验证
platform-operators-aggregated
集群 Operator 是否已报告Available=True
状态:oc get clusteroperator platform-operators-aggregated -o yaml
$ oc get clusteroperator platform-operators-aggregated -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.12.4. 在集群创建后安装平台 Operator 复制链接链接已复制到粘贴板!
作为集群管理员,您可以在使用集群范围的 PlatformOperator
API 启用 TechPreviewNoUpgrades
功能集的集群中安装平台 Operator。
流程
- 从受支持的基于 OLM 的 Operator 集合中选择一个平台 Operator。有关此集合列表以及当前限制的详情,请参阅"平台 Operator 的技术预览限制"。
为所选平台 Operator 创建
PlatformOperator
对象 YAML 文件,如 Red Hat OpenShift Service Mesh Operator 的service-mesh-po.yaml
文件:sevice-mesh-po.yaml
文件示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建
PlatformOperator
对象:oc apply -f service-mesh-po.yaml
$ oc apply -f service-mesh-po.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您的集群没有启用
TechPreviewNoUpgrade
功能集,则对象创建会失败,并显示以下信息:error: resource mapping not found for name: "service-mesh-po" namespace: "" from "service-mesh-po.yaml": no matches for kind "PlatformOperator" in version "platform.openshift.io/v1alpha1" ensure CRDs are installed first
error: resource mapping not found for name: "service-mesh-po" namespace: "" from "service-mesh-po.yaml": no matches for kind "PlatformOperator" in version "platform.openshift.io/v1alpha1" ensure CRDs are installed first
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行以下命令,检查
service-mesh-po
platform Operator 的状态:oc get platformoperator service-mesh-po -o yaml
$ oc get platformoperator service-mesh-po -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 等待
Installed
状态报告为True
。
验证
platform-operators-aggregated
集群 Operator 是否已报告Available=True
状态:oc get clusteroperator platform-operators-aggregated -o yaml
$ oc get clusteroperator platform-operators-aggregated -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.12.5. 删除平台 Operator 复制链接链接已复制到粘贴板!
作为集群管理员,您可以删除现有的平台 Operator。Operator Lifecycle Manager (OLM) 执行级联删除。首先,OLM 会删除平台 Operator 的捆绑包部署,然后删除 registry+v1
类型捆绑包中引用的任何对象。
平台 Operator Manager 和捆绑包部署置备程序只管理捆绑包中引用的对象,而不管理任何捆绑包工作负载本身部署的对象。例如,如果捆绑包工作负载会创建一个命名空间,且 Operator 没有配置为在删除 Operator 前进行清理,则它超出了 OLM 范围,以便在平台 Operator 删除过程中删除命名空间。
流程
获取已安装的平台 Operator 列表,找到您要删除的 Operator 的名称:
oc get platformoperator
$ oc get platformoperator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除所选 Operator 的
PlatformOperator
资源,如 Quay Operator:oc delete platformoperator quay-operator
$ oc delete platformoperator quay-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
platformoperator.platform.openshift.io "quay-operator" deleted
platformoperator.platform.openshift.io "quay-operator" deleted
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证平台 Operator 的命名空间最终已被删除,例如 Quay Operator:
oc get ns quay-operator-system
$ oc get ns quay-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Error from server (NotFound): namespaces "quay-operator-system" not found
Error from server (NotFound): namespaces "quay-operator-system" not found
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证
platform-operators-aggregated
集群 Operator 继续报告Available=True
状态:oc get co platform-operators-aggregated
$ oc get co platform-operators-aggregated
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE MESSAGE platform-operators-aggregated 4.15.0-0 True False False 70s
NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE MESSAGE platform-operators-aggregated 4.15.0-0 True False False 70s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow