Calico介绍

        Calico 是一个基于 BGP 的纯三层的网络方案,与 OpenStack 、Kubernetes 、AWS 、GCE
等云平台都能够良好地集成 。 Calico 在每个计算节点都利用 Linux Kernel 实现了一个高效的 vRouter 来负责数据转发 。每个 vRouter 都通过 BGP 协议把在本节点上运行的容器的路由信息向整个 Calico 网络广播,并自动设置到达其他节点的路由转发规则 。 Calico 保证所有容器之间的数据流量都是通过 IP 路由的方式完成互联互通的 。 Calico 节点组网时可以直接利用数据中心的网络结构 (L2 或者 L3) ,不需要额外的 NAT 、隧道或者 Overlay Network, 没有额外的封包解包,能够节约 CPU 运算,提高网络效率。

        Calico 在小规模集群中可以直接互联,在大规模集群中可以通过额外的 BGP route reflector 来完成,如下图所示。

         此外, Calico 基于 iptables 还提供了丰富的网络策略,实现了 Kubemetes 的 Network
Policy 策略,提供容器间网络可达性限制的功能 。

        Calico 的主要组件如下 。
        © Felix: Calico Agent, 运行在每个 Node 上,负责为容器设置网络资源 (IP 地址、路由规则 、 iptables 规则等),保证跨主机容器网络互通 。
        © etcd: Calico 使用的后端存储 。
        © BGP Client: 负责把 Felix 在各 Node 上设置的路由信息通过 BGP 广播到 Calico 网络 。
        © Route Reflector: 通过一个或者多个 BGP Route Reflector 完成大规模集群的分级路由分发。
        © CalicoCtl: Calico 命令行管理工具 。 

        calico-node 应用的主要参数如下 。
        © DATASTORE_TYPE:数据后端存储,默认为 "kubernetes" ,也可以使用 “etcd” 。
        © CALICO_IPV4POOL_CIDR: Calico IPAM 的 IP 地址池,Pod 的 IP 地址将从该池中进行分配 。
        © CALICO_IPV4POOL_IPIP: 是否启用 IPIP 模式 。启用 IPIP 模式时, Calico 将在 Node 上创建一个名为 tunl0 的虚拟隧道 。
        © IP _AUTODETECTION_METHOD: 获取 Node IP 地址的方式 ,默认使用第 1 个网络接口的 IP 地址 ,对于安装了多块网卡的 Node, 建议使用正则表达式选择正确的网卡,例如 "interface=ens.*" 表示选择名称以 ens 开头的网卡的 IP 地址 。
        © FELIX_IPV6SUPPORT: 是否启用 IPv6 。
        © FELIX_LOGSEVERITYSCREEN: 日志级别 。

        其中, IP Pool 可以使用两种模式 BGP 或 IPIP 。 使用 IPIP 模式时,设置CALICO_IPV4POOL_IPIP="always" ; 不使用 IPIP 模式时, 设置 CALICO_IPV4POOL_IPIP=
"off" ,此时将使用 BGP 模式 。
        IPIP 是一种将各 Node 的路由之间做一个 tunnel, 再把两个网络连接起来的模式,如下图所示。 启用 IPIP 模式时 , Calico 将在各 Node 上创建一个名为 tunl0 的虚拟网络接口 。

         BGP 模式则直接使用物理机作为虚拟路由器 (vRouter) ,不再创建额外的 tunnel 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.kubernetes 初探 简要介绍K8s平台、主要功能和社区开发情况,并通过分析企业云平台需求总结企业在应用和搭建K8s平台时需要解决的各种问题,从而引出系列课程。 2.上手Kubernetes:基本概念、安装和命令行工具kubctl 介绍K8s在不同场景下的安装方式。并通过命令行工具kubectl的介绍和Demo帮助听众了解Kubernetes的主要功能和基本使用场景 3.Kubernetes的资源调度 介绍K8s中调度器模块的基本实现,包括调度场景和功能等,从而帮助用户理解如何配置K8s资源以实现自定义的资源分配。 4.Kubernetes的运行时:Kubelet 本讲将从K8s运行时组件Kubelet出发,介绍Kubernetes运行时的基本功能和架构。并通过介绍目前流行的各种容器引擎与Kubernetes的集成帮助开发者和拥护了解K8s CRI项目。 5.Kubernetes网络管理 本讲介绍了目前K8s平台的主要网络解决方案,包括Kube-Proxy、CNI等模块,并介绍Kubernetes与目前流行的Calico平台的集成从而实现网络隔离 6.Kubernetes的存储管理 本讲介绍了K8s持久化存储平台的基本概念、使用场景、设计架构和目前社区开发状态。并通过对PV Controller等关键存储模块的剖析展示了K8s持久化存储平台的实现细节。 7.Kubernetes日志与监控 介绍ELK日志分析平台及其与K8s/ICp的集成,从而能够在K8s平台上实现日志分析 8.Kubernetes的应用部署 介绍K8s Helm/Charts平台以及如何使用Helm命令部署K8s应用,并通过ICp作为实例介绍K8s上应用仓库的搭建 9.扩展Kubernetes生态:Service Catalog的概念与应用 本讲从Service Catalog的角度介绍了K8s平台如何与企业传统IT服务相集成,并详细介绍了Service Catalog项目的设计与实现 10.Kubernetes的企业实践 本讲在前九讲的基础上总结了目前企业应用Kubernetes所存在的各种问题,介绍了IBM基于Kubernetes搭建的下一代私有云平台ICp

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值