包括:
如果有replicationcontroller,当删除一些部署时,它们将重新生成.有没有办法让kubenetes回到初始化状态?
小智 26
也可以尝试kubectl delete all --all --all-namespaces
all
指所有资源
--all
指所有资源,包括未初始化的资源
--all-namespaces
在所有所有命名空间中
警告:这也会删除 kube-system pod,请谨慎使用
vic*_*rtv 21
方法1:使用以下命令从当前名称空间(通常是默认名称空间)中删除所有内容kubectl delete
:
kubectl delete all --all
Run Code Online (Sandbox Code Playgroud)
all
引用所有资源类型,例如Pod,部署,服务等。--all
用于删除该资源类型的每个对象,而不是使用其名称或标签来指定它。
要从某个命名空间中删除所有内容,请使用-n标志:
kubectl delete all --all -n {namespace}
Run Code Online (Sandbox Code Playgroud)
方法2:您还可以删除一个名称空间并重新创建它。这将删除属于它的所有内容:
kubectl delete namespace {namespace}
kubectl create namespace {namespace}
Run Code Online (Sandbox Code Playgroud)
注意(感谢@Marcus):all
在kubernetes中并没有引用每个kubernetes对象,例如管理员级别的资源(限制,配额,策略,授权规则)。如果您确实要确保删除删除,最好删除命名空间并重新创建它。这样做的另一种方法是使用kubectl api-resources
获取所有资源类型,如下所示:
kubectl delete "$(kubectl api-resources --namespaced=true --verbs=delete -o name | tr "\n" "," | sed -e 's/,$//')" --all
Run Code Online (Sandbox Code Playgroud)
Sur*_*noi 12
Kubernetes Namespace将是您的最佳选择.您可以轻松创建命名空间资源.
kubectl create -f custom-namespace.yaml
$ apiVersion: v1
kind: Namespace
metadata:
name:custom-namespace
现在,您可以在该自定义命名空间中部署所有其他资源(部署,副本集,服务等).
如果要删除所有这些资源,只需删除自定义命名空间即可.通过删除自定义命名空间,将删除所有其他资源.如果没有它,ReplicaSet可能会在删除现有pod时创建新的pod.
要使用Namespace,需要在k8s命令中添加--namespace标志.
例如
kubectl create -f deployment.yaml --namespace=custom-namespace
您可以列出custom-namespace中的所有pod.
kubectl get pods --namespace=custom-namespace
Dan*_*Dan 12
您还可以在附加标签的帮助下删除 Kubernetes 资源。例如,假设下面的标签附加到所有资源
metadata:
name: label-demo
labels:
env: dev
app: nginx
Run Code Online (Sandbox Code Playgroud)
现在只需执行以下命令
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
Run Code Online (Sandbox Code Playgroud)
首先备份命名空间资源,然后删除使用 get all 命令找到的所有资源:
kubectl get all --namespace={your-namespace} -o yaml > {your-namespace}.yaml
kubectl delete -f {your-namespace}.yaml
Run Code Online (Sandbox Code Playgroud)
尽管如此,您的集群中仍然存在一些资源。检查与
kubectl api-resources --verbs=list --namespaced -o name | xargs -n 1 kubectl get --show-kind --ignore-not-found --namespace {your-namespace}
Run Code Online (Sandbox Code Playgroud)
如果您确实想完全删除您的命名空间,请继续:
kubectl delete namespace {your-namespace}
Run Code Online (Sandbox Code Playgroud)
(使用客户端 v1.23.1 和服务器 v1.22.3 进行测试)
归档时间: |
|
查看次数: |
13001 次 |
最近记录: |