Calico相关知识

Calico相关知识

1、基本概念

  • Calico 是纯三层的 SDN 实现,它基于 BPG 协议和 Linux 自己的路由转发机制,不依赖特殊硬件,没有使用 NAT 或 Tunnel 等技术。能够方便的部署在物理服务器, 虚拟机(如 OpenStack)或者容器环境下。同时它自带的基于 Iptables 的 ACL 管理组件非常灵活,能够满足比较复杂的安全隔离需求。

  • 除了为 OpenStack VMs 提供网络之外,Calico 还为 Docker 环境的容器提供网络。每个容器有自己的 IP 和细粒度的安全策略。此外,Calico 可以在没有封装的情况下也可以部署,支持 IPv4 和 IPv6。
    在这里插入图片描述

2、优势:

  • calico的好处是endpoints(接入到calico网络中的网卡称为endpoint)组成的网络是单纯的三层网络,报文的流向完全通过路由规则控制,没有overlay等额外开销。

  • calico是一个比较有趣的虚拟网络解决方案,完全利用路由规则实现动态组网,通过BGP协议通告路由。

  • endpoint可以漂移,并且实现了acl。

3、缺点:

  • 路由的数目与容器数目相同,非常容易超过路由器、三层交换、甚至node的处理能力,从而限制了整个网络的扩张。

  • 每个node上会设置大量(海量)的iptables规则、路由,运维、排障难度大。

  • 原理决定了它不可能支持VPC,容器只能从calico设置的网段中获取ip。

  • 目前的实现没有流量控制的功能,会出现少数容器抢占node多数带宽的情况。

  • 网络规模受到BGP网络规模的限制。

4、最为核心组件Felix

  • 负责设置路由表和 ACL 规则等,以便为该主机上的 endpoints 资源正常运行提供所需
    的网络连接。同时它还负责提供有关网络健康状况的数据(例如,报告配置其主机时发生的错误和问题),这些数据会被写入 etcd,以使其对网络中的其他组件和操作人员可见。

    所以:Prometheus-Operator监控Calico的核心就是监控Felix

5、Prometheus 采集 Felix 指标

  • Prometheus-Operator 在部署时会创建 Prometheus、PodMonitor、ServiceMonitor、AlertManager 和 PrometheusRule 这 5 个 CRD 资源对象,然后会一直监控并维持这 5 个资源对象的状态。

  • -Prometheus 这个资源对象就是对 Prometheus Server 的抽象。

  • -PodMonitor 和 ServiceMonitor 就是 exporter 的各种抽象,是用来提供专门提供指标数据接口的工具。

  • -Prometheus 就是通过 PodMonitor 和 ServiceMonitor 提供的指标数据接口去 pull 数据的。

    • -ServiceMonitor 要求被监控的服务必须有对应的 Service
    • -PodMonitor 虽然不需要应用创建相应的 Service,但必须在 Pod 中指定指标的端口和名称,因此需要先修改 DaemonSet calico-node 的配置,指定端口和名称
      • -PodMonitor 的 name 最终会反应到 Prometheus 的配置中,作为 job_name。
      • -podMetricsEndpoints.port 需要和被监控的 Pod 中的 ports.name 相同。
      • -namespaceSelector.matchNames 需要和被监控的 Pod 所在的 namespace 相同。
      • -selector.matchLabels 的标签必须和被监控的 Pod 中能唯一标明身份的标签对应

6、可视化监控指标

  • 采集完指标之后,就可以通过 Grafana 的仪表盘来展示监控指标

  • Grafana 相关知识
    -请点击-

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值