本文发表于一年多前。旧文章可能包含过时内容。请检查页面中的信息自发布以来是否已变得不正确。

Kubernetes 1.29:PodReadyToStartContainers 状况进入 Beta 阶段

随着 Kubernetes 1.29 的发布,PodReadyToStartContainers 状况(condition)默认可用。Kubelet 在 Pod 的整个生命周期中管理该状况的值,该值位于 Pod 的 status 字段中。Kubelet 将使用 PodReadyToStartContainers 状况来准确地从 Pod 沙箱创建和容器运行时网络配置的角度反映 Pod 的初始化状态。

此功能背后的动机是什么?

集群管理员过去没有清晰且易于访问的方式来查看 Pod 的沙箱创建和初始化是否完成。截至 1.28 版本,Pod 中的 Initialized 状况用于跟踪 init 容器的执行情况。然而,它在准确反映集群中所有 Pod 的沙箱创建完成和容器启动就绪情况方面存在局限性。这种区分在多租户集群中尤其重要,因为租户拥有 Pod 的规约,包括 init 容器的集合,而集群管理员则管理存储插件、网络插件和容器运行时处理程序。因此,需要一种改进的机制,为集群管理员提供关于 Pod 沙箱创建完成和容器就绪情况的清晰全面的视图。

这样做有什么好处?

  1. 提高可见性:集群管理员可以更清晰、更全面地了解 Pod 沙箱创建完成和容器就绪情况。这种增强的可见性使他们能够做出更明智的决策,并更有效地排查问题。
  2. 指标收集与监控:监控服务可以利用与 PodReadyToStartContainers 状况相关的字段来报告沙箱创建状态和延迟。可以按 Pod 基数收集指标,也可以根据 Pod 的各种属性(例如 volumesruntimeClassName、用于 CNI 和 IPAM 插件的自定义注解或任意标签和注解,以及 PersistentVolumeClaim 的 storageClassName)进行聚合。这使得能够在整个集群中对 Pod 就绪情况进行全面的监控和分析。
  3. 增强的故障排查:通过更准确地表示 Pod 沙箱创建和容器就绪情况,集群管理员可以快速识别和解决初始化过程中可能出现的任何问题。这有助于提高故障排查能力并减少停机时间。

下一步是什么?

基于收到的反馈和广泛采用,Kubernetes 团队在 1.29 版本中将 PodReadyToStartContainersCondition 提升为 Beta 阶段。你的意见将有助于决定此状况是否能继续推进并最终成为正式发布(GA)的功能,因此请就此功能提交更多反馈!

我如何了解更多信息?

请查阅 PodReadyToStartContainersCondition文档,以了解更多关于它的信息以及它与其他 Pod 状况的关系。

如何参与?

此功能由 SIG Node 社区推动。欢迎加入我们,与社区建立联系,分享你对上述功能及其他方面的想法和反馈。我们期待你的回音!