首页 > 其他分享 >k8s---Calico网络

k8s---Calico网络

时间:2023-04-12 15:12:09浏览次数:57  
标签:BGP 主机 Felix 节点 --- k8s Calico 路由

什么是calico?

Calico 是一种开源网络和网络安全解决方案,适用于容器、虚拟机和基于主机的本机工作负载。Calico支持广泛的平台,包括Kubernetes,OpenShift,Mirantis Kubernetes Engine(MKE),OpenStack和裸机服务。无论您选择使用 Calico 的 eBPF 数据平面还是 Linux 的标准网络管道,Calico 都能提供超快的性能和真正的云原生可扩展性。Calico为开发人员和集群运营商提供了一致的体验和功能集,无论是在公共云还是本地运行,在单个节点上运行,还是在数千个节点的集群上运行。

官网:https://docs.tigera.io/calico/latest/about

calico组件

  1. Felix:calico的核心组件,运行在每个节点上。主要的功能有接口管理、路由规则、ACL规则和状态报告
  1. 接口管理:Felix为内核编写一些接口信息,以便让内核能正确的处理主机endpoint的流量。特别是主机之间的ARP请求和处理ip转发。
  2. 路由规则:Felix负责主机之间路由信息写到linux内核的FIB(Forwarding Information Base)转发信息库,保证数据包可以在主机之间相互转发。
  3. ACL规则:Felix负责将ACL策略写入到linux内核中,保证主机endpoint的为有效流量不能绕过calico的安全措施。
  4. 状态报告:Felix负责提供关于网络健康状况的数据。特别是,它报告配置主机时出现的错误和问题。这些数据被写入etcd,使其对网络的其他组件和操作人员可见。
  1. Etcd:保证数据一致性的数据库,存储集群中节点的所有路由信息。为保证数据的可靠和容错建议至少三个以上etcd节点。可与kuenetes共用。
  2. Orchestrator plugin:协调器插件负责允许kubernetes或OpenStack等原生云平台方便管理Calico,可以通过各自的API来配置Calico网络实现无缝集成。如kubernetes的cni网络插件。
  3. Bird:BGP客户端,Calico在每个节点上的都会部署一个BGP客户端,它的作用是将Felix的路由信息读入内核,并通过BGP协议在集群中分发。当Felix将路由插入到Linux内核FIB中时,BGP客户端将获取这些路由并将它们分发到部署中的其他节点。这可以确保在部署时有效地路由流量。
  4. BGP Router Reflector:大型网络仅仅使用 BGP client 形成 mesh 全网互联的方案就会导致规模限制,所有节点需要 N^2 个连接,为了解决这个规模问题,可以采用 BGP 的 Router Reflector 的方法,使所有 BGP Client 仅与特定 RR 节点互联并做路由同步,从而大大减少连接数。

标签:BGP,主机,Felix,节点,---,k8s,Calico,路由
From: https://www.cnblogs.com/du-z/p/17309862.html

相关文章

  • 【manim动画教程】--常用动画效果
    manim的主要功能就是制作动画,因此它提供了各类丰富的动画效果,本篇主要介绍其中最常用的几种动画效果。至于特殊的动画效果,以及自定义动画效果的方法以后再另外介绍。1.创建效果展示某个元素或者文字时,一下子就全显示出来会显得比较突兀,通过创建效果的动画,让各个元素的出现更......
  • 新员工入职,前端基础环境变量的配置!node、nvm、vue-cli的安装和下载
    1.安装nvm及配置首先下载nvm不要下载node,如果电脑已经有node的话需要卸载node,并使用命令提示符来查看node的位置(wherenode)手动删除nvm下载链接:https://nvm.uihtm.com/下载最新版本,next傻瓜式操作(需要注意的是)选择node.js文件位置,如果需要更改,请在这里进行更改......
  • 21-springcloud-feign-3-使用Feign实现消费者
    使用Feign实现消费者,我们通过下面步骤进行: 第一步:创建普通SpringBoot工程把接口放在通用的接口层、常量类、model的项目中第二步:添加依赖要添加的依赖主要是spring-cloud-starter-netflix-eureka-client和spring-cloud-starter-feign,如下:<!--spring-cloud......
  • 基于chunjun纯钧的增量数据同步问题排查【博客园-实习小生】
    基于chunjun纯钧的增量数据同步目前我司的大数据平台使用的是flink技术栈,底层的连接器插件使用的是国产的chunjun插件,在使用chunjun的过程中也遇到了很多问题,本次记录下在SQL模式的情况下怎么支持增量的数据同步chunjun的官网文档对增量同步已经做出了一定的说明纯钧官方根......
  • 22-springcloud-feign-4-使用Feign实现消费者的测试
    负载均衡:我们知道,SpringCloud提供了Ribbon来实现负载均衡,使用Ribbo直接注入一个RestTemplate对象即可,RestTemplate已经做好了负载均衡的配置;在SpringCloud下,使用Feign也是直接可以实现负载均衡的,定义一个有@FeignClient注解的接口,然后使用@RequestMapping注解......
  • Linux系列---【验证端口网络策略是否通的几种方式】
    验证端口网络策略是否通的几种方式前提:先使用ping命令保证IP是通的,再去验证端口。方式一(telnetip端口)telnet172.17.4.128080方式二(curlip:端口)curl172.17.4.12:8080#验证通:curl:(52)Emptyreplyfromserver不通:curl:(7)Failedtoconnectto172.17.4.1......
  • Look-up table使用
    今天做光伏系统仿真的时候想使用looktable模块导入辐射数据,于是有以下随笔。使用命令Ir=xlsread('gaoyuhour.xlsx');创建LookupTable变量mylookuptable=Simulink.LookupTable;   可以看到LookupTable变量有很多属性,这里我们主要用到Breakpoints和Table属性,Breakpo......
  • 渗透测试-命令注入
    背景:有些场景支持直接传参给系统命令并调用的情况;如输入一个ip执行ping命令看是否能ping同;这种场景如果没有对参数进行校验直接传参就会存在命令注入的情况;首先需要连接下通过命令连接符号连接的命令执行策略:commandA;commandB//commandA无论正确与否都会执行commandB......
  • 【工具类】-Map
    MapentrySet遍历,在键和值都需要时使用(最常用)Map<Integer,Integer>map=newHashMap<Integer,Integer>();map.put(1,2);for(Map.Entry<Integer,Integer>entry:map.entrySet()){System.out.println("key="......
  • 每日总结-23.4.12
    <%@pageimport="zhengcechaxun.Pd_zhengce"%><%@pageimport="zhengcechaxun.Thesql"%><%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%>&......