【容器云架构】Calico 组件架构

Calico 组件


下图显示了 Kubernetes 的必需和可选 Calico 组件,具有网络和网络策略的本地部署。

2ede18efff975f019de48e2aea82990d.png

Calico 组件

  • Calico API server

  • Felix

  • BIRD

  • confd

  • Dikastes

  • CNI plugin

  • Datastore plugin

  • IPAM plugin

  • kube-controllers

  • Typha

  • calicoctl

云编排器的插件

  • Plugins for cloud orchestrators

Calico API 服务器


主要任务:让您直接使用 kubectl 管理 Calico 资源。

菲利克斯(Felix)


主要任务:对路由和 ACL 以及主机上所需的任何其他内容进行编程,以便为该主机上的端点提供所需的连接。在托管端点的每台机器上运行。作为代理守护程序运行。费利克斯资源。

根据具体的编排器环境,Felix 负责:

接口管理

将有关接口的信息编程到内核中,以便内核可以正确处理来自该端点的流量。特别是,它确保主机使用主机的 MAC 响应来自每个工作负载的 ARP 请求,并为其管理的接口启用 IP 转发。它还监视接口以确保在适当的时间应用编程。

Route programming (路由编程)

将路由到其主机上的端点的程序路由到 Linux 内核 FIB(转发信息库)中。这确保了以到达主机的那些端点为目的地的数据包被相应地转发。

ACL 编程

将 ACL 编程到 Linux 内核中,以确保只能在端点之间发送有效流量,并且端点不能绕过 Calico 安全措施。

状态报告

提供网络健康数据。特别是,它会在配置其主机时报告错误和问题。此数据被写入数据存储,因此对网络的其他组件和操作员可见。

注意:calico/node 可以在仅策略模式下运行,其中 Felix 在没有 BIRD 和 confd 的情况下运行。这提供了无需在主机之间分配路由的策略管理,并用于托管云提供商等部署。您可以通过在启动节点之前设置环境变量 CALICO_NETWORKING_BACKEND=none 来启用此模式。

BIRD


主要任务:从 Felix 获取路由并分发给网络上的 BGP 对等体,用于主机间路由。在托管 Felix 代理的每个节点上运行。开源的互联网路由守护进程。鸟。

BGP客户端负责:

路线分发

当 Felix 将路由插入 Linux 内核 FIB 时,BGP 客户端会将它们分发到部署中的其他节点。这确保了部署的有效流量路由。

BGP 路由反射器配置

BGP 路由反射器通常用于大型部署而不是标准 BGP 客户端。BGP 路由反射器充当连接 BGP 客户端的中心点。 (标准 BGP 要求每个 BGP 客户端都连接到网状拓扑中的每个其他 BGP 客户端,这很难维护。)

为了冗余,您可以无缝部署多个 BGP 路由反射器。BGP 路由反射器仅参与网络控制:没有端点数据通过它们。当 Calico BGP 客户端将其 FIB 中的路由通告给路由反射器时,路由反射器会将这些路由通告给部署中的其他节点。

confd


主要任务:监控 Calico 数据存储以了解 BGP 配置和全局默认值(例如 AS 编号、日志记录级别和 IPAM 信息)的更改。开源、轻量级的配置管理工具。

Confd 根据数据存储中数据的更新动态生成 BIRD 配置文件。当配置文件发生变化时,confd 会触发 BIRD 加载新文件。配置confd和confd项目。

Dikastes


主要任务:为 Istio 服务网格实施网络策略。作为 Istio Envoy 的 sidecar 代理在集群上运行。

(可选)Calico 在 Linux 内核(使用 iptables,L3-L4)和 L3-L7 使用名为 Dikastes 的 Envoy sidecar 代理对工作负载实施网络策略,并对请求进行加密身份验证。使用多个实施点基于多个标准建立远程端点的身份。即使工作负载 pod 受到威胁,并且 Envoy 代理被绕过,主机 Linux 内核实施也会保护您的工作负载。Dikastes 和 Istio 文档。

CNI 插件


主要任务:为 Kubernetes 集群提供 Calico 网络。

将此 API 提供给 Kubernetes 的 Calico 二进制文件称为 CNI 插件,必须安装在 Kubernetes 集群中的每个节点上。Calico CNI 插件允许您将 Calico 网络用于任何使用 CNI 网络规范的编排器。通过标准的 CNI 配置机制和 Calico CNI 插件进行配置。

数据存储插件(Datastore plugin)


主要任务:通过减少每个节点对数据存储的影响来扩大规模。它是 Calico CNI 插件之一。

Kubernetes API 数据存储 (kdd)

将 Kubernetes API 数据存储 (kdd) 与 Calico 一起使用的优点是:

  • 管理更简单,因为它不需要额外的数据存储

  • 使用 Kubernetes RBAC 控制对 Calico 资源的访问

  • 使用 Kubernetes 审计日志生成 Calico 资源更改的审计日志

etcd

etcd 是一个一致的、高可用性的分布式键值存储,它为 Calico 网络提供数据存储,并用于组件之间的通信。支持 etcd 仅保护非集群主机(从 Calico v3.1 开始)。为了完整起见,etcd 的优点是:

  • 让您在非 Kubernetes 平台上运行 Calico

  • 分离 Kubernetes 和 Calico 资源之间的关注点,例如允许您独立扩展数据存储

  • 让您运行包含多个 Kubernetes 集群的 Calico 集群,例如,具有 Calico 主机保护的裸机服务器与 Kubernetes 集群互通;或多个 Kubernetes 集群。

