8.4. 卸载 Web 终端
卸载 Web Terminal Operator 不会删除安装 Operator 时创建的任何自定义资源定义 (CRD) 或受管资源。为了安全起见,您必须手动卸载这些组件。通过删除这些组件,您可以保存集群资源,因为在卸载 Operator 时终端不会闲置。
卸载 web 终端需要两步:
- 卸载 Web Terminal Operator 和安装 Operator 时添加的相关自定义资源 (CR)。
- 卸载 DevWorkspace Operator 及其作为 Web Terminal Operator 依赖项添加的相关自定义资源。
8.4.1. 删除 Web Terminal Operator
您可以通过删除 Web Terminal Operator 和 Operator 使用的自定义资源来卸载 web 终端。
先决条件
- 您可以使用集群管理员权限访问 OpenShift Container Platform 集群。
-
已安装
oc
CLI。
流程
-
在 web 控制台的 Administrator 视角中,导航到 Operators
Installed Operators。 - 滚动过滤器列表或在 Filter by name 框中输入关键字以查找 Web Terminal Operator。
- 点击 Web Terminal Operator 的 Options 菜单 ,然后选择 Uninstall Operator。
- 在 Uninstall Operator 确认对话框中,点 Uninstall 从集群中删除 Operator、Operator 部署和 pod。Operator 会停止运行,并且不再接收更新。
删除自定义资源:
$ oc delete devworkspaces.workspace.devfile.io --all-namespaces \ --selector 'console.openshift.io/terminal=true' --wait
$ oc delete devworkspacetemplates.workspace.devfile.io --all-namespaces \ --selector 'console.openshift.io/terminal=true' --wait
8.4.2. 删除 DevWorkspace Operator
要完全卸载 web 终端,还必须删除 DevWorkspace Operator 和 Operator 使用的自定义资源。
DevWorkspace Operator 是一个独立 Operator,可能需要作为集群中安装的其他 Operator 的依赖项。只有在确保不再需要 DevWorkspace Operator 时,才按照以下步骤操作。
先决条件
- 您可以使用集群管理员权限访问 OpenShift Container Platform 集群。
-
已安装
oc
CLI。
流程
删除 Operator 使用的
DevWorkspace
自定义资源,以及任何相关的 Kubernetes 对象:$ oc delete devworkspaces.workspace.devfile.io --all-namespaces --all --wait
$ oc delete devworkspaceroutings.controller.devfile.io --all-namespaces --all --wait
警告如果此步骤未完成,则终结器很难完全卸载 Operator。
删除 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
验证所有涉及的自定义资源定义都已移除。以下命令不应该显示任何输出:
$ oc get customresourcedefinitions.apiextensions.k8s.io | grep "devfile.io"
删除
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
命令。删除任何剩余的服务、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
卸载 DevWorkspace Operator:
-
在 web 控制台的 Administrator 视角中,导航到 Operators
Installed Operators。 - 滚动过滤器列表或在 Filter by name 框中输入关键字以查找 DevWorkspace Operator。
- 点 Operator 的 Options 菜单 ,然后选择 Uninstall Operator。
- 在 Uninstall Operator 确认对话框中,点 Uninstall 从集群中删除 Operator、Operator 部署和 pod。Operator 会停止运行,并且不再接收更新。
-
在 web 控制台的 Administrator 视角中,导航到 Operators