Kubernetes 不断创建对象

Kubernetes keeps creating objects

作为 K8s 的新手,我试图在 运行 在 Windows 10 机器上进行一些测试后清理整个命名空间。简而言之,我认为它会像 运行 kubectl.exe 删除部署一样简单,但部署会在一秒钟后重新创建,我不知道如何摆脱它们。有关我所做的详细信息,请参阅以下内容:

1.kubectl get deployments,rs(看看我们已经有什么)

NAME                               DESIRED   CURRENT   UP-TO-DATE   AVAILABLE AGE
deployment.extensions/postgresql   1         1         1            1           18m
deployment.extensions/redis        1         1         1            1           16m
NAME                                         DESIRED   CURRENT   READY     AGE  
replicaset.extensions/postgresql-c8cb9fff6   1         1         1         18m
replicaset.extensions/redis-5678477b7c       1         1         1         16m

2. kubectl scale deployment redis --replicas=0(缩减部署规模)

deployment.extensions "redis" scaled

3. kubectl get deployments,rs(再看一遍)

NAME                               DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
deployment.extensions/postgresql   1         1         1            1           21m
deployment.extensions/redis        0         0         0            0           19m
NAME                                         DESIRED   CURRENT   READY     AGE
replicaset.extensions/postgresql-c8cb9fff6   1         1         1         21m
replicaset.extensions/redis-5678477b7c       0         0         0         19m

4. kubectl delete deployment.extensions/redis(删除部署)

deployment.extensions "redis" deleted

5. kubectl get deployments,rs(再检查一下,又回来了!)

NAME                               DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
deployment.extensions/postgresql   1         1         1            1           23m
deployment.extensions/redis        1         1         1            1           27s  
NAME                                         DESIRED   CURRENT   READY     AGE
replicaset.extensions/postgresql-c8cb9fff6   1         1         1         23m
replicaset.extensions/redis-5678477b7c       1         1         1         27s

6. kubectl.exe get events(调查事件):
除其他外,我可以看到 "Scaled down replica set redis-5678477b7c to 0" 然后是 "Scaled up replica set redis-5678477b7c to 1",看起来它从未真正被删除,但在执行删除命令后立即再次放大。

不确定我遗漏了什么,但已经检查了其他几个帖子,例如 and ,但没有一个对我有用。

忘了说K8s集群是由Docker桌面管理的

  1. 使用kubectl delete deployment <the name of deployment >

  2. 如果您需要清理整个命名空间,请使用 kubectl delete namespace <namespace-name>

  3. 然后通过kubectl create ns命令re-create相同的命名空间,如果你需要相同的命名空间。

  4. 您还可以通过对对象使用 --all 选项来清理命名空间:

例如

   kubecetl delete deployment --all
   kubecetl delete statefulset --all
   kubectl delete pvc --all
   kubectl delete secrets --all
   kubectl delete service --all

等等。

正如 @David Maze 所指出的,您正在删除 ReplicaSet instead of the Deployment that's managing it.

来自documentation

You can define Deployments to create new ReplicaSets

Deployment 会自动创建和管理 ReplicaSet 来控制 pods。您需要删除 Deployment 以清除其托管资源。