Cilium系列-1-Cilium特色 功能及适用场景

这篇具有很好参考价值的文章主要介绍了Cilium系列-1-Cilium特色 功能及适用场景。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

系列文章

  • Cilium 系列文章

Cilium 简介

Cilium 是一个开源的云原生解决方案,用于提供、保护(安全功能)和观察(监控功能)工作负载之间的网络连接,由革命性的内核技术 eBPF 提供动力。Cilium 主要使用场景是在 Kubernetes中,但 Cilium 的优势并不仅限于 Kubernetes 环境。

在 Kubernetes 环境中,Cilium 可充当网络插件,提供 pod 之间的连接。它通过执行网络策略(network policy)和透明加密来提供安全性,而 Cilium 的 Hubble 组件则提供了网络流量流的深度可见性(监控功能)。

得益于 eBPF,Cilium 的网络、安全和可观察性逻辑可以直接编程到内核中,从而使 Cilium 和 Hubble 的功能对应用工作负载完全透明。这些将是 Kubernetes 集群中的容器化工作负载,不过 Cilium 也能连接虚拟机和标准 Linux 进程等传统工作负载。

关于 Cilium 可观察性, 典型的案例是: pod 中的应用无需启用 Tracing 功能, 也无需通过 exporter 将 http requests metrics 发给 Prometheus, 仅通过 Cilium 的 Hubble 功能, 就能直接获取到该应用的 http requests 的 RED(Requests, Errors, Durations).

Cilium 适用场景 - 解决大规模容器联网的挑战

在高度动态复杂的微服务世界中,主要从 IP 地址和端口的角度考虑网络问题可能会导致挫败感。使用传统的网络工具(通过五元组)实施可能会非常低效,只能提供粗粒度的可见性和过滤,从而限制了排除故障和保护容器网络安全的能力。这些都是 Cilium 要解决的难题。

从一开始,Cilium 就是为大规模、高动态的容器化环境而设计的。它能原生理解容器和 Kubernetes 身份,并解析 HTTP、gRPC 和 Kafka 等 API 协议,提供比传统防火墙更简单、更强大的可视性和安全性。

所以, Cilium 的功能要点集中在以下 3 点:

  • 高性能
  • 安全
  • 可观察性

Cilium - 基于 eBPF 构建

eBPF 使 Cilium 强大的安全可视性和控制逻辑能够动态插入 Linux 内核。eBPF 使 Linux 内核可编程,因此 Cilium 等应用可以 hook Linux 内核子系统,将用户空间应用上下文引入内核操作。

📝Notes:

也因此, 要使用完整的 Cilium 功能, 需要非常新版本的 Linux 内核. 目前官方推荐的 Linux Kernel 是 ≥ 5.10.

由于 eBPF 在 Linux 内核中运行,因此 Cilium 安全策略的应用和更新无需更改应用程序代码或容器配置。eBPF 程序与 Linux 网络数据路径挂钩,可用于在数据包进入网络套接字时,根据网络策略规则采取丢弃数据包等操作。

Cilium系列-1-Cilium特色 功能及适用场景

eBPF 能够以前所未有的粒度和效率实现对系统和应用程序的可见性和控制。它以完全透明的方式实现了这一点,而无需以任何方式更改应用程序。Cilium 利用 eBPF 的强大功能,将高效身份识别概念分层;将 Kubernetes 上下文信息(如元数据标签)引入 eBPF 驱动的网络逻辑。

接下来就让我们来谈谈 Cilium 能做些什么。

Cilium 功能

网络功能

Cilium 提供网络连接,允许 pod 和其他组件(Kubernetes 集群内部或外部)进行通信。Cilium 实现了一个简单的扁平 3 层网络,能够跨越多个集群连接所有应用容器(ClusterMesh 功能)。

默认情况下,Cilium 支持 overlay 网络模型,其中一个虚拟网络跨越所有主机。Overlay 网络中的流量经过封装,可在不同主机之间传输。之所以选择这种模式作为默认模式,是因为它对基础设施和集成的要求最低,只需要主机之间的 IP 连接。

Cilium 还提供本地路由(native routing)网络模式选项,使用每台主机上的常规路由表将流量路由到 pod(或外部)IP 地址。这种模式适用于高级用户,需要对底层网络基础设施有一定的了解。它与本地 IPv6 网络、云网络路由器或预先存在的路由守护程序配合使用效果很好。

身份感知网络策略执行

网络策略定义允许哪些工作负载相互通信,通过防止意外流量来确保部署安全。Cilium 可同时执行本地 Kubernetes NetworkPolicies 和增强型 CiliumNetworkPolicy 资源(CRD)类型。

传统防火墙通过过滤 IP 地址和目标端口来保护工作负载。在 Kubernetes 环境中,每当集群中的 pod 启动时,都需要对所有节点主机上的防火墙(或 iptables 规则)进行操作,以便重建与所需网络策略执行相对应的防火墙规则。这并不能很好地扩展。

