aks 集群中自定义 CRD 未被删除,如何删除?

aks 集群中自定义 CRD 未被删除,如何删除?

我已将 consul helm 存储库安装到默认命名空间。现在,想将其更改为自定义命名空间。

因此,使用 helm uninstall 命令删除了帮助图表。现在,当我尝试再次安装时,出现错误,因为 CRD 之前已经配置好了,需要清理它们。

因此,运行以下命令来检查 CRD。

kubectl get CustomResourceDefinition --all-namespaces
NAME                                     CREATED AT
healthstates.azmon.container.insights    2021-09-24T14:19:01Z
ingressgateways.consul.hashicorp.com     2021-09-26T13:17:13Z
servicedefaults.consul.hashicorp.com     2021-09-26T13:17:13Z
serviceintentions.consul.hashicorp.com   2021-09-26T13:17:13Z
servicerouters.consul.hashicorp.com      2021-09-26T13:17:13Z

上述 CRD,我需要以 consul 为潜台词全部清理掉。

因此,我尝试逐个删除。但是当我运行以下任何命令时,它就卡在那里而没有删除它们。

kubectl delete crd serviceintentions.consul.hashicorp.com
customresourcedefinition.apiextensions.k8s.io "serviceintentions.consul.hashicorp.com" deleted

我等了一个小时,没有回应,所以输入 ctrl+c 取消,然后再次运行 get 命令,看来它们没有被删除。

请建议如何修复此问题?

答案1

参考关联

您能否执行 kubectl get crd -A -o yaml | grep -i finalizers 来检查删除操作是否与 CRD 上设置的终结器陷入死锁?

在这种情况下,您可以执行以下操作:

 kubectl patch crd <custome-resource-definition-name> -n <namespace> -p '{"metadata":{"finalizers":[]}}' --type=merge
 kubectl delete crd <custome-resource-definition-name> -n <namespace>

以上是我在 MSDN 论坛上得到的回复。但这对我不起作用。因此,我使用以下命令手动编辑了 CRD,并从 CRD 中删除了 finalizer 部分,然后它就直接被删除了。

kubectl edit crd <CRD-Name>

非常感谢您的回复。

相关内容