kubernetes [Sidecar容器]通过最大容器重启次数比较Pods应该考虑sidecar容器

unftdfkk  于 4个月前  发布在  Kubernetes
关注(0)|答案(2)|浏览(41)

发生了什么?

今天,函数 maxContainerRestarts 有几个用途 - 主要是为了比较 pods 以决定哪个更好删除或获取哪些日志。这不是一个巨大的问题,主要是生活质量的改进。
代码只查看容器状态,但可能还需要查看 init 容器状态。特别是在 sidecar 容器的情况下,它们的行为可能与常规容器完全相同。
有两种实现和五个比较接口。
实现:

  • pkg/controller/controller_utils.go
  • staging/src/k8s.io/kubectl/pkg/util/podutils/podutils.go
func maxContainerRestarts(pod *v1.Pod) int {
	maxRestarts := 0
	for _, c := range pod.Status.ContainerStatuses {
		maxRestarts = max(maxRestarts, int(c.RestartCount))
	}
	return maxRestarts
}

我们可能需要小心地包括所有 init 容器状态。如果 Pod 由于 Init 容器失败而长时间无法启动,现在它运行正常,那么很可能不重要。然而,包括可重启的容器(sidecars)的重启次数是很重要的。
我认为期望的行为是首先检查常规容器的最大重启次数。然后进行比较。接着比较可重启的 init 容器的最大重启次数。
/kind bug

你期望发生什么?

比较最大容器重启次数时,应将 init 容器也考虑在内。

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

两个 pods - 一个有不断重启循环的 sidecar 容器,另一个运行正常。随机选择一个 pod 从其获取日志。

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

/sig apps
/priority backlog
KEP: kubernetes/enhancements#753

相关问题