作为K8的新手,我试图在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”,这看起来好像从未真正删除,而是在执行delete命令后立即再次按比例放大。
不确定我缺少什么,但已经检查了Kubernetes pod gets recreated when deleted和How to delete all resources from Kubernetes one time?等其他几篇文章,但都没有一个对我有用。
忘了说K8s集群是由Docker Desktop管理的。
答案 0 :(得分:1)
使用kubectl delete deployment <the name of deployment >
如果您需要清理整个命名空间,请使用kubectl delete namespace <namespace-name>
然后,如果需要相同的名称空间,请通过kubectl create ns
命令重新创建相同的名称空间。
您还可以通过对对象使用--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 that's managing it。
您可以定义部署以创建新的副本集
Deployment将自动创建和管理一个ReplicaSet来控制容器。您需要删除部署以擦除其托管资源。