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
그런 다음 예를 들어 CRD를 삭제합니다( Issuer
예를 들어 사용).
kubectl delete crd issuer.<something>.<something>
CRD가 삭제되면 해당 CRD의 모든 인스턴스(예: 의 모든 리소스 kind: Issuer
)도 삭제됩니다.