我正在尝试在我们的 Kubernetes 集群上卸载并重新安装 cert-manager。他们的卸载文档提到:
在继续之前,请确保已删除用户创建的所有 cert-manager 资源。您可以使用以下命令检查任何现有资源:
$ kubectl get Issuers,ClusterIssuers,Certificates,CertificateRequests,Orders,Challenges --all-namespaces
该命令输出数百个资源,分布在两打命名空间中。
如何有效地删除它们,而不删除命名空间中的任何其他内容?
该kubectl delete
命令需要在删除所有特定类型时指定命名空间,例如:kubectl delete certificates -n example-ns
,所以这里不好。
在指定的同时在循环中按名称删除每个-A
也不起作用,因为我需要指定命名空间:
$ kubectl delete -A order.certmanager.k8s.io/fcfa95477bc0149dbc16c99c54faa82e-cert-1862418815
error: a resource cannot be retrieved by name across all namespaces
这里正确的cli魔法是什么?
您应该删除整个
crd
(自定义资源定义),首先列出您的 CRD然后删除 CRD,例如(
Issuer
用作示例)当 CRD 被删除时,该 CRD 的所有实例(例如 的所有资源
kind: Issuer
)也被删除。