pods、服务、部署等的 kubernetes 清理
kubernetes cleanup of pods,service,deployment etc
为了设置 kubernetes,我从创建命名空间、部署和服务开始。要清理资源,我是否需要遵循任何顺序,例如先删除服务,然后 pods 然后部署,最后是命名空间?
如何以适当的方式清理资源?因为我删除了 pods 和服务,但我可以再次看到 pods,services 运行。又要调资源了,所以才提出这个问题,请高手解答。
我按以下顺序删除了资源,它对我有用。
获取全部资源
kubectl get pods,services,deployments,jobs,daemonset
删除如下资源:
kubectl delete deployments <deployment>
kubectl delete services <services>
kubectl delete pods <pods>
kubectl delete daemonset <daemonset>
如果你只是删除命名空间,它会删除其中的所有内容,你不需要手动清理其中的所有内容。我在网上搜索了“Kubernetes delete namespace”,并在官方 Kubernetes 文档中找到了这个:https://kubernetes.io/docs/tasks/administer-cluster/namespaces/#deleting-a-namespace
关于您关于 pods 回来的问题:当您创建部署时,它会创建 pods。当您删除部署时,它会自动删除它创建的 pods。如果您手动删除部署自动创建的 pods,它会将它们恢复,因为部署中指定的所需副本数仍然是正数。
如果您直接创建 pods(不是通过部署),您可以直接删除它们,它们将保持删除状态。
Pods(直接创建的)、部署和服务都可以独立删除,顺序无关紧要。如果要删除它们而不是命名空间,请按任意顺序删除它们。如果您也想删除命名空间,只需删除命名空间,它会自动为您删除命名空间中的所有内容,您无需再单独删除这些内容。
以防万一你 运行 它们在默认命名空间中并且有很多,你不想花时间一个一个地删除它们:
kubectl delete deployments --all
kubectl delete services --all
kubectl delete pods --all
kubectl delete daemonset --all
我按照不同的方法来清理分配给应用程序的资源。
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx-75b7bfdb6b-k76tl 1/1 Running 0 9d
$ kubectl get deployments
NAME READY UP-TO-DATE AVAILABLE AGE
nginx 1/1 1 1 9d
所以现在不要单独删除应用程序的objects/resources,而是使用delete all
,这会删除与该应用程序关联的所有资源申请。
这样 Kubernetes 清理资源而不是我们决定清理的顺序。
$ kubectl delete all -l app=nginx
pod "nginx-75b7bfdb6b-k76tl" deleted
service "nginx-service" deleted
deployment.apps "nginx" deleted
replicaset.apps "nginx-75b7bfdb6b" deleted
希望对您有所帮助!
首先找出你添加的东西,或者添加到组合中的东西(参见 sidecar 注入)。
对于任何给定的 k8s 安装,可能会出现不同的对象。大多数命名空间对象可以通过下面的 shell 片段列出。 (只需将变量 NAMESPACE 设置为相关命名空间即可。
kubectl get --namespace $NAMESPACE $(kubectl api-resources --namespaced=true --no-headers=true | awk ' { print } ' | perl -e '@foo = map { s/\n//; $_; } <> ; print join "," , @foo ; ' )
可能会有一些事件,以及一两个默认帐户或密码。
现在你知道了所有的东西,你可以删除所有的东西。请谨慎操作,并在每次使用 kubectl 时同时包含 --namespace 和 --context 标志。
为了设置 kubernetes,我从创建命名空间、部署和服务开始。要清理资源,我是否需要遵循任何顺序,例如先删除服务,然后 pods 然后部署,最后是命名空间? 如何以适当的方式清理资源?因为我删除了 pods 和服务,但我可以再次看到 pods,services 运行。又要调资源了,所以才提出这个问题,请高手解答。
我按以下顺序删除了资源,它对我有用。
获取全部资源
kubectl get pods,services,deployments,jobs,daemonset
删除如下资源:
kubectl delete deployments <deployment>
kubectl delete services <services>
kubectl delete pods <pods>
kubectl delete daemonset <daemonset>
如果你只是删除命名空间,它会删除其中的所有内容,你不需要手动清理其中的所有内容。我在网上搜索了“Kubernetes delete namespace”,并在官方 Kubernetes 文档中找到了这个:https://kubernetes.io/docs/tasks/administer-cluster/namespaces/#deleting-a-namespace
关于您关于 pods 回来的问题:当您创建部署时,它会创建 pods。当您删除部署时,它会自动删除它创建的 pods。如果您手动删除部署自动创建的 pods,它会将它们恢复,因为部署中指定的所需副本数仍然是正数。
如果您直接创建 pods(不是通过部署),您可以直接删除它们,它们将保持删除状态。
Pods(直接创建的)、部署和服务都可以独立删除,顺序无关紧要。如果要删除它们而不是命名空间,请按任意顺序删除它们。如果您也想删除命名空间,只需删除命名空间,它会自动为您删除命名空间中的所有内容,您无需再单独删除这些内容。
以防万一你 运行 它们在默认命名空间中并且有很多,你不想花时间一个一个地删除它们:
kubectl delete deployments --all
kubectl delete services --all
kubectl delete pods --all
kubectl delete daemonset --all
我按照不同的方法来清理分配给应用程序的资源。
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx-75b7bfdb6b-k76tl 1/1 Running 0 9d
$ kubectl get deployments
NAME READY UP-TO-DATE AVAILABLE AGE
nginx 1/1 1 1 9d
所以现在不要单独删除应用程序的objects/resources,而是使用delete all
,这会删除与该应用程序关联的所有资源申请。
这样 Kubernetes 清理资源而不是我们决定清理的顺序。
$ kubectl delete all -l app=nginx
pod "nginx-75b7bfdb6b-k76tl" deleted
service "nginx-service" deleted
deployment.apps "nginx" deleted
replicaset.apps "nginx-75b7bfdb6b" deleted
希望对您有所帮助!
首先找出你添加的东西,或者添加到组合中的东西(参见 sidecar 注入)。
对于任何给定的 k8s 安装,可能会出现不同的对象。大多数命名空间对象可以通过下面的 shell 片段列出。 (只需将变量 NAMESPACE 设置为相关命名空间即可。
kubectl get --namespace $NAMESPACE $(kubectl api-resources --namespaced=true --no-headers=true | awk ' { print } ' | perl -e '@foo = map { s/\n//; $_; } <> ; print join "," , @foo ; ' )
可能会有一些事件,以及一两个默认帐户或密码。
现在你知道了所有的东西,你可以删除所有的东西。请谨慎操作,并在每次使用 kubectl 时同时包含 --namespace 和 --context 标志。