作者:Bill Mulligan,Isovalent
这个用户故事来自出版行业的一家公司
随着今天的技术和新的周期,新闻“新鲜出炉”的含义与仅仅是印刷机的日子完全不同。今天的出版公司需要让他们的技术跟上世界前进的步伐。对于一家出版公司来说,Cilium[1]成为了他们连接世界的解决方案。
为了确保你每天早上、下午和晚上都能收到新闻,发布平台有一个交付工程团队,为产品工程团队提供基础设施。他们没有运行自己的数据中心,而是采用了云优先战略,将所有东西都转移到云上。交付工程团队负责集中式基础设施,每个人都可以在其上部署服务,并且正在为产品工程团队构建这个云平台。通过从基础设施中抽象出业务逻辑,该平台允许团队更快地行动。
以前,许多团队都在构建他们自己的 Kubernetes 集群,这导致了资源的低效使用和巨大的运营开销。交付工程需要为开发人员构建一条“铺设好的道路”,并决定构建大型多租户、多区域 Kubernetes 集群来支持他们的需求。不同的业务单元将能够部署到相同的集群中,平台内部将从团队中抽象出来。
在构建平台时,交付工程团队需要平衡基础设施的标准化和各个团队的需求。不同的团队需要或喜欢不同的工具,但是随着平台的扩展,这些差异会迅速增加操作的复杂性并消耗支持资源。这种分散意味着,平台团队将不得不花费时间调试新问题并寻找解决方案,而不是解决已知的错误和边缘情况,并能够快速隔离问题。
“你现在可以在几秒钟内在任何云中创建一个集群,这很简单。第 2 天的运营、扩展以及保持最新和安全是真正的挑战。”——资深软件工程师
使用 Cilium 创建安全的多租户 Kubernetes 环境
构建多租户平台的两大要求是安全性和性能。租户之间需要有保证的隔离,以确保不同的团队可以安全地在同一个平台上运行。此外,作为一个有突发新闻的组织,他们需要为大规模和高性能做好规划。仅 10 项服务就可以轻松达到每秒 100,000 次请求。
隔离是他们需要网络策略支持的第一项要求。当他们查看其他公司正在采用的产品时,他们发现“Cilium 基本上是所有地方的默认产品。”在性能方面,他们也知道 eBPF 会比 Iptables 更快。
他们首先启动 Kubernetes 集群,用Cilium[2]替换 kubeproxy 并实现网络策略。一旦 Cilium 启动并运行,他们还安装了Hubble[3]进行网络观测。
“Hubble 很有用,因为有时我不知道为什么流量被拒绝,它允许我快速观察网络上发生的事情,并深入到根本原因。我可以从另一个平台获得它,但是将它与 Cilium 集成在一起可以简化设置和使用。”——资深软件工程师
Cilium 已经成为一种解决方案,可以解决从联网到可观测性到安全性的多种问题,他们甚至还没有使用 Cilium 的所有功能。随着平台的不断发展,交付工程团队将能够满足其他团队的需求和功能,而无需集成新工具或实现一次性功能。例如,Cilium 支持不同风格的部署,允许他们根据团队需要在直接路由和覆盖网络之间进行选择。“我们知道 Cilium 可以提供很多支持,并且足够灵活,可以处理我们现在和未来的用例。”
从安全性和合规性的角度来看,他们正在考虑 egress 过滤和Tetragon[4]进行深度防御。这将允许他们了解哪些进程正在做什么,并丢弃可疑的流量。随着他们的平台发展到多个集群,他们也在了解 Cluster Mesh 来实现跨区域和跨云的通信。
“我很高兴使用 Cilium,因为我们有一个很好的解决方案来满足我们当前的需求,并且可以灵活地满足我们未来的需求。Cilium 受到社区、企业和云提供商的支持,是 Kubernetes 网络的首选。”——资深软件工程师
参考资料
[1]
Cilium: https://cilium.io/
[2]
Cilium: https://github.com/cilium/cilium
[3]
Hubble: https://github.com/cilium/hubble
[4]
Tetragon: https://github.com/cilium/tetragon