sudo kubectl get deployments # returns no resources found
Deployments
- не единственные контроллеры в Kubernetes, которые могут управлять вашими модулями.Их много: StatefulSet
, ReplicaSet
и т. Д. (См. Документацию Controllers doc )
Короче говоря, aКонтроллер отвечает за работу всех модулей, которыми он управляет, и создает их при необходимости - когда вы удалите все модули, соответствующий контроллер обнаружит, что они отсутствуют, и просто создаст их заново, чтобы убедиться, что он соответствует его спецификациям.
Если вы хотите эффективно удалить все модули, вы должны удалить все связанные контроллеры (или обновить их, чтобы установить для их реплики значение 0), например:
# do NOT run this in the kube-system namespace, it may corrupt your cluster
# You can also specify --namespace xxx to delete in a specific namespace
kubectl delete deployment --all # configures ReplicaSets, deleting Deployments should delete ReplicaSet as well as associated Pods
kubectl delete statefulset --all
kubectl delete daemonset --all
kubectl delete job --all
kubectl delete cronjob --all
kubectl delete replicationcontroller --all # their should not be any ReplicationController as Deployment should be used
# Then delete what you find
РЕДАКТИРОВАТЬ: как указано PEmkambaram ответ, вы также можете удалить все пространство имен с помощью kubectl delete namespace mynamespace
(конечно, не удаляйте kube-system
), но он также может удалить другие компоненты в пространстве имен, такие как Services
Важнопримечания:
- Вы также должны соблюдать осторожность при удалении модулей или объектов в пространстве имен
kube-system
, которые связаны с внутренним подключением самого кластера. - Вам следуетНе удаляйте непосредственно компоненты Kubernetes, удаляя их базовые контейнеры с помощью команд
docker
, это может привести к неожиданным последствиям, вместо этого используйте kubectl
.