如何在 kubernetes 中使用 yaml 文件删除和重新创建 pod
Posted
技术标签:
【中文标题】如何在 kubernetes 中使用 yaml 文件删除和重新创建 pod【英文标题】:How to delete and recreate pods using yaml file in kubernetes 【发布时间】:2018-08-17 23:34:36 【问题描述】:我有一个 yaml 文件,可用于创建 pod。我正在使用仪表板,所以我可以简单地选择 yaml 文件,它会创建 pod。 Pod 将启动容器,容器将运行 docker 映像。所以现在假设我对 docker 映像做了一些更改,并想再次部署它。为此,我将删除已经运行的 pod 并上传 yaml 文件。
除了删除和再次上传 yaml 文件之外,是否有任何可用的关键字可以删除已经运行的 pod/deployment 并重新创建它。
谢谢
【问题讨论】:
你可以试试这里的建议:***.com/questions/45848606/… 【参考方案1】:如果您将其用于开发,您可能会逃脱
containers:
- image: my/app:dev
imagePullPolicy: Always
有了这个,每当你的 pod 被重新创建时,你都会得到新的图像版本。
也就是说,您需要使用 Deployment 之类的工具来自动重新启动 pod,然后您只需 kubectl delete my-pod-xxxxx-yyy
擦除旧的,并在几秒钟内获得新的、当前的。
对于产品,请不要这样做。只需使用标记图像并将更改的图像应用到您的部署中,使用 kubectl apply -f my.yaml
或最好使用类似 Helm 的东西(但对于初学者来说这是更复杂的主题)
【讨论】:
【参考方案2】:我不记得我第一次看到这个方法的 *** 问题,但这里又是:
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/… 获得
非常有趣!谢谢你。以上是关于如何在 kubernetes 中使用 yaml 文件删除和重新创建 pod的主要内容,如果未能解决你的问题,请参考以下文章
Kubernetes:通过轻量化工具 kubespy 实时观察YAML资源变更
如何在 kubernetes 中使用 yaml 文件删除和重新创建 pod
关于 Kubernetes 中通过 Kustomize 定制 Yaml资源文件的一些笔记