编辑
2022-08-02
DevOps
00
请注意,本文编写于 642 天前,最后修改于 627 天前,其中某些信息可能已经过时。

今天想给 k8s deployment 中的镜像升级一下版本。发现容器内报错 lockfile 被占用,是因为默认的替换 pod 策略会先创建新的,等新的 healthy 之后再删除老 pod ,在我的场景下是需要先删除老 pod 再创建新 pod 的。根据官方文档:

如果 .spec.strategy.type==Recreate,在创建新 Pods 之前,所有现有的 Pods 会被杀死。

说明: 这只会确保为了升级而创建新 Pod 之前其他 Pod 都已终止。如果你升级一个 Deployment, 所有旧版本的 Pod 都会立即被终止。控制器等待这些 Pod 被成功移除之后, 才会创建新版本的 Pod。如果你手动删除一个 Pod,其生命周期是由 ReplicaSet 来控制的, 后者会立即创建一个替换 Pod(即使旧的 Pod 仍然处于 Terminating 状态)。 如果你需要一种“最多 n 个”的 Pod 个数保证,你需要考虑使用 StatefulSet

解决~

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:mereith

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!