使用CLI移除Kubernetes服务目录的Finalizer

14

我正在尝试在我的云服务提供商(IBM Cloud Private)中配置/取消配置服务实例/绑定。目前存在一个bug,如果服务没有在ICP中取消配置,那么就会留下一个孤立的服务实例在我的ICP环境中,即使我使用force选项也无法删除。

他们提供了一个解决方法:

kubectl edit ServiceInstance <service-instance-name>
kubectl edit ServiceBinding <service-binding-name>

然后删除这行代码:

...
finalizers:
    - kubernetes-incubator/service-catalog
...

我想知道如何使用Bash命令行界面(实时编辑+删除行+保存+退出)或其他替代方法自动化此过程,以便正确删除孤立的服务实例/绑定。

2个回答

30

虽然我不确定如何与ServiceInstance和ServiceBinding一起使用,但您可以使用kubectl patch来直接更新对象。例如:

kubectl patch ServiceInstance <service-instance-name> -p '{"metadata":{"finalizers":null}}' --type=merge

10

kubectl patch 是其中一种方法。你也可以使用一个jq/kubectl单行命令。

kubectl get ServiceInstance <service-instance-name> -o=json | \
jq '.metadata.finalizers = null' | kubectl apply -f -

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接