一、什么是cilium
cilium是一个具备API感知的网络和安全的开源软件,用于透明保护使用Docker和Kubernetes等Linux容器管理平台部署的应用程序服务之间的网络连接。Cilium的基础是一种称为BPF的新Linux内核技术,该技术可在Linux自身内部动态插入强大的安全可见性和控制逻辑。由于BPF在Linux内核中运行,因此可以应用和更新Cilium安全策略,而无需更改应用程序代码或容器配置。
二、cilium安装
1、安装环境
场景:kubernetes + cilium(pod+managed etcd)
节点名 | 功能 | k8s版本 | 操作系统 | IP地址 | master集群IP+port |
k8s-m1 | master | v1.16.3 | centos 7.6 | 192.168.1.21 | 192.168.1.20:6444 |
k8s-n1 | node | v1.16.3 | centos 7.6 | 192.168.1.31 |
k8s master虽只有1台,但还是使用集群(keepalive+haproxy)方式安装。
注:centos内核版本为3.10.0,需升级内核>=4.8.0。cilium pod会报错:
level=fatal msg="kernel version: NOT OK: minimal supported kernel version is >= 4.8.0; kernel version that is running is: 3.10.0" subsys=daemon
2、cilium yaml制作
下载cilium(cilium版本v1.6.4),并制作yaml
wget https://github.com/cilium/cilium/archive/1.6.4.tar.gz
tar xzvf 1.6.4.tar.gz
cd cilium-1.6.4/install/kubernetes
helm template cilium --namespace kube-system --set global.etcd.enabled=true --set global.etcd.managed=true > cilium.yaml
3、cilium pod安装
kubectl apply -f cilium.yaml
本例中podsubnet网段为10.200.0.0/16
安装成功如下:
安装有ciliumXXX(daemonset)、cilium-operatorXXX、cilium-etcd-XXX(3个pod组成集群)、etcd-operatorXXX、cilium-etcd-operatorXXX。
4、验证安装
cilium agent验证
cilium etcd集群验证
cilium etcd pod中执行