Kubernetes阻止容器自动重启

时间:2018-11-12 12:23:07

标签: docker kubernetes

我最近将Mac的Docker升级到v18.06,并注意到它可以运行本地k8s集群。我很高兴尝试一下,并通过kubectl apply -f deployments/staging/tom.yml运行了我们的一项服务。 yml清单没有指定重新启动策略。然后,我使用kubectl delete -f ...将其关闭。从那时起,每次我启动docker时,该容器都会自动启动。这是docker ps的输出,为简洁起见被截断了

CONTAINER ID    IMAGE            COMMAND                  CREATED             NAMES
2794eae1f31e    b06778bfe205     "/bin/sh -c 'java -c…"   27 minutes ago      k8s_tom-joiner_tom-joiner-66fcfd84bc...
8dd19dd65486    b06778bfe205     "/bin/sh -c 'java -c…"   27 minutes ago      k8s_tom-loader_tom-loader-6cb9f7f4fb...
...

但是,该图像不是由Kubernetes管理的,所以我无法kubectl delete -f

kubectl get pods
No resources found.

如何永久关闭映像并防止其自动重启?我尝试docker update --restart=no $(docker ps -a -q)并没有运气

1 个答案:

答案 0 :(得分:2)

这取决于您的特定部署,但是Kubernetes specifices that

  

PodSpec具有一个restartPolicy字段,其可能值为AlwaysOnFailureNever。默认值为Always。 [...]

因此,如果您不希望由于任何原因而重启pod,则必须明确告知不要重启。您没有提供YAML文件的示例内容,因此我无法猜测这样做的最佳位置,但这足以为我提供一般指导。


现在,针对您面临的问题:Docker可能正在使用自定义名称空间。使用

kubectl get namespaces

看看能得到什么,然后使用

在这些命名空间中搜索pod
kubectl -n <namespace> get pods

或者,如果您不耐烦,可以通过以下方法解决:

kubectl --all-namespaces get pods

参考:kubectl cheat sheet