
# Cilium概述
#### 为什么需要Cilium
Cilium是一种高性能、高可靠性的容器网络解决方案，它通过eBPF技术在Linux内核层面实现网络和安全通信。它支持多种传输层协议，例如TCP、UDP和HTTP，并提供了多种安全特性，例如应用层访问控制和服务网格支持。Cilium还支持Kubernetes网络策略，并提供了全局网络和服务发现功能，能够帮助管理员更好地管理和部署云原生应用和服务。
Cilium的eBPF 技术通过在Linux内核层面实时监控网络流量，实现了高效的安全数据包交换。该技术在网络功能虚拟化、容器网络和边缘计算等场景中都有广泛应用，能够帮助企业提升网络性能和安全性，为云原生应用提供更好的基础设施支持。
**基本功能**
- 为容器提供网络互通：Cilium通过为每个容器分配一个独特的IP地址来实现容器间的网络互通，同时支持多种网络协议。
- 具备网络安全检测能力：Cilium支持通过集成第三方的网络安全检测服务，如Snort等，来进行网络流量分析和检测。
- 自动进行容器安全策略管理：Cilium通过基于Kubernetes 的自定义资源定义（CRD）机制，为每个容器自动创建安全策略，保障容器的安全。
- 实现容器级别的负载均衡：Cilium支持实现容器级别的负载均衡，允许通过多种负载均衡算法来分配网络请求流量。
- 提供服务发现功能：Cilium支持借助基于Kubernetes的服务探测机制，自动发现容器内的服务，并将其注册到Kubernetes API中，以便于其他容器访问。
 
#### 约束与限制
本章节仅适用于新安装的本地集群的增量功能，不支持存量本地集群升级该功能。
#### Cilium underlay能力
在本地集群配置文件"cluster-\[集群名称\].yaml"中添加以下配置：
```
CILIUM_NETWORK_MODE: underlay
```
例图：
![](https://support.huaweicloud.com/usermanual-ucs/zh-cn_image_0000001814616681.png "点击放大")
**模式优势：**
- 此模式下，Cilium会将所有未发送到其他容器的数据包委托给Linux内核的路由子系统。这意味着数据包将被路由直接转发，就好像本地进程发出数据包一样，减少了数据包的封装和转换。因此，在大流量场景下，该模式存在一定性能优势。
- 该模式下自动配置ipv4-native-routing-cidr，Cilium会在Linux内核中自动启用IP转发。
**模式依赖：**
在underlay模式下，运行Cilium的主机的网络必须能够使用分配给Pod或其他工作负载的地址转发IP流量，需要关闭节点的源目的地址检查，并且节点安全组按需放通容器网段的端口及协议。
**Cilium对接主机BGP**
使用Cilium BGP Control Plane管理集群网络，具体使用方法请参见[Cilium BGP Control Plane](https://docs.cilium.io/en/v1.14/network/bgp-control-plane/#bgp-control-plane)。