为了避免这种情况,Cilium 根据 Kubernetes 标签等相关元数据为应用容器组分配一个身份(identity)。然后将该身份与应用容器发出的所有网络数据包关联起来,使 eBPF 程序能够在接收节点有效验证身份,而无需使用任何 Linux 防火墙规则。例如,当扩展部署并在集群中创建新 pod 时,新 pod 与现有 pod 共享相同的身份。与网络策略执行相对应的 eBPF 程序规则无需再次更新,因为它们已经知道 pod 的身份!

传统防火墙在第 3 层和第 4 层运行,而 Cilium 还能确保 REST/HTTP、gRPC 和 Kafka 等现代第 7 层应用协议的安全(除了在第 3 层和第 4 层执行外)。它能根据应用协议请求条件执行网络策略,例如

  • 允许方法为 GET、路径为 /public/.* 的所有 HTTP 请求。拒绝所有其他请求。
  • 要求所有 REST 调用都包含 HTTP 标头 X-Token:[0-9]+

透明加密

现在,服务之间的数据加密已成为 PCI 或 HIPAA 等许多监管框架的要求。Cilium 支持使用 IPSec 或 WireGuard 进行简单配置的透明加密,启用后无需重新配置任何工作负载即可确保节点之间流量的安全。

多集群网络

Cilium 的 Cluster Mesh 功能可让工作负载轻松与不同 Kubernetes 集群中托管的服务进行通信。您可以在不同区域的群集中运行服务,并使用 Cilium Cluster Mesh 将它们连接起来,从而实现服务的高可用性。

负载均衡

Cilium 为应用程序容器和外部服务之间的流量实现分布式负载平衡。事实上,Cilium 可以完全替代 kube-proxy 等组件,也可以用作独立的负载均衡器。eBPF 使用高效的哈希表实现负载平衡,几乎可以无限扩展。

增强的网络可观察性

虽然我们对 tcpdump 和 ping 等工具情有独钟,它们在我们心中永远占据着特殊的位置,但它们无法胜任在动态 Kubernetes 集群环境中排除网络问题的任务。Cilium 致力于提供可观察性工具,让您能够快速识别和修复集群网络问题。

为此,Cilium 推出了名为 Hubble 的专用网络可观察性组件。Hubble 利用 Cilium 的身份概念,以可操作的方式轻松过滤流量,并提供以下功能:

  • 第 3/4 层(IP 地址和端口)和第 7 层(API 协议)的网络流量可见性
  • 带元数据的事件监控: 当数据包被丢弃时,该工具不仅会报告数据包的源 IP 和目标 IP,还会提供发送方和接收方的完整标签信息以及大量其他信息
  • 可配置的 Prometheus 指标导出
  • 可视化集群网络流量的图形用户界面

具体效果如下:

Cilium系列-1-Cilium特色 功能及适用场景

Prometheus 指标

如前文提到的那样, Cilium 和 Hubble 通过 Prometheus 输出有关网络性能和延迟的指标,因此您可以将 Cilium 指标集成到现有的 Grafana 仪表板中。

📝Notes:

最新消息, Cilium 和 Grafana 合作有初步成果了 —— Grafana Hubble 数据源.
具体可以阅读这篇文章: Monitor Kubernetes network and security events with Hubble and Grafana

Cilium系列-1-Cilium特色 功能及适用场景

Service Mesh

如上所述,Cilium 支持服务间的负载平衡、应用层可见性和各种与安全相关的功能,所有这些都是 Kubernetes 服务网格的功能。Cilium 还支持 Kubernetes 的 Ingress 和 Gateway API,可提供全套服务网格功能,但不需要在每个 pod 中注入 sidecar 的开销

总结

Cilium 是一个开源的云原生解决方案,用于提供、保护(安全功能)和观察(监控功能)工作负载之间的网络连接,由革命性的内核技术 eBPF 提供动力。Cilium 主要使用场景是在 Kubernetes中.

Cilium 最主要的特点是:

  • 高性能
  • 安全功能
  • 可观察性

Cilium 除了作为 Kubernetes CNI 之外, 还有很多其他功能, 包括不限于:

  • 多集群网络
  • 负载均衡(完全替代 kube-proxy)
  • Service Mesh

让我们继续前进! 💪

📚️参考文档

  • Introduction to Cilium & Hubble — Cilium 1.13.4 documentation

三人行, 必有我师; 知识共享, 天下为公. 本文由东风微鸣技术博客 EWhisper.cn 编写.文章来源地址https://www.toymoban.com/news/detail-586770.html

