【问题标题】:How do I redeploy everything in kubernetes after updating a dockerfile?更新 dockerfile 后如何重新部署 kubernetes 中的所有内容?
【发布时间】:2018-02-26 04:57:18
【问题描述】:

我对 kubernetes 非常陌生,此时我想做的就是重新启动我的集群并让它运行更新的 dockerfile。顺便说一句,我正在 google-cloud-platform 中运行 kubernetes。

【问题讨论】:

  • 在这里需要更多信息。当你说你有一个更新的 dockerfile 时,这是否意味着你想要更新你的 pod?如果你想这样做,你不需要重新启动你的集群。另外,您的容器目前是如何部署的?你做过部署或 pod 吗?

标签: docker kubernetes google-cloud-platform


【解决方案1】:

1.15 版的kubectl 应该包含kubectl rollout restart (据此评论https://github.com/kubernetes/kubernetes/issues/33664#issuecomment-497242094

【讨论】:

  • 最有可能你想要:kubectl rollout restart deploy <name>
【解决方案2】:

您可以使用rolling update mechanism 在不中断的情况下更新服务,这将一次更新一个 pod,直到所需的状态匹配,并且您的服务仍然正常运行。当然,我们必须更新 pod 内的容器以保护我们的数据并获取最新功能。 Kubernetes 通过修改部署和管理它们,可以轻松地向您的应用程序推出更新。这是主要的更新时间,我们将使用简单的方法来调整它们。

假设您有前端、身份验证和后端部署,并且更改为身份验证或更新版本,因此您想要更新身份验证部署配置文件,您可以在其中将其各自的身份验证容器映像更改为更新版本后构建新的 docker 镜像,只需更改 .yaml 文件中的镜像版本并按如下方式应用

$ kubectl apply -f deployments/auth.yaml

使用部署描述命令检查它是否成功,您可以看到滚动更新策略并确定正确数量的 pod 始终可用。它使用新的副本集来确保我们运行的是最新版本的身份验证容器。

$ kubectl describe deployments auth

滚动更新完成后,我们可以查看正在运行的身份验证服务的 Pod。

$ kubectl get pods

检查它的运行时间范围。新版本的 auth pod 已经取代了之前的版本。再次检查新 auth pod 的 id 并进行验证。以这种方式更新部署使我们能够使用一种干净的声明性方法来对我们的应用程序进行更改,因为您有单个或数千个 pod 正在运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-11
    • 2017-01-08
    • 1970-01-01
    • 1970-01-01
    • 2019-03-19
    • 2017-06-03
    • 2020-08-27
    相关资源
    最近更新 更多