【问题标题】:How to restart the pods even if there no change to the config即使配置没有更改,如何重新启动 Pod
【发布时间】:2017-10-21 03:37:21
【问题描述】:

我在一台服务器上构建 docker 映像,然后将其加载到节点上(使用 docker save 和 docker load cmds)。

然后我更改 dep_config 文件以将其拉到本地而不是 repo。(通过设置 imagepullpolicy)。

在这一步之后,我执行“kubectl apply -f dep_config.yml”。

现在,Pod 仅第一次重新启动,但随后加载图像和应用配置文件,Pod 不会重新启动。

即使 config_deploy.yml 文件没有变化,我是否可以使用“kubectl apply”重新启动 pod。

【问题讨论】:

    标签: kubernetes containers


    【解决方案1】:

    一种常见的做法是使用patch 命令更改部署的未使用标签

    kubectl patch deployment your-deployment -p \ 
    "{\"spec\":{\"template\":{\"metadata\":{\"labels\":{\"date\":\"$(date +%s)\"}}}}}"
    

    基本上,您可以更改 pod 模板中的任何内容,甚至是本示例中没有人注意到的内容。

    【讨论】:

    • 这绝对是目前可用的最佳解决方法,但在使用 labels 时要记住一件小事,根据 k8s 文档,“标签可用于选择对象并查找满足特定条件的对象。相比之下,注释不用于识别和选择对象。所以labels 可能会导致意外的选择结果,而annotations 是完全安全的。
    • 注解更改是否真的推出了新的 pod?还是只有部署中的某些更改会导致新的部署推出?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    • 1970-01-01
    • 2019-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多