etcd 管理员指南

IPAM 插件


主要任务:使用 Calico 的 IP 池资源来控制 IP 地址如何分配给集群内的 Pod。它是大多数 Calico 安装使用的默认插件。它是 Calico CNI 插件之一。

kube-控制器(kube-controllers)


主要任务:监控 Kubernetes API 并根据集群状态执行操作。kube 控制器。

tigera/kube-controllers 容器包括以下控制器:

  • 策略控制器

  • 命名空间控制器

  • 服务帐户控制器

  • 工作负载端点控制器

  • 节点控制器

香蒲(Typha)


主要任务:通过减少每个节点对数据存储的影响来扩大规模。在数据存储和 Felix 实例之间作为守护进程运行。默认安装,但未配置。Typha 描述和 Typha 组件。

Typha 代表其所有客户端(如 Felix 和 confd)维护单个数据存储连接。它缓存数据存储状态并删除重复事件,以便可以将它们分散到许多侦听器。因为一个 Typha 实例可以支持数百个 Felix 实例,它大大减少了数据存储的负载。并且由于 Typha 可以过滤掉与 Felix 无关的更新,因此也降低了 Felix 的 CPU 使用率。在大规模(超过 100 个节点)Kubernetes 集群中,这是必不可少的,因为 API 服务器生成的更新数量会随着节点数量的增加而增加。

花椰菜(calicoctl)


主要任务:创建、读取、更新和删除 Calico 对象的命令行界面。calicoctl 命令行可在任何可以通过网络访问 Calico 数据存储(作为二进制文件或容器)的主机上使用。需要单独安装。花椰菜

云编排器的插件


主要任务:将用于管理网络的协调器 API 转换为 Calico 数据模型和数据存储。

对于云提供商,Calico 为每个主要的云编排平台都有一个单独的插件。这允许 Calico 与编排器紧密绑定,因此用户可以使用他们的编排工具管理 Calico 网络。需要时,编排器插件会从 Calico 网络向编排器提供反馈。例如,提供有关 Felix 活跃度的信息,并在网络设置失败时将特定端点标记为失败。

本文 :https://architect.pub/calico-component-architecture
讨论:知识星球【首席架构师圈】或者加微信小号【ca_cto】或者加QQ群【792862318】
公众号

【jiagoushipro】
【超级架构师】
精彩图文详解架构方法论,架构实践,技术原理,技术趋势。
我们在等你,赶快扫描关注吧。
05c8ec9db053b0dd108c5c1fdc9bffb8.jpeg
微信小号

【ca_cea】
50000人社区,讨论:企业架构,云计算,大数据,数据科学,物联网,人工智能,安全,全栈开发,DevOps,数字化.

5bab4320b92e4cf7607f9320e7e207a1.jpeg

QQ群

【285069459】深度交流企业架构,业务架构,应用架构,数据架构,技术架构,集成架构,安全架构。以及大数据,云计算,物联网,人工智能等各种新兴技术。
加QQ群,有珍贵的报告和干货资料分享。

f8c967ba6445ca7cd6dadb89ec806490.jpeg

视频号 【超级架构师】
1分钟快速了解架构相关的基本概念,模型,方法,经验。
每天1分钟,架构心中熟。

28074b2ca4f3a1364c22ed7f63d930a1.jpeg

知识星球 【首席架构师圈】向大咖提问,近距离接触,或者获得私密资料分享。

cf0eadba1d5eae3dbc91bfa8743268f6.jpeg

喜马拉雅 【超级架构师】路上或者车上了解最新黑科技资讯,架构心得。 【智能时刻,架构君和你聊黑科技】
知识星球 认识更多朋友,职场和技术闲聊。 知识星球【职场和技术】
领英 Harry https://www.linkedin.com/in/architect-harry/
领英群组 领英架构群组
https://www.linkedin.com/groups/14209750/
微博‍‍ 【超级架构师】 智能时刻‍
哔哩哔哩 【超级架构师】

85a8363946c8e58f3ee39dd9e7dfc577.jpeg

抖音 【cea_cio】超级架构师

d7ae6bff4f6c0de7705e62443fff735a.jpeg

快手 【cea_cio_cto】超级架构师

2f59e1f54241d4443e2e6df55bd8b120.jpeg

小红书 【cea_csa_cto】超级架构师

f5628f5e6d86ffd82c8f5bf862a4c7af.jpeg

网站 CIO(首席信息官) https://cio.ceo
网站 CIO,CTO和CDO https://cioctocdo.com
网站 架构师实战分享 https://architect.pub   
网站 程序员云开发分享 https://pgmr.cloud
网站 首席架构师社区 https://jiagoushi.pro
网站 应用开发和开发平台 https://apaas.dev
网站 开发信息网 https://xinxi.dev
网站 超级架构师 https://jiagou.dev
网站 企业技术培训 https://peixun.dev
网站 程序员宝典 https://pgmr.pub    
网站 开发者闲谈 https://blog.developer.chat
网站 CPO宝典 https://cpo.work
网站 首席安全官 https://cso.pub    ‍
网站 CIO酷 https://cio.cool
网站 CDO信息 https://cdo.fyi
网站 CXO信息 https://cxo.pub

谢谢大家关注,转发,点赞和点在看。

猜你喜欢

转载自blog.csdn.net/jiagoushipro/article/details/131079107
今日推荐