我最近将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)
并没有运气
答案 0 :(得分:2)
这取决于您的特定部署,但是Kubernetes specifices that
PodSpec具有一个
restartPolicy
字段,其可能值为Always
,OnFailure
和Never
。默认值为Always
。 [...]
因此,如果您不希望由于任何原因而重启pod,则必须明确告知不要重启。您没有提供YAML文件的示例内容,因此我无法猜测这样做的最佳位置,但这足以为我提供一般指导。
现在,针对您面临的问题:Docker可能正在使用自定义名称空间。使用
kubectl get namespaces
看看能得到什么,然后使用
在这些命名空间中搜索podkubectl -n <namespace> get pods
或者,如果您不耐烦,可以通过以下方法解决:
kubectl --all-namespaces get pods