如何通过kubectl列出Kubernetes集群已安装Operator并执行卸载操作
Kubernetes Operator 常用操作指南(查询、卸载)
一、列出集群中已安装的Operator
Operator的安装分为两种常见模式,对应不同的查询方式:
1. 通过Operator Lifecycle Manager(OLM)安装的Operator
OLM是Kubernetes官方的Operator管理组件,通过它安装的Operator可以直接用以下命令列出全部实例:
kubectl get csv -A
返回结果会直接展示所有Operator的名称、版本、安装命名空间、运行状态等信息。
2. 直接通过YAML文件安装的Operator(比如你安装的Kubegres)
这种模式没有统一的元数据管理,需要结合CRD和控制器部署查询:
- 先确认对应Operator的CRD是否注册成功,以Kubegres为例:
有返回结果说明CRD已正常部署。kubectl get crd | grep kubegres - 再查询对应Operator的控制器运行状态,Kubegres默认部署在
kubegres-system命名空间下:
能看到kubectl get deployments,pods -n kubegres-systemkubegres-controller-manager的部署和运行中的Pod,说明Operator实例正常运行。 - 如果要查询集群内所有直接安装的Operator,可以先列出所有CRD,再关联对应命名空间下的控制器部署即可:
kubectl get crds -o custom-columns=CRD名称:.metadata.name,创建时间:.metadata.creationTimestamp
二、卸载Operator
卸载前建议先删除所有用该Operator创建的业务资源实例,避免出现孤儿资源残留,以Kubegres为例:
kubectl delete kubegres --all -A
1. YAML文件安装的Operator卸载
直接使用安装时的YAML路径执行delete操作即可,会自动清理该YAML定义的所有关联资源(CRD、控制器、RBAC权限、命名空间等):
kubectl delete -f <替换为你安装时使用的YAML文件路径>
2. OLM安装的Operator卸载
先查询要卸载的Operator对应的CSV名称和安装命名空间:
kubectl get csv -A
再依次删除CSV和对应的订阅资源即可:
kubectl delete csv <替换为你的CSV名称> -n <替换为Operator安装命名空间> kubectl delete subscription <替换为你的订阅名称> -n <替换为Operator安装命名空间>
如果不需要保留对应CRD,可手动删除CRD资源。
内容的提问来源于stack exchange,提问作者hotmeatballsoup
相关产品推荐
相关产品推荐

