kubernetes 网络组件cilium

1 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等)安全策略。

 

Linux内核版本
默认情况下我们可以参考cilium官方给出的一个系统要求总结。因为我们是在k8s集群中部署(使用容器),因此只需要关注Linux内核版本和etcd版本即可。根据前面部署的经验我们可以知道1.23.6版本的k8s默认使用的etcd版本是3.5.+,因此重点就来到了Linux内核版本这里。

 

 

 

 cilium安装

helm添加源

helm repo add cilium https://helm.cilium.io/

 

安装 cilium 

helm install  cilium cilium/cilium  \
    --namespace kube-system   \
    --set hubble.relay.enabled=true   \
    --set hubble.ui.enabled=true \
    --set ipam.operator.clusterPoolIPv4PodCIDR=10.244.0.0/16
    

Hubble是一个用于Cloud Native工作负载的完全分布式的网络和安全性可观察性平台,它基于Cilium和eBPF构建,以完全透明的方式实现对服务以及网络基础架构的通信和行为的深入可见性。

 

 

或者直接下载chart包安装

首先下载chart包,这里我们下载1.11.2版本

wget --no-check-certificate https://helm.cilium.io/cilium-1.11.2.tgz

进行安装:

$ helm install cilium ./cilium-1.11.2.tgz -n kube-system --set tunnel=disabled,ipam.operator.clusterPoolIPv4PodCIDR=172.26.0.0/16, \
ipv4NativeRoutingCIDR=172.26.0.0/16,autoDirectNodeRoutes=true,kubeProxyReplacement=strict,k8sServiceHost=192.168.92.108,k8sServicePort=6443

 

由于该chart包中,默认使用vxlan,我们需要更改为直接路由。上面的参数中

tunnel=disabled:表示不使用隧道,可以取vxlan、geneve或disabled
autoDirectNodeRoutes=true:表示由cilium在主机上生成Pod的路由规则
kubeProxyReplacement=strict:表示强制替代kube-proxy,可取值disabled,partitial等
k8sServiceHost/k8sServicePort:当要替代kube-proxy时,这两个参数必须填写,否则cilium会默认使用10.96.0.1去连接apiserver,导致连不上(因为10.96.0.1的转发此时是由cilium来实现)
如果想安装hubble,则可以设置参数hubble.relay.enabled=true,hubble.ui.enabled=true

 

参考: https://www.kancloud.cn/pshizhsysu/kubernetes/2697592
            https://www.cnblogs.com/centos-python/articles/14889650.html

 

posted @ 2022-08-18 15:28  fengjian1585  阅读(538)  评论(0编辑  收藏  举报