随着 Kubernetes 进入下一个十年,其网络与安全体系将迎来新挑战,eBPF、Gateway API 和 AI 的发展为其未来注入更多可能性。
阅读原文请转到:https://jimmysong.io/trans/kubernetes-next-decade/
随着 Kubernetes 迈入青春期,让我们思考其网络和安全系统如何进一步发展与适应。
Kubernetes 最近迎来了十周年[1]纪念。作为一名家有三子的父亲,我感觉有责任提醒 Kubernetes 的管理员们:成长中的 Kubernetes 并不总是“乖巧”。
可以预见,Kubernetes[2] 将进入其“叛逆期”。
Kubernetes 未来将经历增长的阵痛(随着新用例迫使它进行调整);它或许会遭遇“身份危机”(到底是平台还是API?);它将寻求更少的监控与更大的自主性(依赖AI工具来减少人类的直接监督)。
借此机会,随着 KubeCon 北美大会即将在盐湖城召开,让我们展望一下云原生网络的发展方向,并探讨一些未来的趋势。
eBPF 将无处不在
作为能够在 Linux 内核(未来也将支持 Windows[3])中运行自定义程序的技术,eBPF[4] 的势头不减。除了网络和安全功能(例如 Cilium[5] 和 Tetragon[6] 项目),还出现了更多的应用场景:
• 测量功耗[7]:使用 eBPF。
• 引入混沌测试[8]来验证系统的弹性:使用 eBPF。
• 加速加密流量[9]:使用 eBPF。
• 在高流量加密数据中检测异常[10]:使用 eBPF。
我们可能会面临一种情况,不选择 eBPF 作为网络编程平台反而成为少数。尽管 eBPF 是一种强大的工具[11],我们不能将所有网络问题都视为“钉子”。
最酷的组合:eBPF 与 OpenTelemetry
在 eBPF 可以访问每一个数据包的能力下,网络可视化是一个非常强大的用例。
OpenTelemetry[12] 作为 CNCF 项目中最活跃的项目之一,提供了标准的可观测框架,通过简单的应用程序仪表来生成和管理遥测数据。
考虑到网络经常被认为是应用性能问题的根源,我们可以期待使用 OpenTelemetry Network[13],直接从 Linux 内核获取低级遥测数据,以提供关于应用健康状况的有价值见解。
展望未来:回顾与反思
在 Kubernetes 迈向十周年之际,我们也开始反思其网络架构的一些设计决策是否依然适用。
例如,Ingress API 是 Kubernetes 早期的一个重要选择,然而其继任者 Gateway API 正在取代它。
服务网格架构也在演变,从传统的 sidecar 架构向 Cilium Service Mesh[14] 和 Istio Ambient 模式的无 sidecar 方式转变。
这似乎是反思的好时机。甚至 Kubernetes 的 SIG-Network 组也在考虑是否要放弃容器网络接口插件模型[15],并可能引入更现代的 Kubernetes 网络接口[16](KNI)。
是时候告别 Ingress
Gateway API[17] 是 Kubernetes 生态系统中最具创新性的项目之一。它不仅解决了 Ingress 的不足,且其开发充满合作与包容精神。
随着近三十个 Gateway API 的实现和即将推出的 1.2 版本,在今年的 KubeCon 上,Gateway API 的讨论将深入到实际的部署经验,而非入门课程。
Ingress 曾经广泛使用,但现在是时候迈向 Gateway API 了。
AI 在 Kubernetes 网络中的应用
在讨论 AI 与网络[18]时,我总是将其分为“面向 AI 工作负载的网络”和“用 AI 改善网络”。后者是当下的重点。
我曾经尝试使用大型语言模型(LLM)来创建网络策略和分析日志,然而效果不一。我们期待 Kubernetes 能借助 AI 技术做出更智能的网络决策,例如自动生成网络策略。
面向 AI 的 Kubernetes 网络
随着 Kubernetes 成为 AI/ML 应用的理想平台,AI 工作负载对网络的需求也愈加显著。它不仅需要本地 GPU,还需要通过远程直接内存访问(RDMA)连接远程 GPU。
或许 Kubernetes 近期的动态资源分配(DRA[19])功能可以用来访问专门的网络硬件资源。
结语
是的,Kubernetes 将经历类似青少年的成长过程。但没关系,它有一个支持性强、不断创新的社区来帮助其发展成为一个稳定的系统。
引用链接
[1]
十周年: https://kubernetes.io/blog/2024/06/06/10-years-of-kubernetes/[2]
Kubernetes: https://roadmap.sh/kubernetes[3]
Windows: https://thenewstack.io/ebpf-is-coming-for-windows/[4]
eBPF: https://ebpf.io/[5]
Cilium: https://cilium.io/[6]
Tetragon: https://tetragon.io/[7]
功耗: https://sched.co/1iW8V[8]
混沌测试: https://youtu.be/_5Zabryx0nE?si=KhGFMmeay9LtoJ_-[9]
加密流量: https://sched.co/1i7lP[10]
检测异常: https://sched.co/1i7ms[11]
eBPF 是一种强大的工具: https://thenewstack.io/ebpf-security-power-and-shortfalls/[12]
OpenTelemetry: https://www.cncf.io/reports/opentelemetry-project-journey-report/[13]
OpenTelemetry Network: https://sched.co/1how7[14]
Cilium Service Mesh: https://isovalent.com/blog/post/cilium-service-mesh/[15]
容器网络接口插件模型: https://kubernetes.io/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/[16]
Kubernetes 网络接口: https://github.com/kubernetes/enhancements/issues/4410[17]
Gateway API: https://gateway-api.sigs.k8s.io/[18]
AI 与网络: https://www.youtube.com/watch?v=mUbeiDF2B4k[19]
DRA: https://kubernetes.io/docs/concepts/scheduling-eviction/dynamic-resource-allocation/
获取更多云原生社区资讯,加入微信群,请加入云原生社区,点击阅读原文了解更多。