2.5.5. 卸载 Vertical Pod Autoscaler Operator

您可以从 OpenShift Container Platform 集群中删除 Vertical Pod Autoscaler Operator(VPA)。卸载后,已由现有 VPA CR 修改的 pod 的资源请求不会改变。任何新 pod 都会根据工作负载对象中的定义获得资源,而不是之前由 VPA 提供的的建议。

注意

您可以使用 oc delete vpa <vpa-name> 命令删除特定的 VPA。在卸载垂直 pod 自动扩展时,同样的操作适用于资源请求。

删除 VPA Operator 后,建议您删除与 Operator 相关的其他组件,以避免潜在的问题。

先决条件

  • 已安装 Vertical Pod Autoscaler Operator。

流程

  1. 在 OpenShift Container Platform web 控制台中,点击 OperatorsInstalled Operators
  2. 切换到 openshift-vertical-pod-autoscaler 项目。
  3. 找到 VerticalPodAutoscaler Operator,点 Options 菜单。点击 Uninstall Operator
  4. 在对话框中点 Uninstall
  5. 可选: 要删除与 Operator 关联的所有操作对象,请在对话框中选择 Delete all operand instance for this operator 复选框。
  6. 点击 Uninstall
  7. 可选: 使用 OpenShift CLI 删除 VPA 组件:

    1. 删除 VPA 变异 Webhook 配置:

      $ oc delete mutatingwebhookconfigurations/vpa-webhook-config
    2. 列出所有 VPA 自定义资源:

      $ oc get verticalpodautoscalercheckpoints.autoscaling.k8s.io,verticalpodautoscalercontrollers.autoscaling.openshift.io,verticalpodautoscalers.autoscaling.k8s.io -o wide --all-namespaces

      输出示例

      NAMESPACE      NAME                                                                       AGE
      my-project     verticalpodautoscalercheckpoint.autoscaling.k8s.io/vpa-recommender-httpd   5m46s
      
      NAMESPACE                           NAME                                                               AGE
      openshift-vertical-pod-autoscaler   verticalpodautoscalercontroller.autoscaling.openshift.io/default   11m
      
      NAMESPACE      NAME                                                       MODE   CPU   MEM       PROVIDED   AGE
      my-project     verticalpodautoscaler.autoscaling.k8s.io/vpa-recommender   Auto   93m   262144k   True       9m15s

    3. 删除列出的 VPA 自定义资源。例如:

      $ oc delete verticalpodautoscalercheckpoint.autoscaling.k8s.io/vpa-recommender-httpd -n my-project
      $ oc delete verticalpodautoscalercontroller.autoscaling.openshift.io/default -n openshift-vertical-pod-autoscaler
      $ oc delete verticalpodautoscaler.autoscaling.k8s.io/vpa-recommender -n my-project
    4. 列出所有 VPA 自定义资源定义(CRD):

      $ oc get crd

      输出示例

      NAME                                                              CREATED AT
       ...
      verticalpodautoscalercheckpoints.autoscaling.k8s.io               2022-02-07T14:09:20Z
      verticalpodautoscalercontrollers.autoscaling.openshift.io         2022-02-07T14:09:20Z
      verticalpodautoscalers.autoscaling.k8s.io                         2022-02-07T14:09:20Z
       ...

    5. 删除列出的 VPA CRD:

      $ oc delete crd verticalpodautoscalercheckpoints.autoscaling.k8s.io verticalpodautoscalercontrollers.autoscaling.openshift.io verticalpodautoscalers.autoscaling.k8s.io

      删除 CRD 会删除关联的角色、集群角色和角色绑定。但是,可能存在一些必须手动删除的集群角色。

    6. 列出任何 VPA 集群角色:

      $ oc get clusterrole | grep openshift-vertical-pod-autoscaler

      输出示例

      openshift-vertical-pod-autoscaler-6896f-admin        2022-02-02T15:29:55Z
      openshift-vertical-pod-autoscaler-6896f-edit         2022-02-02T15:29:55Z
      openshift-vertical-pod-autoscaler-6896f-view         2022-02-02T15:29:55Z

    7. 删除列出的 VPA 集群角色。例如:

      $ oc delete clusterrole openshift-vertical-pod-autoscaler-6896f-admin openshift-vertical-pod-autoscaler-6896f-edit openshift-vertical-pod-autoscaler-6896f-view
    8. 删除 VPA Operator:

      $ oc delete operator/vertical-pod-autoscaler.openshift-vertical-pod-autoscaler