目前的实现中,Cilium的ipvlan模式还有很多限制需要在接下来的工作中解决:目前还无法启用NAT64以及通过代理启用L7策略强制。当前未启用到本地endpoint的服务负载平衡以及容器到主机的本地通信。如果需要使用这些功能,仅以使用基于veth的数据路径模式。
Cilium的CNI ipvlan模式运行在Cilium daemon中,例如--datapath-mode=ipvlan --ipvlan-master-device=bond0,后者通常指定了物理网络设备,同时也作为ipvlan的master设备。注意在ipvlan 数据路径模式在kubernetes中部署在L3S模式下。确保有一个稳定运行内核,包括以下ipvlan修复:d5256083f62e。
更多BPF的特性参见 ,可以在 章节了解如何扩展L7策略。
BPF 映射的限制所有创建的BPF映射都有上限限制。超出限制的插入将会失败,从而限制了数据路径的可伸缩性。下表展示了映射的默认值。每个限制都可以在源代码中进行修改,如果需要,可以根据请求添加配置选项。
Map Name Scope Default Limit Scale ImplicationsConnection Tracking node or endpoint 1M TCP/256K UDP Max 1M concurrent TCP connections, max 256K expected UDP answers
Endpoints node 64k Max 64k local endpoints + host IPs per node
IP cache node 512K Max 256K endpoints (IPv4+IPv6), max 512k endpoints (IPv4 or IPv6) across all clusters
Load Balancer node 64k Max 64k cumulative backends across all services across all clusters
Policy endpoint 16k Max 16k allowed identity + port + protocol pairs for specific endpoint
Proxy Map node 512k Max 512k concurrent redirected TCP connections to proxy
Tunnel node 64k Max 32k nodes (IPv4+IPv6) or 64k nodes (IPv4 or IPv6) across all clusters
kubernetes集成
下图显示了kube-proxy安装的iptables规则和Cilium安装的iptables规则的集成。