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,请参阅以下步骤:

      1. 登录到您的 hub 集群。
      2. 输入以下命令删除 MultiClusterObservability 自定义资源:

        oc delete mco observability
    • 要使用控制台删除 MultiClusterObservability 自定义资源,请参阅以下流程:

      1. 如果安装了 MultiClusterObservability 自定义资源,请选择 MultiClusterObservability 选项卡。
      2. 选择 MultiClusterObservability 自定义资源的 Options 菜单。
      3. 选择 Delete MultiClusterObservability

        当您删除资源时,Red Hat Advanced Cluster Management hub 集群上的 open-cluster-management-observability 命名空间中的 pod 以及所有受管集群上的 open-cluster-management-addon-observability 命名空间中的 pod 都会被删除。

    : 删除 observability 服务后,您的对象存储不会受到影响。

1.9.2. 使用命令删除资源

  1. 如果还没有运行 oc 命令,请确保 OpenShift Container Platform CLI 配置为运行 oc 命令。如需有关如何配置 oc 命令的更多信息,请参阅 OpenShift Container Platform 文档中的 OpenShift CLI 入门
  2. 输入以下命令来更改到您的项目命名空间。将 namespace 替换为项目命名空间的名称:

    oc project <namespace>
  3. 输入以下命令删除 MultiClusterHub 自定义资源:

    oc delete multiclusterhub --all

    您可以输入以下命令来查看进度:

    oc get mch -o yaml
  4. 运行清理脚本删除所有潜在的剩余工件。如果您计划在同一集群中使用旧版本的 Red Hat Advanced Cluster Management 重新安装,则运行此清理脚本。

    1. 按照安装 Helm 中的内容,安装 Helm CLI 二进制版本 3.2.0 或更新版本。
    2. 将以下脚本复制到一个文件中:

      #!/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 的命名空间的名称。确保指定正确的命名空间,因为命名空间会被清理和删除。

    3. 运行该脚本删除所有从之前安装中保留的工件。如果没有剩余的工件,则会返回一个没有找到资源的信息。

      注: 如果您计划重新安装相同的 Red Hat Advanced Cluster Management 版本,您可以跳过这个过程中的下一步并重新安装自定义资源。继续以完整 Operator 的卸载过程。

  5. 输入以下命令在安装它的命名空间中删除 Red Hat Advanced Cluster Management ClusterServiceVersionSubscription
❯ 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。使用控制台完成以下步骤进行卸载:

  1. 在 OpenShift Container Platform 控制台导航中,选择 Operators > Installed Operators > Advanced Cluster Manager for Kubernetes.。
  2. 删除 MultiClusterHub 自定义资源。

    1. 选择 Multiclusterhub 标签页。
    2. 选择 MultiClusterHub 自定义资源的 Options 菜单。
    3. 选择 Delete MultiClusterHub
  3. 使用以下命令,根据删除 MultiClusterHub 实例中的步骤运行清理脚本。

    提示: 如果您计划重新安装相同的 Red Hat Advanced Cluster Management 版本,您可以跳过这个过程中的其余步骤并重新安装自定义资源。

  4. 进入 Installed Operators
  5. 选择 Options 菜单并选择 Uninstall operator 来删除 Red Hat Advanced Cluster Management
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.