8.4. 卸载 Web 终端

卸载 Web Terminal Operator 不会删除安装 Operator 时创建的任何自定义资源定义 (CRD) 或受管资源。为了安全起见,您必须手动卸载这些组件。通过删除这些组件,您可以保存集群资源,因为在卸载 Operator 时终端不会闲置。

卸载 web 终端需要两步:

  1. 卸载 Web Terminal Operator 和安装 Operator 时添加的相关自定义资源 (CR)。
  2. 卸载 DevWorkspace Operator 及其作为 Web Terminal Operator 依赖项添加的相关自定义资源。

8.4.1. 删除 Web Terminal Operator

您可以通过删除 Web Terminal Operator 和 Operator 使用的自定义资源来卸载 web 终端。

先决条件

  • 您可以使用集群管理员权限访问 OpenShift Container Platform 集群。
  • 已安装 oc CLI。

流程

  1. 在 web 控制台的 Administrator 视角中,导航到 Operators → Installed Operators
  2. 滚动过滤器列表或在 Filter by name 框中输入关键字以查找 Web Terminal Operator。
  3. 点击 Web Terminal Operator 的 Options 菜单 kebab ,然后选择 Uninstall Operator
  4. Uninstall Operator 确认对话框中,点 Uninstall 从集群中删除 Operator、Operator 部署和 pod。Operator 会停止运行,并且不再接收更新。

8.4.2. 删除 DevWorkspace Operator

要完全卸载 web 终端,还必须删除 DevWorkspace Operator 和 Operator 使用的自定义资源。

重要

DevWorkspace Operator 是一个独立 Operator,可能需要作为集群中安装的其他 Operator 的依赖项。只有在确保不再需要 DevWorkspace Operator 时,才按照以下步骤操作。

先决条件

  • 您可以使用集群管理员权限访问 OpenShift Container Platform 集群。
  • 已安装 oc CLI。

流程

  1. 删除 Operator 使用的 DevWorkspace 自定义资源,以及任何相关的 Kubernetes 对象:

    $ oc delete devworkspaces.workspace.devfile.io --all-namespaces --all --wait
    $ oc delete devworkspaceroutings.controller.devfile.io --all-namespaces --all --wait
    警告

    如果此步骤未完成,则终结器很难完全卸载 Operator。

  2. 删除 Operator 使用的 CRD:

    警告

    DevWorkspace Operator 提供了使用转换 Webhook 的自定义资源定义(CRD)。无法删除这些 CRD 可能会导致集群中的问题。

    $ oc delete customresourcedefinitions.apiextensions.k8s.io devworkspaceroutings.controller.devfile.io
    $ oc delete customresourcedefinitions.apiextensions.k8s.io devworkspaces.workspace.devfile.io
    $ oc delete customresourcedefinitions.apiextensions.k8s.io devworkspacetemplates.workspace.devfile.io
    $ oc delete customresourcedefinitions.apiextensions.k8s.io devworkspaceoperatorconfigs.controller.devfile.io
  3. 验证所有涉及的自定义资源定义都已移除。以下命令不应该显示任何输出:

    $ oc get customresourcedefinitions.apiextensions.k8s.io | grep "devfile.io"
  4. 删除 devworkspace-webhook-server 部署、变异并验证 Webhook:

    $ oc delete deployment/devworkspace-webhook-server -n openshift-operators
    $ oc delete mutatingwebhookconfigurations controller.devfile.io
    $ oc delete validatingwebhookconfigurations controller.devfile.io
    注意

    如果您在没有删除变异并验证 Webhook 的情况下删除 devworkspace-webhook-server 部署,则无法使用 oc exec 命令在集群中的容器中运行命令。删除 Webhook 后,您可以再次使用 oc exec 命令。

  5. 删除任何剩余的服务、secret 和配置映射。取决于具体的安装,以下命令中包含的一些资源可能不存在。

    $ oc delete all --selector app.kubernetes.io/part-of=devworkspace-operator,app.kubernetes.io/name=devworkspace-webhook-server -n openshift-operators
    $ oc delete serviceaccounts devworkspace-webhook-server -n openshift-operators
    $ oc delete clusterrole devworkspace-webhook-server
    $ oc delete clusterrolebinding devworkspace-webhook-server
  6. 卸载 DevWorkspace Operator:

    1. 在 web 控制台的 Administrator 视角中,导航到 Operators → Installed Operators
    2. 滚动过滤器列表或在 Filter by name 框中输入关键字以查找 DevWorkspace Operator。
    3. 点 Operator 的 Options 菜单 kebab ,然后选择 Uninstall Operator
    4. Uninstall Operator 确认对话框中,点 Uninstall 从集群中删除 Operator、Operator 部署和 pod。Operator 会停止运行,并且不再接收更新。