Удаление всех экземпляров типа ресурса во всех/множестве пространств имен Kubernetes.

Я пытаюсь удалить и переустановить диспетчер сертификатов в наших кластерах Kubernetes. В их документах по удалению упоминается:

Прежде чем продолжить, убедитесь, что все ресурсы диспетчера сертификатов, созданные пользователями, удалены. Вы можете проверить наличие существующих ресурсов с помощью следующей команды:

$ kubectl get Issuers,ClusterIssuers,Certificates,CertificateRequests,Orders,Challenges --all-namespaces

Команда выводит сотни ресурсов, разбросанных по двум дюжинам пространств имен.

Как я могу эффективно удалить их все, не удаляя ничего больше в пространствах имен?

The 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) удаляется.

Другие вопросы по тегам