SIG Apps 聚焦
在我们持续进行的 SIG 焦点系列中,我们通过与 Kubernetes 项目中各个特别兴趣小组(SIG)的领导者对话,深入探讨项目的核心。这次,我们聚焦于 SIG Apps,该小组负责与在 Kubernetes 上开发、部署和运行应用相关的所有事宜。Sandipan Panda (DevZero) 有机会采访了 SIG Apps 的主席和技术负责人 Maciej Szulik (Defense Unicorns) 和 Janet Kuo (Google)。他们分享了他们在 Kubernetes 生态系统中应用管理的经验、挑战和对未来的展望。
引言
Sandipan:大家好,能否先介绍一下您自己、您的角色,以及您在 Kubernetes 社区中的历程,是什么让您现在担任 SIG Apps 的这些职务?
Maciej:大家好,我叫 Maciej,是 SIG Apps 的负责人之一。除了这个角色,我还帮助 SIG CLI,同时也是指导委员会成员之一。我从 2014 年末开始为 Kubernetes 做出贡献,涉及控制器、apiserver 和 kubectl 等多个领域。
Janet:当然!我是 Janet,是 Google 的一名资深软件工程师。从 Kubernetes 项目早期,甚至在 2015 年 1.0 版本发布之前,我就深度参与其中了。这是一个令人惊叹的旅程!
我目前在 Kubernetes 社区中的角色是 SIG Apps 的主席和技术负责人之一。我与 SIG Apps 的渊源是自然形成的。我最初的工作是构建 Deployment API 并添加滚动更新功能。我自然而然地被 SIG Apps 吸引,并日益深入参与。随着时间的推移,我承担了更多职责,最终担任了目前的领导职务。
关于 SIG Apps
以下所有回答均由 Maciej 和 Janet 共同提供。
Sandipan:对于不熟悉 SIG Apps 的人,能否请您概述一下 SIG Apps 的使命和目标?它旨在解决 Kubernetes 生态系统中的哪些关键问题?
正如我们的 章程 中所述,我们涵盖了与在 Kubernetes 上开发、部署和运行应用相关的广泛领域。简而言之,这意味着我们欢迎任何人参加我们的双周例会,讨论在 Kubernetes 上编写和部署各种应用的起伏得失。
Sandipan:SIG Apps 目前正在进行哪些最重大的项目或倡议?
当前,推动我们控制器发展的主要因素是运行各种与 AI 相关的工作负载带来的挑战。值得称赞的是我们在过去几年里赞助的两个工作组:
- Batch 工作组,该组研究如何在 Kubernetes 上运行 HPC、AI/ML 和数据分析作业。
- Serving 工作组,该组专注于硬件加速的 AI/ML 推理。
最佳实践和挑战
Sandipan:SIG Apps 在为 Kubernetes 开发应用管理最佳实践方面发挥着至关重要的作用。您能否分享一些这些最佳实践,以及它们如何帮助改善应用生命周期管理?
实现 健康检查和就绪探针 可以确保您的应用健康并准备好服务流量,从而提高可靠性和正常运行时间。上述实践与全面的日志记录、监控和追踪解决方案相结合,将提供对您的应用行为的深入洞察,使您能够快速识别和解决问题。
基于资源利用率或自定义指标 自动伸缩您的应用,优化资源使用,并确保您的应用能够处理不同的负载。
无状态应用使用 Deployment,有状态应用使用 StatefulSet,批量工作负载使用 Job 和 CronJob,在每个节点上运行守护进程使用 DaemonSet。使用 Operator 和 CRD 扩展 Kubernetes API,以自动化复杂应用的部署、管理和生命周期,使其更容易操作并减少手动干预。
Sandipan:SIG Apps 面临哪些常见的挑战,以及你们如何应对这些挑战?
我们一直面临的最大挑战是需要拒绝许多特性、想法和改进。这需要极大的纪律和耐心来解释这些决定背后的原因。
Sandipan:Kubernetes 的演进如何影响了 SIG Apps 的工作?您认为 Kubernetes 中最近的哪些变化或即将推出的功能对 SIG Apps 特别相关或有益?
对我们以及 SIG Apps 周围整个社区来说,主要的益处是能够使用 Custom Resource Definitions 扩展 Kubernetes,以及用户可以利用内置控制器构建自己的自定义控制器,以实现任何复杂的使用场景,而这些场景可能是我们作为核心维护者尚未考虑或无法在 Kubernetes 内部高效解决的。
贡献给 SIG Apps
Sandipan:对于希望参与 SIG Apps 的新贡献者,有哪些机会?您会给他们什么建议?
我们经常收到“您建议我们从哪个好的入门级问题开始?”这样的问题 :-) 但遗憾的是,这个问题没有简单的答案。我们总是告诉大家,开始为核心控制器做贡献的最佳选择是找到一个您愿意花时间去研究的控制器。通读代码,然后尝试运行针对该控制器的单元测试和集成测试。一旦您掌握了大致思路,再尝试破坏它和测试,以验证您的破坏行为。一旦您对理解该特定控制器感到自信,您可以去搜索影响该控制器的未解决问题,并提供建议,解释用户遇到的问题,或者尝试您的第一次修复。
正如我们所说,这条路上没有捷径;您需要花时间研究代码库,以理解我们为了达到现在这个水平而逐步建立起来的所有边缘情况。一旦您成功处理了一个控制器,您就需要对其他控制器重复同样的过程。
Sandipan:SIG Apps 如何从社区收集反馈,以及这些反馈如何融入到你们的工作中?
我们始终鼓励大家参加我们的双周 会议,展示他们遇到的问题和解决方案。只要您正在解决基于 Kubernetes 的有趣问题,并且能够提供关于任何核心控制器的宝贵反馈,我们都非常乐意听取大家的意见。
展望未来
Sandipan:展望未来,SIG Apps 对 Kubernetes 中应用管理的哪些关键重点领域或即将到来的趋势感到兴奋?SIG 如何适应这些趋势?
当前的 AI 热潮无疑是主要的驱动因素;如上所述,我们有两个工作组,每个工作组都涵盖了 AI 的不同方面。
Sandipan:您最喜欢 SIG Apps 的哪些方面?
毫无疑问,是那些参与我们会议和 Slack 的人们,他们不知疲倦地帮助分流问题、处理拉取请求,并投入大量时间(很多时候是私人时间)来让 Kubernetes 变得更好!
SIG Apps 是 Kubernetes 社区的重要组成部分,它帮助塑造了如何大规模部署和管理应用的方式。从改进 Kubernetes 工作负载 API 的工作到推动 AI/ML 应用管理的创新,SIG Apps 正在不断适应现代应用开发者和运维人员的需求。无论您是新的贡献者还是经验丰富的开发者,总有机会参与进来并产生影响。
如果您有兴趣了解更多或为 SIG Apps 做出贡献,请务必查看他们的 SIG README 并参加他们的双周 会议。