PetSet文档说明:
更新现有的宠物集目前是一个手动过程,这意味着您需要使用新的映像版本部署新的宠物集,或者逐个孤立宠物,更新它们的映像,然后将它们重新加入群集。
但是我没有看到任何关于如何真正做到这一点的文档。一个人如何使宠物成为孤儿,然后让它重新加入?
另外,假设我一个接一个地打开我的宠物,然后把它们重新加入集群。PetSet清单本身没有改变,那么如果一个pod崩溃了会发生什么?petSet会用以前的旧映像重新启动它吗?
PetSet文档说明:
更新现有的宠物集目前是一个手动过程,这意味着您需要使用新的映像版本部署新的宠物集,或者逐个孤立宠物,更新它们的映像,然后将它们重新加入群集。
但是我没有看到任何关于如何真正做到这一点的文档。一个人如何使宠物成为孤儿,然后让它重新加入?
另外,假设我一个接一个地打开我的宠物,然后把它们重新加入集群。PetSet清单本身没有改变,那么如果一个pod崩溃了会发生什么?petSet会用以前的旧映像重新启动它吗?
2条答案
按热度按时间hgc7kmma1#
抱歉,这不是很清楚。如前所述,更新petset最简单的方法是部署另一个。
单词“orphan”在这个上下文中是误导性的,因为它在其他地方被用来表示更改标签/选择器。(即网络+存储+序数)它不会再创造任何东西。你不能有2个宠物具有相同的身份,因为显而易见的原因,这意味着如果你“孤儿”宠物-1,宠物组控制器将不会创建另一个宠物-1,因为这意味着2个pod获得相同的DNS名称。
要在不丢失仲裁的情况下进行原地升级,你必须从 * 集群 * 而不是宠物集中孤立每只宠物。也就是说,如果你有一个5成员的动物园守护者集群,更新4个成员的配置,使其认为现在只有4个成员,升级1个,然后更新4个成员,以包括新的一个。
另外,假设我一个接一个地打开我的宠物,然后把它们重新加入集群。PetSet清单本身没有改变,那么如果一个pod崩溃了会发生什么?petSet会用以前的旧映像重新启动它吗?
您可以使用新映像重新创建宠物集。删除它将不会删除宠物(http://kubernetes.io/docs/user-guide/petset/#alpha-limitations),并且只要预期的标识存在,创建它将不会重新创建。
petset的kubectl滚动更新计划在下一发行版(https://github.com/kubernetes/kubernetes/issues/28706)中进行。
jfgube3f2#
我 只是 面临 着 完全 相同 的 问题 , 我 不得 不 说 , 我 不 同意 选择 的 答案 。
首先 , 移除 宠物 集 * * 会 * * 移除 所有 相关 的 pod 。
根据 文件 , 它 将 只是 * * 不 * * 删除 pv/pvcs 。
删除 和/或 缩小 PetSet 将 不会 删除 与 PetSet 关联 的 卷 。 这样 做 是 为了 首先 确保 安全 , 您 的 数据 比 自动 清除 所有 相关 PetSet 资源 更 有 价值 。 删除 永久 卷 声明 将 导致 删除 关联 的 卷 。
为了 更新 PetSet , 您 需要 首先 使用
--cascade=false
删除 旧 的 PetSet 。这 将 删除 PetSet , 但 保留 其他 所有 内容 , * * 包括 正在 运行 的 pod * * 。
您 现在 可以 重新 部署 更新 后 的 PetSet , 并 开始 一 次 移除 一 个 pod 。
将 使用 新 的 PetSet 模板 重新 创建 pod 。