k8s series初级calico
爱吃红薯粉 人气:0calico简介
calico是什么?
Calico 是一个开源网络和网络安全解决方案,适用于容器、虚拟机和基于主机的本地工作负载。Calico支持广泛的平台,包括 Kubernetes、OpenShift。
无论使用Calico的eBPF数据平面还是 Linux 的标准网络管道,Calico都能提供极快的性能和真正的云原生可扩展性
Calico支持公有云和本地运行,支持在单个节点或数千个节点集群中运行
calico优点
- 支持linux eBPF数据通道,标准的linux网络数据通道,还支持windows HNS数据通道
- 丰富的网络策略,内置对wireguard加密支持,保护pod-pod数据安全
- Calico使Linux eBPF或Linux内核高度优化的标准网络管道来提供高性能网络
- Calico的控制平面和策略引擎做了很好的调整,使占用和使用cpu率最小化
- 支持超级可扩展性,满足几十节点,到十千个节点的伸缩
- 支持L2,L3层网络
- 不对数据进行解包压包,不需要nat和端口映射,性能强悍
calico安装
将calico安装在kubenetes集群中有很多种方式,这里选择一种比较方便的yaml文件方式
#3.20版本只支持1.19 1.20 1.21 #版本之间可能不兼容,具体细节需要查看官网说明 wget https://docs.projectcalico.org/v3.20/manifests/calico.yaml kubectl apply -f calico.yaml #查看已部署的caclico,默认情况是一个calico控制器和N个calico node kubectl get pods -A -o wide| grep calico
默认安装的calico,管理的节点不超过50个,且数据存储交由kubenetes api负责,数据真实还是存在etcd中
calico组件
- Felix: agent进程,以DaemonSet方式安装在每个节点,负责网络接口管理,路由,ARP,ACL的管理,状态上报,同步等
- calico-controller: calico控制器,监听和变更来源于kubernetes的资源
- calicoctl:calico的cli工具,方便对calico排错
- typha: 大于50个节点,使用typha代替apiServer来和ectd交互
- bird: 从Felix获取路由并分发到网络上的 BGP对等点,以进行主机间路由。在托管 Felix 代理的每个节点上运行,是路由的守护进程
- confd: 监视Calico的存储,以便查看BGP配置和全局缺省值进行更新。
- Datastore plugin: 通过减少每个节点对数据存储的影响来增加规模,是Calico CNI插件之一
- IPAM plugin: 使用 Calico的IP池资源来控制如何将 IP 地址分配给集群中的豆荚。 Calico 默认CNI插件
- etcd: 分布式键值存府,主要负责网络无数据一致性,确保calico网络状态的准确性,默认情况共用k8s集群的etcd
加载全部内容