【发布时间】:2019-12-20 08:58:08
【问题描述】:
我获得了一项具有自动缩放功能的服务,这意味着它可以运行 2 个或 4 个 pod。我的问题是这个服务是一个带有 service-worker 的 reactjs 应用程序。
使用我当前的部署策略,它将创建一个新的 Pod 并一次杀死一个,这会在客户端警告有新的更新并尝试从服务器获取新资产并且负载均衡器将其转发到旧豆荚。
所以基本上我想知道是否可以更改为创建 x pod 并同时替换它们的策略?
【问题讨论】:
我获得了一项具有自动缩放功能的服务,这意味着它可以运行 2 个或 4 个 pod。我的问题是这个服务是一个带有 service-worker 的 reactjs 应用程序。
使用我当前的部署策略,它将创建一个新的 Pod 并一次杀死一个,这会在客户端警告有新的更新并尝试从服务器获取新资产并且负载均衡器将其转发到旧豆荚。
所以基本上我想知道是否可以更改为创建 x pod 并同时替换它们的策略?
【问题讨论】:
使用 Recreate deployment strategy 首先杀死所有旧的 pod,然后创建新的。
或者,如果您希望首先创建一组并行的新 pod,将流量重新路由到这些新 pod,然后终止旧 pod(即blue/green deployment),请检查this guide。
【讨论】:
在您的 deployment.yaml 清单中添加 spec.strategy.type 并将其设置为“重新创建” 这将在创建新的 pod 之前杀死所有现有的 pod。
spec:
strategy:
type: Recreate
您使用的策略是 - RollingUpdate ,如果您不指定,则为默认值。
【讨论】:
尽管它是手动的并且符合您的要求,但请遵循此方法。
假设您在集群中运行 1.0 版(带有标签 version:1.0 )并且您想升级到 2.0 版
【讨论】: