我已将 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>
非常感谢您的回复。