包括:
如果有复制控制器,当删除一些部署时,它们将重新生成。有没有办法让 kubentes 返回到初始化状态?
Kubernetes 命名空间将是您的完美选择。
kubectl create -f custom-namespace.yaml
$ apiVersion: v1 kind: Namespace metadata: name:custom-namespace
现在,您可以在该自定义名称空间中部署所有其他资源(Deployment、 ReplicaSet、 Services 等)。
如果要删除所有这些资源,只需删除自定义名称空间即可。通过删除自定义命名空间,将删除所有其他资源。如果没有它,ReplicaSet 可能会在删除现有 pods 时创建新 pods。
要使用 Namespace,您需要向 k8s 命令添加—— Namespace 标志。
例如:
kubectl create -f deployment.yaml --namespace=custom-namespace
您可以在自定义名称空间中列出所有 pods。
kubectl get pods --namespace=custom-namespace
方法1 : 使用 kubectl delete从当前名称空间(通常是 违约名称空间)中删除所有内容:
kubectl delete
kubectl delete all --all
all指所有资源类型,如吊舱、部署、服务等。--all用于删除该资源类型的每个对象,而不是使用其名称或标签指定它。
all
--all
要删除特定名称空间中的所有内容,请使用-n 标志:
kubectl delete all --all -n {namespace}
方法2 : 您也可以删除一个名称空间并重新创建它,这将删除属于它的所有内容:
kubectl delete namespace {namespace} kubectl create namespace {namespace}
注意 (感谢 @ Marcus) : 库伯内特 并不代表所有的库伯内对象中的 all,例如管理级资源(限制、配额、策略、授权规则)。如果您真的想确保删除所有内容,那么最好删除名称空间并重新创建它。另一种方法是使用 kubectl api-resources获取所有资源类型,就像这里看到的:
kubectl api-resources
kubectl delete "$(kubectl api-resources --namespaced=true --verbs=delete -o name | tr "\n" "," | sed -e 's/,$//')" --all
您还可以通过附加的标签来删除 Kubernetes 资源。例如,假设下面的标签附加到所有资源
metadata: name: label-demo labels: env: dev app: nginx
现在只需执行以下命令
deleting resources using app label $ kubectl delete pods,rs,deploy,svc,cm,ing -l app=nginx deleting resources using envirnoment label $ kubectl delete pods,rs,deploy,svc,cm,ing -l env=dev
以防您想删除集群中的所有 K8S 资源。然后,最简单的方法是删除整个名称空间。
kubectl delete ns <name-space>
kubectl delete deploy,service,job,statefulset,pdb,networkpolicy,prometheusrule,cm,secret,ds -n namespace -l label
首先备份命名空间资源,然后删除通过 get all 命令找到的所有资源:
kubectl get all --namespace={your-namespace} -o yaml > {your-namespace}.yaml kubectl delete -f {your-namespace}.yaml
尽管如此,您的集群中仍然存在一些资源。 去问问
kubectl api-resources --verbs=list --namespaced -o name | xargs -n 1 kubectl get --show-kind --ignore-not-found --namespace {your-namespace}
如果您真的希望完全删除您的名称空间,请继续:
kubectl delete namespace {your-namespace}
(使用客户端 v1.23.1和服务器 v1.22.3进行测试)
也可以尝试 kubectl delete all --all --all-namespaces
kubectl delete all --all --all-namespaces
all引用所有资源
--all引用所有资源,包括未初始化的资源
所有名称空间中的 --all-namespaces
--all-namespaces
Kubectl 删除所有 删除群集中的所有资源。 删除所有资源后,k8将再次启动集群的默认服务。