Kubernetesクラスタでcert-managerをアンインストールして再インストールしようとしています。アンインストールドキュメント言及:
続行する前に、ユーザーによって作成されたすべての cert-manager リソースが削除されていることを確認してください。次のコマンドを使用して、既存のリソースを確認できます。
$ kubectl get Issuers,ClusterIssuers,Certificates,CertificateRequests,Orders,Challenges --all-namespaces
このコマンドは、24 個の名前空間にまたがる数百のリソースを出力します。
名前空間内の他のものを削除せずに、すべてを効率的に削除するにはどうすればよいですか?
この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 マジックは何ですか?
答え1
(カスタムリソース定義)全体を削除する必要がありますcrd
。まずCRDをリストします。
kubectl get crd
そして、例えば(Issuer
例として) CRDを削除します。
kubectl delete crd issuer.<something>.<something>
CRD が削除されると、その CRD のすべてのインスタンス (たとえば、 のすべてのリソースkind: Issuer
) も削除されます。