【问题标题】: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 资源来做到这一点。