Pod图像更新并重新启动容器保持相同的IP问题

问题描述 投票:1回答:1

我正在使用POD直接管理K8s集群中的C *集群,而不是使用任何高级控制器。当我想升级C *时,我想进行图像更新。这是更新图像升级的好模式吗?

我看到高级部署控制器也支持图像更新,但这会导致POD删除并重新创建,从而导致IP更改。我不想更改IP,我发现如果我直接更新POD图像,它可以导致重启并保持IP。这是我想要的确切行为,这种模式对吗?

在生产中使用是否安全?

kubernetes
1个回答
2
投票

我相信你可以按照K8s documentation进行更加“生产就绪”的升级策略。基本上,使用updateStrategy=RollingUpdate

$ kubectl patch statefulset cassandra -p '{"spec":{"updateStrategy":{"type":"RollingUpdate"}}}

然后更新图像:

$ kubectl patch statefulset web --type='json' -p='[{"op": "replace", "path": "/spec/template/spec/containers/0/image", "value":"cassandra:next-version"}]'

并观看您的更新:

$ kubectl get pod -l app=cassandra -w

如果你想单独更新每个C *节点,还有Staging the Update,例如,为什么如果新版本不兼容,那么你可以将C *恢复为原始版本。

此外,在升级之前,请熟悉所有Cassandra发行说明。

© www.soinside.com 2019 - 2024. All rights reserved.