【问题标题】:How to delete and recreate pods using yaml file in kubernetes如何在 kubernetes 中使用 yaml 文件删除和重新创建 pod
【发布时间】:2018-08-17 23:34:36
【问题描述】:

我有一个 yaml 文件,可用于创建 pod。我正在使用仪表板,所以我可以简单地选择 yaml 文件,它会创建 pod。 Pod 将启动容器,容器将运行 docker 映像。所以现在假设我对 docker 映像做了一些更改,并想再次部署它。为此,我将删除已经运行的 pod 并上传 yaml 文件。

除了删除和再次上传 yaml 文件之外,是否有任何可用的关键字可以删除已经运行的 pod/deployment 并重新创建它。

谢谢

【问题讨论】:

标签: deployment kubernetes


【解决方案1】:

如果您将其用于开发,您可能会逃脱

containers:
- image: my/app:dev
  imagePullPolicy: Always

有了这个,每当你的 pod 被重新创建时,你都会得到新的图像版本。

也就是说,您需要使用 Deployment 之类的工具来自动重新启动 pod,然后您只需 kubectl delete my-pod-xxxxx-yyy 擦除旧的,并在几秒钟内获得新的、当前的。

对于产品,请不要这样做。只需使用标记图像并将更改的图像应用到您的部署中,使用 kubectl apply -f my.yaml 或最好使用类似 Helm 的东西(但对于初学者来说这是更复杂的主题)

【讨论】:

    【解决方案2】:

    我不记得我第一次看到这个方法的 StackOverflow 问题,但这里又是:

    kubectl --namespace thenamespace get pod thepod -o yaml | kubectl replace --save-config -f -

    您可以使用所有 k8s 资源来做到这一点。

    【讨论】:

    • 关于使用它的一个注意事项是,如果您遵循声明式部署方法(即使用kubectl apply),则使用replace 将不会写入last-applied-configuration 注释,除非您添加--save-config 选项。命令式和声明式方法的比较可在 kubernetes.io/docs/concepts/overview/object-management-kubectl/… 获得
    • 非常有趣!谢谢你。
    猜你喜欢
    • 2017-04-02
    • 2021-12-09
    • 2020-08-24
    • 2017-07-30
    • 2020-10-23
    • 1970-01-01
    • 2016-09-03
    • 2019-03-20
    • 1970-01-01
    相关资源
    最近更新 更多