在Kubernetes(简称K8S)中,Calico作为网络插件提供了容器网络解决方案和网络策略管理。以下是Calico的主要组件:
-
Felix
- Felix是Calico的核心守护进程,在每个节点上运行,负责配置和维护本地网络策略、路由规则以及ARP表项等。
-
Calico CNI插件
- Calico的CNI(Container Network Interface)插件在Pod创建时动态配置网络,包括分配IP地址、设置网络命名空间以及应用网络策略。
-
BIRD/BGP Daemon
- Calico使用BIRD(BIRD Internet Routing Daemon)来实现节点间的BGP(Border Gateway Protocol)路由传播,使得集群内的Pod可以直接通信且流量可以跨主机进行转发。
-
Typha (可选)
- 在大规模集群中,Typha作为一个优化组件引入,它聚合etcd中的事件并以更高效的方式分发给Felix进程,减轻了Felix与etcd之间的通信压力。
-
Etcd
- Etcd是一个分布式键值存储系统,用于存储Calico的网络配置和状态信息,Felix和其他组件通过监听etcd的变化来实时更新网络策略和配置。
-
Calicoctl
- Calicoctl是一款命令行工具,用于管理和配置Calico网络,包括网络策略、工作模式及节点配置等。
-
Calico Policy Controller (或kube-controllers)
- 这个控制器组件监控Kubernetes API Server中的网络策略对象,并将其转化为Calico理解的格式,确保网络策略在集群内得到正确实施。
综上所述,Calico通过这些组件为Kubernetes集群提供了灵活、高性能的三层网络方案和精细化的网络策略控制。
标签:插件,策略,Felix,网络,Calico,组件,K8S,calico From: https://www.cnblogs.com/huangjiabobk/p/18002546