Calico 组件

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

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://jiagoushi.pro/calico-component-architecture
讨论:知识星球【首席架构师圈】或者加微信小号【cea_csa_cto】或者加QQ群【792862318】
公众号 【jiagoushipro】
【超级架构师】
精彩图文详解架构方法论,架构实践,技术原理,技术趋势。
我们在等你,赶快扫描关注吧。
微信小号 【cea_csa_cto】
50000人社区,讨论:企业架构,云计算,大数据,数据科学,物联网,人工智能,安全,全栈开发,DevOps,数字化.

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

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

知识星球 向大咖提问,近距离接触,或者获得私密资料分享。

喜马拉雅 路上或者车上了解最新黑科技资讯,架构心得。 【智能时刻,架构君和你聊黑科技】
知识星球 认识更多朋友,职场和技术闲聊。 知识星球【职场和技术】
微博 【智能时刻】 智能时刻
哔哩哔哩 【超级架构师】

抖音 【cea_cio】超级架构师

快手 【cea_cio_cto】超级架构师

小红书 【cea_csa_cto】超级架构师

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

【容器云】Calico 组件架构相关推荐

  1. 大数据、分布式、中台、云原生数据库架构设计与实践 | DAMS 2020

    5年前,大数据浪潮的来袭唤起了国内企业对数据作为核心资产的新认知,为了推动国内数据管理加速发展,DAMS中国数据智能管理峰会携手产学研各界权威力量开启了对企业数字化转型的探索与助力. 5年后,我们看到 ...

  2. 云计算架构师分享:容器云在金融企业的落地方案 | 周末送资料(原题:某保险公司容器云PaaS平台建设实践经验分享)

    [摘要]随着技术和社区的成熟,容器.Kubernetes.微服务等新事物不再只是概念,已在很多企业落地并发挥了生产力,对容器和PaaS的需求也从试探性转向规模化推广和纵深探索,建设企业级容器PaaS平 ...

  3. 【云原生|K8s系列第1篇】:K8s的基础概念、组件架构及实战安装

    云原生|K8s系列第1篇目录 1.先从K8s不是什么讲起 2.K8s是什么及核心基础概念 2.1 Container容器 2.2 Pod 2.3 Node 2.4 Label 2.5 Annotati ...

  4. 云科技网络验证源码_面向虚拟化架构和容器云的开源安全工具

    随着云和虚拟技术发展,docker容器的使用越来越流行和方便.有很多企业已经把基础架构由传统实体机转移到了虚拟机化架构,基于公有云.私有云以及容器云构建在线服务.与容器相关的安全性对变得越来越重要.与 ...

  5. 基于Docker的CaaS容器云平台架构设计及市场分析

    基于Docker的CaaS容器云平台架构设计及市场分析 1 项目背景-概述: "在移动互联网时代,企业需要寻找新的软件交付流程和IT架构,从而实现架构平台化,交付持续化,业务服务化. 容器将 ...

  6. 阿里云边缘容器服务、申通 IoT 云边端架构入选 2021 云边协同发展阶段性领先成果

    2021 年 6 月 4 日,由中国信息通信研究院(以下简称"中国信通院")主办的 " 2021 云边协同大会 " 在北京举行.本次会议以 " 开启分 ...

  7. 容器技术之快速了解K8S各抽象资源及组件架构

    带你快速了解Kubernetes主要概念和组件架构. Kubernetes的组件和架构比较多,功能也比较多. 如果详细探讨,每个Kubernetes组件都可以单独写篇博客详细讲解. 我们这里是快速了解 ...

  8. Docker架构部署及镜像制作,免费容器云体验

    前面的文章,我已经介绍了很多关于云原生.容器技术的相关知识和市场趋势等内容.说到云原生,就有那么些关键词:Kubernetes.Docker.Istio.IDE等等. 今天这篇文章,就想来聊聊Dock ...

  9. 容器云平台规划部署架构设计

    [导读]对于容器平台的建设,从初期就需要做好平台的整体规划,切莫为了容器化而容器化,要因地制宜,寻找平衡点逐渐落地,混合实施,了解开发运维等多方面的需求.平台相关技术的原理机制,团结开发.运维.用户等 ...

最新文章

  1. python idle怎么用_python的idle如何使用
  2. python图形化界面开发工具_图形用户界面(GUI)常见问题
  3. nginx无法加载css
  4. colinux php,利用colinux 搭建linux开发环境
  5. jqgrid多选和禁止某行记录选择
  6. Android中Activity启动模式详解
  7. 【李宏毅机器学习】Classification_1 分类(p10) 学习笔记
  8. Oracle parameter中常用参数收集:
  9. IREC-GAN:在线推荐中基于模型的对抗训练强化学习
  10. 印度:10美元电脑与全民免费上网
  11. 是什么让spring 5放弃了使用Guava Cache?
  12. CVPR2013感兴趣的文章整理
  13. js弹出框 确定 取消
  14. PHP处理微信昵称特殊符号过滤方法
  15. Linux-逻辑卷LVM
  16. 中考计算机试题ppt判断,2015中考信息技术试题PPT操作题2-26(终)
  17. 百慕大区块链战略不仅仅为了赢得新公司的青睐
  18. JVC摄像机mp4视频丢失恢复方法
  19. C++中的预处理器概述
  20. .net mvc 网站 css 和 js 文件加载不出来的问题

热门文章

  1. 技能兴鲁试题--爬取菜鸟教程
  2. RNN-循环神经网络-吴恩达读书笔记
  3. 鸿蒙手机Beta版本官宣!我们带着成果和Code来了!!
  4. Spring AOP源码分析二
  5. ShaderJoy —— 仿抖音的十字星光效果 【GLSL】
  6. 02 锁版本--通用模块--knife4j--profiles
  7. --i和i--的区别
  8. 好诗分享_《我想和你一起生活 》
  9. 【安全牛学习笔记】FUZZING
  10. “核高基”重大专项取得阶段性成果