kubernetes - Kubernetes 不断创建对象
问题描述
作为 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
(查看事件):
除其他外,我可以看到“将副本集 redis-5678477b7c 缩小为 0”,然后“将副本集 redis-5678477b7c 放大为 1”,看起来它从未真正删除,但立即再次放大删除命令执行后。
不确定我遗漏了什么,但已经检查过其他几篇文章,例如Kubernetes pod 在删除时重新创建以及如何一次性从 Kubernetes 中删除所有资源?但没有一个为我工作。
忘了说 K8s 集群是由 Docker Desktop 管理的。
解决方案
采用
kubectl delete deployment <the name of deployment >
如果您需要清理整个命名空间,请使用
kubectl delete namespace <namespace-name>
kubectl create ns
如果需要相同的命名空间,则通过 command 重新创建相同的命名空间。您还可以使用带有对象的 --all 选项来清理命名空间:
例如
kubecetl delete deployment --all
kubecetl delete statefulset --all
kubectl delete pvc --all
kubectl delete secrets --all
kubectl delete service --all
等等。
正如@David Maze所指出的,您正在删除ReplicaSet而不是正在管理它的 Deployment。
从文档中:
您可以定义 Deployment 来创建新的 ReplicaSet
Deployment 会自动创建和管理一个 ReplicaSet 来控制 Pod。您需要删除部署以清除其托管资源。
推荐阅读
- c++ - 如何在 C++ 中读取和检查文件内容?
- c++ - 使用 c++ API 打印 LLVM IR 以调试 IR 生成
- elasticsearch - 最大虚拟内存区域 vm.max_map_count [65530] 太低,至少增加到 [262144]
- google-apps-script - 对 bigquery.tables.insert 的 API 调用失败并出现错误:已经存在
- node.js - 相同的 package-lock.json 和 git commit,但 typescript 检测到错误
- powershell - 如何使用 Powershell 卸载设备
- android-studio - 如何在 Android Studio 中通过反汇编进入本机代码?
- pointers - 如何将可以为空的原始指针转换为选项?
- java - 我如何在spring boot中生成唯一随机数并存储在mysql表中
- node.js - 无法在我的 npm 命令中使用 --globally