在升级 Kubernetes 集群时,就地更新触发器容器重启,

nimxete2  于 5个月前  发布在  Kubernetes
关注(0)|答案(9)|浏览(130)

发生了什么?

  1. 当升级k8s集群版本并启用指定的功能门后,旧版本k8s创建的旧pod会在调整pod spec大小时重新启动。
  2. 在禁用就地更新功能门的情况下,执行了某些调整大小操作的pod会重新启动。

你期望发生什么?

容器不会总是重启。

我们如何尽可能精确地重现它?

案例1:

  1. 使用k8s版本1.20或最新版本创建一个带有禁用就地更新功能门的pod。
  2. 启用该功能门。
  3. 调整pod大小。
  4. 容器重启。
    案例2:
  5. 创建一个启用了就地更新功能门的pod。
  6. 进行调整大小操作。
  7. 在调整大小成功时关闭功能门。
  8. 更新pod注解或其他可以更新的内容。
  9. 容器重启。

我们需要了解其他信息吗?

这是功能还是bug?

Kubernetes版本

$ kubectl version
# paste output here

主分支

云提供商

OS版本

# On Linux:
$ cat /etc/os-release
# paste output here
$ uname -a
# paste output here

# On Windows:
C:\> wmic os get Caption, Version, BuildNumber, OSArchitecture
# paste output here
mwecs4sa

mwecs4sa2#

在案例2中,行为似乎是正确的,因为当 update pod annotation or what else can update 时,默认行为是重启 pod,只有在调整大小时才能进行就地扩展,而在步骤2中你说调整大小成功。

wnvonmuf

wnvonmuf3#

在案例2中,行为似乎是正确的,因为当 update pod annotation or what else can update 时,默认行为是重启 pod,只有在调整大小时才能进行就地扩展,而在步骤2中您说调整大小成功。
只有更新pod spec才应该触发容器重启。

hlswsv35

hlswsv354#

computePodActions(). <- maybe it's the function that causing this behavior.
do you have any logs?

1szpjjfi

1szpjjfi5#

是的,所有重启都是由computePodAction引起的。我在kep中没有找到相关信息,所以我不知道这是功能还是bug。我希望在这两种情况下容器不重启以保持兼容性。

j91ykkif

j91ykkif7#

需要作为beta KEP PRR的一部分进行处理。

scyqe7ek

scyqe7ek9#

这个问题已经超过一年没有更新了,应该重新进行优先级评估。
你可以:

  • 确认这个问题仍然与 /triage accepted (仅组织成员)相关
  • /close 关闭这个问题

有关优先级评估过程的更多详细信息,请参见 https://www.kubernetes.dev/docs/guide/issue-triage/
已接受移除优先级评估

相关问题