更新 dockerfile 后如何重新部署 kubernetes 中的所有内容?

her*_*ain 10 docker google-cloud-platform kubernetes

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

Jak*_*lik 12

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

  • 您很可能想要:`kubectl rollout restart deploy <name>` (6认同)

moh*_*08p 6

您可以使用滚动更新机制来更新服务而无需中断,这将一次更新一个 pod,直到所需的状态匹配,并且您的服务仍然启动并运行。当然,我们必须更新 Pod 内的容器以保护我们的数据并获取最新功能。Kubernetes 通过修改部署和管理它们,可以轻松地对应用程序进行更新。现在是主要更新时间,我们将使用简单的方法来调整它们。

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

$ kubectl apply -f deployments/auth.yaml
Run Code Online (Sandbox Code Playgroud)

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

$ kubectl describe deployments auth
Run Code Online (Sandbox Code Playgroud)

滚动更新完成后,我们可以查看 auth 服务正在运行的 pod。

$ kubectl get pods
Run Code Online (Sandbox Code Playgroud)

检查其运行的时间范围。新版本的 auth pod 已经取代了之前的版本。再次检查新 auth pod 的 ID 并进行验证。通过这种方式更新部署,我们可以使用一种干净的声明式方法来对我们的应用程序进行更改(无论您运行的是单个还是数千个 Pod)。