介绍了该项目的启动 Cilium 1.4,其中包括Google,Facebook,Netflix和Red Hat的参与,它正在发展 一个保证网络交互并将安全策略应用于隔离的容器和进程的系统。
为了区分Cilium中的网络访问, 使用了eBPF (伯克利包过滤器) 和XDP (eXpress数据路径)。 用户级组件的代码是用Go编写的,并根据Apache 2.0许可进行分发。
加载到Linux内核中的BPF脚本在GPLv2许可下可用。
关于西里尔
Cilium的基础是在用户空间中工作的后台进程,并负责生成和编译BPF程序。,以及与容器提供的运行时进行交互。
以GMP程序的形式, 实施系统以确保容器的连通性,与网络子系统(物理和虚拟网络,VXLAN,Geneve)的集成以及负载平衡。
后台进程是 辅以管理界面,访问规则存储库, 一个监视系统和集成模块,并支持Kubernetes,Mesos,Istio和Docker。
由于规则的高搜索开销,具有大量服务和连接的基于Cilium的解决方案的性能是基于iptables的解决方案的两倍。
主要创新
柠檬 您可以在多个Kubernetes集群之间路由和转发服务流量。
还提出了全球服务的概念(具有多集群后端的Kubernetes全服务服务的一种变体)。
还 具有工具来设置处理DNS请求和响应以及容器组的规则 (吊舱),从而使您可以更好地控制容器的外部资源使用情况。
另外, 支持记录所有DNS请求和响应以及Pod。 除了IP地址级别的访问规则外,现在 您可以确定哪些DNS查询和DNS响应有效,哪些应该被阻止。
例如,您可以阻止对特定域的访问,或者仅允许对本地域的请求,而无需跟踪域与IP绑定中的更改。
这包括在DNS请求过程中使用返回的IP地址来限制后续网络操作的能力(例如,您只能允许访问在DNS解析期间返回的IP地址)。
Cilium 1.4版的主要新功能
在新版本中 添加了实验性支持,以透明加密服务之间的所有流量。 加密可用于不同群集之间以及同一群集内的流量。
它也已被添加 对节点进行身份验证的能力,允许将群集放置在不受信任的网络上。
在确保集群中服务运行的后端故障的情况下,新功能允许将流量自动重定向到另一个集群中该服务的处理器。
添加 对IPVLAN网络接口的实验性支持,可以提高性能,并减少两个本地容器之间的交互延迟;
添加了用于Flannel集成的模块, 一个用于自动配置Kubernetes集群中节点之间的网络交互的配置的系统,使您可以并行工作或在Flannel之上运行Cilium(Flannel网络交互,Cilium平衡和访问策略)。
提供了实验性帮助以基于AWS元数据定义访问规则 (Amazon Web Services),例如EC2标签,安全组和VPC名称。
还提出了使用COS(容器优化的操作系统)在GKE(Google Cloud上的Google Kubernetes引擎)上启动Cilium的机会;
这提供了一个使用Sockmap BPF来加速本地进程之间的通信的测试机会(例如,对于加速Sidecar代理与本地进程之间的交互很有用)。