$ oc get subscription.operators.coreos.com serverless-operator -n openshift-serverless -o yaml | grep currentCSV
以下描述了如何删除或卸载之前使用 Operator Lifecycle Manager (OLM) 安装在您的 AWS 集群上的 Red Hat OpenShift Service 上的 Operator。
在尝试重新安装相同的 Operator 之前,必须成功且完全卸载该 Operator。未能完全正确卸载 Operator 可能会导致资源(例如项目或命名空间)卡在“终止”状态,并在尝试重新安装 Operator 时出现“错误解析资源”消息。 |
集群管理员可以使用 Web 控制台从选定的命名空间中删除已安装的 Operator。
您可以使用具有 `dedicated-admin` 权限的帐户访问 AWS 集群的 Red Hat OpenShift Service Web 控制台。
导航到**Operators** → **已安装的 Operators** 页面。
滚动或在**按名称筛选**字段中输入关键字以查找要删除的 Operator。然后,单击它。
在**Operator 详情**页面的右侧,从**操作**列表中选择**卸载 Operator**。
将显示**卸载 Operator?**对话框。
选择**卸载**以删除 Operator、Operator 部署和 Pod。此操作之后,Operator 将停止运行,并且不再接收更新。
此操作不会删除 Operator 管理的资源,包括自定义资源定义 (CRD) 和自定义资源 (CR)。Web 控制台启用的仪表板和导航项以及继续运行的集群外资源可能需要手动清理。要卸载 Operator 后删除这些资源,您可能需要手动删除 Operator CRD。 |
集群管理员可以使用 CLI 从选定的命名空间中删除已安装的 Operator。
您可以使用具有 `dedicated-admin` 权限的帐户访问 AWS 集群上的 Red Hat OpenShift Service。
您的工作站上已安装 OpenShift CLI (oc
)。
确保在 `currentCSV` 字段中标识已订阅 Operator(例如,`serverless-operator`)的最新版本。
$ oc get subscription.operators.coreos.com serverless-operator -n openshift-serverless -o yaml | grep currentCSV
currentCSV: serverless-operator.v1.28.0
删除订阅(例如,`serverless-operator`)
$ oc delete subscription.operators.coreos.com serverless-operator -n openshift-serverless
subscription.operators.coreos.com "serverless-operator" deleted
使用上一步中的 `currentCSV` 值删除目标命名空间中 Operator 的 CSV
$ oc delete clusterserviceversion serverless-operator.v1.28.0 -n openshift-serverless
clusterserviceversion.operators.coreos.com "serverless-operator.v1.28.0" deleted
在 Operator Lifecycle Manager (OLM) 中,如果您订阅的 Operator 引用网络上无法访问的镜像,您可以在 `openshift-marketplace` 命名空间中找到出现以下错误的作业
ImagePullBackOff for
Back-off pulling image "example.com/openshift4/ose-elasticsearch-operator-bundle@sha256:6d2587129c846ec28d384540322b40b05833e7e00b25cca584e004af9a1d292e"
rpc error: code = Unknown desc = error pinging docker registry example.com: Get "https://example.com/v2/": dial tcp: lookup example.com on 10.0.0.1:53: no such host
结果,订阅停留在失败状态,并且无法安装或升级 Operator。
您可以通过删除订阅、集群服务版本 (CSV) 和其他相关对象来刷新失败的订阅。重新创建订阅后,OLM 就会重新安装 Operator 的正确版本。
您有一个失败的订阅,无法拉取无法访问的 bundle 镜像。
您已确认可以访问正确的 bundle 镜像。
获取 Operator 安装所在命名空间中的 `Subscription` 和 `ClusterServiceVersion` 对象的名称
$ oc get sub,csv -n <namespace>
NAME PACKAGE SOURCE CHANNEL
subscription.operators.coreos.com/elasticsearch-operator elasticsearch-operator redhat-operators 5.0
NAME DISPLAY VERSION REPLACES PHASE
clusterserviceversion.operators.coreos.com/elasticsearch-operator.5.0.0-65 OpenShift Elasticsearch Operator 5.0.0-65 Succeeded
删除订阅
$ oc delete subscription <subscription_name> -n <namespace>
删除集群服务版本
$ oc delete csv <csv_name> -n <namespace>
获取 `openshift-marketplace` 命名空间中任何失败作业和相关配置映射的名称
$ oc get job,configmap -n openshift-marketplace
NAME COMPLETIONS DURATION AGE
job.batch/1de9443b6324e629ddf31fed0a853a121275806170e34c926d69e53a7fcbccb 1/1 26s 9m30s
NAME DATA AGE
configmap/1de9443b6324e629ddf31fed0a853a121275806170e34c926d69e53a7fcbccb 3 9m30s
删除作业
$ oc delete job <job_name> -n openshift-marketplace
这确保不会重新创建尝试拉取不可访问镜像的 Pod。
删除配置映射
$ oc delete configmap <configmap_name> -n openshift-marketplace
使用 Web 控制台中的 OperatorHub 重新安装 Operator。
检查 Operator 是否已成功重新安装
$ oc get sub,csv,installplan -n <namespace>