1.9. 卸装
在卸载 Red Hat Advanced Cluster Management for Kubernetes 时,您会看到两个不同的卸载过程级别: 删除自定义资源 和 完整的 Operator 卸载。卸载过程最多可能需要 20 分钟。
-
第一个级别是自定义资源移除,这是最基本的卸载类型,用于删除
MultiClusterHub
实例的自定义资源,但会保留其他所需的 Operator 资源。如果您计划使用相同的设置和组件重新安装,这个卸载级别很有用。 - 第二个级别是更完整的卸载,可删除大多数 Operator 组件,不包括自定义资源定义等组件。当您继续执行此步骤时,它会删除所有没有通过删除自定义资源而被删除的组件和订阅。在卸载后,您必须在重新安装自定义资源前重新安装 Operator。
1.9.1. 先决条件:分离启用的服务
在卸载 Red Hat Advanced Cluster Management hub 集群前,您必须分离所有由该 hub 集群管理的集群。要解决错误,分离仍由 hub 集群管理的所有集群,然后尝试再次卸载。
如果使用发现功能,在尝试卸载时可能会看到以下错误:
Cannot delete MultiClusterHub resource because DiscoveryConfig resource(s) exist
要禁用发现功能,请完成以下步骤:
-
从控制台导航到
Discovered Clusters
表,再单击 Disable cluster discovery。确认您要删除该服务。 - 您还可以使用终端。运行以下命令以禁用发现:
$ oc delete discoveryconfigs --all --all-namespaces
-
从控制台导航到
如果附加了受管集群,您可能会看到以下信息。注: 这不包括
local-cluster
,它是您自助管理的 hub 集群:Cannot delete MultiClusterHub resource because ManagedCluster resource(s) exist
有关分离集群的更多信息,请参阅从管理部分删除集群,在 创建集群中选择与您的供应商相关的信息。
如果您有裸机资产,可能会看到以下内容:
Cannot delete MultiClusterHub resource because BareMetalAssets resource(s) exist
有关删除裸机资产的更多信息,请参阅删除裸机资产。
如果您使用可观察性功能,可能会看到以下内容:
Cannot delete MultiClusterHub resource because MultiClusterObservability resource(s) exist
要使用终端禁用并删除
MultiClusterObservability
,请参阅以下步骤:- 登录到您的 hub 集群。
输入以下命令删除
MultiClusterObservability
自定义资源:oc delete mco observability
要使用控制台删除
MultiClusterObservability
自定义资源,请参阅以下流程:-
如果安装了
MultiClusterObservability
自定义资源,请选择 MultiClusterObservability 选项卡。 -
选择
MultiClusterObservability
自定义资源的 Options 菜单。 选择 Delete MultiClusterObservability。
当您删除资源时,Red Hat Advanced Cluster Management hub 集群上的
open-cluster-management-observability
命名空间中的 pod 以及所有受管集群上的open-cluster-management-addon-observability
命名空间中的 pod 都会被删除。
-
如果安装了
注 : 删除 observability 服务后,您的对象存储不会受到影响。
1.9.2. 使用命令删除资源
-
如果还没有运行 oc 命令,请确保 OpenShift Container Platform CLI 配置为运行
oc
命令。如需有关如何配置oc
命令的更多信息,请参阅 OpenShift Container Platform 文档中的 OpenShift CLI 入门。 输入以下命令来更改到您的项目命名空间。将 namespace 替换为项目命名空间的名称:
oc project <namespace>
输入以下命令删除
MultiClusterHub
自定义资源:oc delete multiclusterhub --all
您可以输入以下命令来查看进度:
oc get mch -o yaml
运行清理脚本删除所有潜在的剩余工件。如果您计划在同一集群中使用旧版本的 Red Hat Advanced Cluster Management 重新安装,则运行此清理脚本。
- 按照安装 Helm 中的内容,安装 Helm CLI 二进制版本 3.2.0 或更新版本。
将以下脚本复制到一个文件中:
#!/bin/bash ACM_NAMESPACE=<namespace> oc delete mch --all -n $ACM_NAMESPACE helm ls --namespace $ACM_NAMESPACE | cut -f 1 | tail -n +2 | xargs -n 1 helm delete --namespace $ACM_NAMESPACE oc delete apiservice v1beta2.webhook.certmanager.k8s.io v1.admission.cluster.open-cluster-management.io v1.admission.work.open-cluster-management.io oc delete clusterimageset --all oc delete configmap -n $ACM_NAMESPACE cert-manager-controller cert-manager-cainjector-leader-election cert-manager-cainjector-leader-election-core oc delete consolelink acm-console-link oc delete crd klusterletaddonconfigs.agent.open-cluster-management.io placementbindings.policy.open-cluster-management.io policies.policy.open-cluster-management.io userpreferences.console.open-cluster-management.io searchservices.search.acm.com discoveredclusters.discovery.open-cluster-management.io discoveryconfigs.discovery.open-cluster-management.io oc delete mutatingwebhookconfiguration cert-manager-webhook cert-manager-webhook-v1alpha1 ocm-mutating-webhook managedclustermutators.admission.cluster.open-cluster-management.io oc delete oauthclient multicloudingress oc delete rolebinding -n kube-system cert-manager-webhook-webhook-authentication-reader oc delete scc kui-proxy-scc oc delete validatingwebhookconfiguration cert-manager-webhook cert-manager-webhook-v1alpha1 channels.apps.open.cluster.management.webhook.validator application-webhook-validator multiclusterhub-operator-validating-webhook ocm-validating-webhook
将脚本中的
<namespace>
替换为安装 Red Hat Advanced Cluster Management 的命名空间的名称。确保指定正确的命名空间,因为命名空间会被清理和删除。运行该脚本删除所有从之前安装中保留的工件。如果没有剩余的工件,则会返回一个没有找到资源的信息。
注: 如果您计划重新安装相同的 Red Hat Advanced Cluster Management 版本,您可以跳过这个过程中的下一步并重新安装自定义资源。继续以完整 Operator 的卸载过程。
-
输入以下命令在安装它的命名空间中删除 Red Hat Advanced Cluster Management
ClusterServiceVersion
和Subscription
:
❯ oc get csv NAME DISPLAY VERSION REPLACES PHASE advanced-cluster-management.v2.4.0 Advanced Cluster Management for Kubernetes 2.4.0 Succeeded ❯ oc delete clusterserviceversion advanced-cluster-management.v2.4.0 ❯ oc get sub NAME PACKAGE SOURCE CHANNEL acm-operator-subscription advanced-cluster-management acm-custom-registry release-2.5 ❯ oc delete sub acm-operator-subscription
注: CSV 的订阅名称和版本可能有所不同。
1.9.3. 使用控制台删除组件
当使用 Red Hat OpenShift Container Platform 控制台卸载时,需要删除 operator。使用控制台完成以下步骤进行卸载:
- 在 OpenShift Container Platform 控制台导航中,选择 Operators > Installed Operators > Advanced Cluster Manager for Kubernetes.。
删除
MultiClusterHub
自定义资源。- 选择 Multiclusterhub 标签页。
- 选择 MultiClusterHub 自定义资源的 Options 菜单。
- 选择 Delete MultiClusterHub。
使用以下命令,根据删除 MultiClusterHub 实例中的步骤运行清理脚本。
提示: 如果您计划重新安装相同的 Red Hat Advanced Cluster Management 版本,您可以跳过这个过程中的其余步骤并重新安装自定义资源。
- 进入 Installed Operators。
- 选择 Options 菜单并选择 Uninstall operator 来删除 Red Hat Advanced Cluster Management。