文章插图
透明加密策略实施并不是 Cilium 提供的网络安全的唯一方面 。零信任网络已迅速成为最佳实践 , 透明加密可能是确保所有网络流量都加密的最简单方法 。您可以轻弹开关 , 让 Cilium 创建流量通过的 IPsec 或 WireGuard 连接 。通过 eBPF 的魔力 , 这发生在内核级别 , 因此您的应用程序不需要任何更改即可加密其流量 。
与传统基础架构集成借助 Cilium , 您可以轻松地将容器化客户端和服务与旧式基础架构连接起来 。来自 Kubernetes Pod 的网络流量最终看起来像是从伪随机 IP 地址到在数据中心服务器机架中的虚拟机上运行的传统服务 。您的传统防火墙基础设施非常希望处理静态 IP 地址 , 以便它可以区分朋友和敌人 。Cilium 具有出口网关概念 , 可通过具有固定 IP 地址的特定出口节点路由用于传统服务的流量 。另一方面 , Cilium 还支持边界网关协议 (BGP) , 以便更轻松地将 Kubernetes 服务的路由宣布到集群外部的网络基础设施 。Cilium 在与您的外部服务集成时为您提供来来往往 。
Cluster meshes我们已经讨论过将 Cilium 与外部遗留工作负载集成 , 但是多个 Kubernetes 集群呢?是否需要将从一个群集到另一个群集的连接视为另一个外部服务?您可以将多个支持 Cilium 的 Kubernetes 集群组合在一起 , 并以非常酷的方式利用 Cilium 的身份模型来帮助多集群服务配置 。Cilium 将这种多集群支持称为 ClusterMesh 。
使用 Cilium ClusterMesh , 您可以使用 Kubernetes annotations 指定全局服务 , 并且 Cilium 将对与存在于多个集群中的全局服务关联的服务端点的访问进行负载平衡 - 如果需要 , 可以使用加密流量 。可以将这些全局服务的服务相关性指定为首选在本地发送请求(如果终结点运行正常) , 并在需要时故障转移到其他群集中的远程服务终结点 。
文章插图
简化跨集群故障转移只是一个好处:有各种实际的多集群用例 , 在 Cilium ClusterMesh 中更容易实现 。设置 ClusterMesh 只是让启用 Cilium 的集群相互感知的问题 , 而 cilium cli 工具使这个过程非常简单 。事实上 , 我能够使用 Cilium 项目的快速入门指南 , 在短短几分钟内在 Azure AKS 中启动跨越美国东部和西部区域的全局服务故障转移 Cilium ClusterMesh , 在第一次尝试之前 , 我对 Azure AKS 一无所知 。
网络可观测性到目前为止 , 我一直专注于网络连接和安全性 , 但 Cilium 也可以帮助实现大规模的网络可观测性 。
Kubernetes集群内部的网络可观测性变得非常复杂 。由于 Pod 不断来来去去 , 并且在扩展和缩减时跨不同工作负载重新分配内部 IP 地址 , 因此很难观察数据包流 。尝试按群集内的 IP 地址跟踪数据包是徒劳的 。即使在节点上运行 eBPF 驱动的 tcpdump 也是不够的 , 因为 IP 地址和端口很难与工作负载匹配 , 尤其是当 Kubernetes 本身可能通过快速重新调试 pod 来尝试解决您正在诊断的问题时 。当其中一个微服务或我们的网络策略出现问题时 , 我们如何获得可观测性?
【Cilium:基于eBPF的高效云原生网络和ServiceMesh方案】是时候向您介绍Cilium的超级朋友 Hubble 了 。Hubble 过滤了动态IP寻址的噪声 , 将网络流与其Kubernetes身份呈现在一起 , 因此您可以清楚地看到Pod和服务如何相互通信以及与外部世界进行通信 。Hubble建立在Cilium的基础上 , 创建了一个一流的容器网络可观测性平台 , 不仅能够向你显示网络第3层和第4层的流的详细信息 , 还可以在第7层向你显示协议流的细节 , 如HTTP和gRPC 。
Hubble UI 更进一步 , 提供了服务依赖关系图的图形描述以及网络流详细信息 。
文章插图
Cilium 和 Hubble 共同揭示了各种各样的指标、跟踪和日志 , 这些指标、跟踪和日志对于观察您的网络和诊断问题非常宝贵 。您可以将这些数据提取到Grafana中以便于可视化 , 轻松回答有关您的网络的各种问题 。例如 , 如果您想知道特定服务或所有集群的 4xx HTTP 响应速率 , 或者如果您想知道性能最差的服务之间的请求/响应延迟 , Hubble 指标可以满足您的需求 。
推荐阅读
- 最强API调用模型来了!基于LLaMA微调,性能超过GPT-4
- 基于 ChatGLM-6B 部署本地私有化 ChatGPT
- 字节跳动开源ByConity:基于ClickHouse的存算分离架构云原生数仓
- 几个基于CDC实时同步数据的开源组件,让你的数据同步更实时
- Redis+DB实现基于号段的发号器原理
- 一款基于开源框架实现的脚手架平台,帮助中小企业快速迭代开发
- 了解基于光纤的局域网架构
- 微信基于 PyTorch 的大规模推荐系统训练实践
- 基于SQL的数据可视化和数据挖掘
- 从零开发一套基于React的加载动画库