到了这里,关于Cilium系列-1-Cilium特色 功能及适用场景的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Cilium 系列-2-Cilium 快速安装

    Cilium 系列文章 在本章中,我们将直接将 Cilium 安装到 Kubernetes 集群中。 在实验中,我们用到的组件及版本为: Cilium 1.13.4 K3s v1.26.6+k3s1 OS Debian 10, Kernel 4.19.232, arm64 Ubuntu 23.04, Kernel 6.2, x86 📝 Notes : 如前文所述,Cilium 对 Linux Kernel 版本要求很高。1.13.4 推荐 Kernel ≥ 5.10(使用最

    2024年02月16日
    浏览(36)
  • 大数据法律监督模型优势特色及应用场景

    大数据法律监督平台是基于监督数据整合管理平台、监督模型构建平台、内置模型库以及法律监督线索管理平台打造的一套服务于检察机关法律监督工作的专业化系统。通过数据采集、融合、挖掘、建模、展现等一系列能力,辅助检察官从纷繁复杂的数据中,开展多维度分析

    2024年02月14日
    浏览(33)
  • Cilium系列-5-Cilium替换KubeProxy

    Cilium 系列文章 将 Kubernetes 的 CNI 从其他组件切换为 Cilium, 已经可以有效地提升网络的性能. 但是通过对 Cilium 不同模式的切换/功能的启用, 可以进一步提升 Cilium 的网络性能. 具体调优项包括不限于: 启用本地路由(Native Routing) 完全替换 KubeProxy IP 地址伪装(Masquerading)切换为基于

    2024年02月16日
    浏览(38)
  • Cilium系列-14-Cilium NetworkPolicy 简介

    Cilium 系列文章 今天我们进入 Cilium 安全相关主题, 介绍 Kubernetes 网络策略以及 CiliumNetworkPolicies 额外支持的内容。 默认情况下,Kubernetes 集群中的所有 pod 都可被其他 pod 和网络端点访问。 网络策略允许用户定义 Kubernetes 集群允许哪些流量, 禁止哪些流量。传统的防火墙是根据

    2024年02月14日
    浏览(34)
  • Cilium 系列-3-Cilium 的基本组件和重要概念

    Cilium 系列文章 安装完了,我们看看 Cilium 有哪些组件和重要概念。 如上所述,安装 Cilium 时,会安装几个运行组件(有些是可选组件), 它们各是什么用途? Cilium Operator 可以理解为 Cilium 的管理平面或操作运维平面。Cilium Operator 不处于任何转发或网络策略决策的关键路径上

    2024年02月16日
    浏览(38)
  • Cilium 系列-7-Cilium 的 NodePort 实现从 SNAT 改为 DSR

    Cilium 系列文章 将 Kubernetes 的 CNI 从其他组件切换为 Cilium, 已经可以有效地提升网络的性能。但是通过对 Cilium 不同模式的切换/功能的启用,可以进一步提升 Cilium 的网络性能。具体调优项包括不限于: 启用本地路由 (Native Routing) 完全替换 KubeProxy IP 地址伪装 (Masquerading) 切换为

    2024年02月15日
    浏览(35)
  • Cilium系列-16-CiliumNetworkPolicy 实战演练

    Cilium 系列文章 今天我们进入 Cilium 安全相关主题, 基于 Cilium 官方的《星球大战》 Demo 做详细的 CiliumNetworkPolicy 实战演练。 您是帝国(Empire)的平台工程团队的一员,负责开发死星(Death Star) API 并将其部署到帝国银河 Kubernetes 服务 (Imperial Galactic Kubernetes Service, IGKS)。你已经部署了

    2024年02月14日
    浏览(28)
  • Cilium系列-11-启用带宽管理器

    Cilium 系列文章 将 Kubernetes 的 CNI 从其他组件切换为 Cilium, 已经可以有效地提升网络的性能. 但是通过对 Cilium 不同模式的切换/功能的启用, 可以进一步提升 Cilium 的网络性能. 具体调优项包括不限于: 启用本地路由(Native Routing) 完全替换 KubeProxy IP 地址伪装(Masquerading)切换为基于

    2024年02月14日
    浏览(30)
  • 金融级低代码的三种应用场景和六个特色能力建设

    低代码平台在企业数字化转型中发挥着重要的作用,助力降低成本、提升效率。尤其对于金融行业而言,其规模庞大、复杂多变,各级分行、业务线以及科技部门都有使用低代码平台来增强效能的需求。 对于领导层 而言,要实现数字化转型在一线分支机构的全面推进,不能

    2024年01月18日
    浏览(37)
  • Cilium系列-8-绕过 IPTables 连接跟踪

    Cilium 系列文章 将 Kubernetes 的 CNI 从其他组件切换为 Cilium, 已经可以有效地提升网络的性能. 但是通过对 Cilium 不同模式的切换/功能的启用, 可以进一步提升 Cilium 的网络性能. 具体调优项包括不限于: 启用本地路由(Native Routing) 完全替换 KubeProxy IP 地址伪装(Masquerading)切换为基于

    2024年02月15日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包