k8s网络之cilium网络
Cilium是一种开源网络实现方案,与其他网络方案不同的是,Cilium着重强调了其在网络安全上的优势,可以透明的对Kubernetes等容器管理平台上的应用程序服务之间的网络连接进行安全防护。
Cilium在设计和实现上,基于Linux的一种新的内核技术eBPF,可以在Linux内部动态插入强大的安全性、可见性和网络控制逻辑,相应的安全策略可以在不修改应用程序代码或容器配置的情况下进行应用和更新。
Cilium在其官网上对产品的定位称为“API-aware Networking and Security”,因此可以看出,其特性主要包括这三方面:
提供Kubernetes中基本的网络互连互通的能力,实现容器集群中包括Pod、Service等在内的基础网络连通功能;
依托eBPF,实现Kubernetes中网络的可观察性以及基本的网络隔离、故障排查等安全策略;
依托eBPF,突破传统主机防火墙仅支持L3、L4微隔离的限制,支持基于API的网络安全过滤能力。Cilium提供了一种简单而有效的方法来定义和执行基于容器/Pod身份(Identity Based)的网络层和应用层(比如HTTP/gRPC/Kafka等)安全策略。
官网地址:
https://cilium.io/
https://docs.cilium.io/en/v1.10/
https://mp.weixin.qq.com/s/NrlxI5uMqQQ3sDrrPSKhZA
简单介绍一下安装:
参考官网用helm安装
helm repo add cilium https://helm.cilium.io/
结合直接实际情况修改
我这边默认用的就是10.0.0.0/8 的网段,所以不需要修改
helm install cilium cilium/cilium --namespace kube-system --set hubble.relay.enabled=true --set hubble.ui.enabled=true
我们使用Cilium,一个很大的原因,为了流量的可观察性,所以我们部署Hubble。
Hubble是一个用于Cloud Native工作负载的完全分布式的网络和安全性可观察性平台,它基于Cilium和eBPF构建,以完全透明的方式实现对服务以及网络基础架构的通信和行为的深入可见性。
https://github.com/cilium/hubble
配置外部NG ,实现访问SVC
最终的效果图
参考文章:
https://www.jianshu.com/p/40dcebe7ca3c
https://mp.weixin.qq.com/s/NrlxI5uMqQQ3sDrrPSKhZA
https://davidlovezoe.club/wordpress/archives/851
https://www.cnblogs.com/charlieroro/p/12728891.html