CNCF开源项目概述

CNCF开源项目概述目录 CNCF 简介 KubernetesEn 需求背景 EnvoyProxy 简介 CoreDNS 简介架构原理 TUF 简介 Jaeger 简介架构 Vitess 简介 etcd 简介应用场景 NATS 简介使用场景 CloudEventsP 简介监控的目标与常见监控系统比较常用的监控系统的不足 Prometheus 的优势 gRPCgRPC 简介什么是 RPC 特性基于 HTTP 2IDL 使用 ProtoBuf 多语言支持 C C Pytho

如果我们可以将这部分功能抽取出来,形成一个独立的进程,这样的进程称为Sidecar。通常来说,我们会将应用程序和Sidecar部署在一起,那么程序的入口流量和出口流量都会由这个 Sidecar 去代理,这样就可以通过 Sidecar 去实现服务发现、熔断机制、超时重试等功能了。

整个CoreDNS服务都建立在一个使用Go编写的HTTP/2Web服务器Caddy上

Jaeger可解决以下问题:

Vitess可以帮助解决以下问题:

服务发现就是要了解集群中是否有进程在监听udp或者tcp端口,并且通过名字就可以进行查找和链接。

Prometheus受启发于Google的Brogmon监控系统(相似的Kubernetes是从Google的Brog系统演变而来),从2012年开始由前Google工程师在Soundcloud以开源软件的形式进行研发。

白盒监控: 通过监控内部的运行状态及指标判断可能会发生的问题,从而做出预判或对其进行优化。

黑盒监控: 监控系统或服务,在发生异常时做出相应措施。

通过建立完善的监控体系,达到以下目的:

例如对于Nagios而言,大部分的监控能力都是围绕系统的一些边缘性的问题,主要针对系统服务和资源的状态以及应用程序的可用性。

对于Nagios这类系统而言,其核心是采用了测试和告警(check&alert)的监控系统模型。 对于基于这类模型的监控系统而言往往存在以下问题:

  1. 易于管理

Prometheus核心部分只有一个单独的二进制文件,不存在任何的第三方依赖(数据库,缓存等等)。

  1. 监控服务的内部运行状态

Pometheus鼓励用户监控服务的内部状态,基于Prometheus丰富的Client库,用户可以轻松的在应用程序中添加对Prometheus的支持,从而让用户可以获取服务和应用内部真正的运行状态。

  1. 强大的数据模型

所有采集的监控数据均以指标(metric)的形式保存在内置的时间序列数据库当中(TSDB)。所有的样本除了基本的指标名称以外,还包含一组用于描述该样本特征的标签。

  1. 强大的查询语言PromQL

Prometheus内置了一个强大的数据查询语言PromQL。 通过PromQL可以实现对监控数据的查询、聚合。同时PromQL也被应用于数据可视化(如Grafana)以及告警当中。

  1. 高效

对于监控系统而言,大量的监控任务必然导致有大量的数据产生。而Prometheus可以高效地处理这些数据,对于单一Prometheus Server实例而言它可以处理:

可以在每个数据中心、每个团队运行独立的Prometheus Sevrer。Prometheus对于联邦集群的支持,可以让多个Prometheus实例产生一个逻辑集群,当单实例Prometheus Server处理的任务量过大时,通过使用功能分区(sharding)+联邦集群(federation)可以对其进行扩展。

  1. 易于集成

使用Prometheus可以快速搭建监控服务,并且可以非常方便地在应用程序中进行集成。

  1. 可视化

Prometheus Server中自带的Prometheus UI可以方便地直接对数据进行查询,并且支持直接以图形化的形式展示数据。

gRPC 是一个现代化高性能开源远程过程调用(RPC)框架。CoreOS 的分布式键值存储 etcd 就使用了 gRPC 进行点对点通讯

在广义上,一个trace代表了一个事务或者流程在(分布式)系统中的执行过程。在OpenTracing标准中,trace是多个span组成的一个有向无环图(DAG),每一个span代表trace中被命名并计时的连续性的执行片段。

OpenTracing 是源自 Zipkin 的规范,以提供跨平台兼容性。它提供了对厂商中立的 API,用来向应用程序添加追踪功能并将追踪数据发送到分布式的追踪系统。按照 OpenTracing 规范编写的库,可以被任何兼容 OpenTracing 的系统使用。采用这个开放标准的开源工具有 Zipkin、Jaeger 和 Appdash 等。

Fluentd是一个针对日志的收集、处理、转发系统。通过丰富的插件系统,可以收集来自于各种系统或应用的日志,转化为用户指定的格式后,转发到用户所指定的日志存储系统之中。

在这里插入图片描述

Docker对容器的管理和操作基本都是通过containerd完成的。Containerd 是一个工业级标准的容器运行时,它强调简单性、健壮性和可移植性。Containerd 可以在宿主机中管理完整的容器生命周期:容器镜像的传输和存储、容器的执行和管理、存储和网络等。

详细地说,Containerd 负责干下面这些事情:

在这里插入图片描述

containerd并不是直接面向最终用户的,而是主要用于集成到更上层的系统里,比如Swarm, Kubernetes, Mesos等容器编排系统。

在这里插入图片描述

rkt 最早是由 CoreOS 公司创建的,而 CoreOS 最早应该也算是 Docker 的用户之一。但是随着 Docker 发展的日趋壮大,CoreOS 就想要脱离 Docker,成立自己的标准。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/222650.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午3:17
下一篇 2026年3月17日 下午3:17


相关推荐

  • java 输入语句_java怎样输入语句

    java 输入语句_java怎样输入语句java 输入语句的方法 1 输入单个字符 charc char System in read 2 输入整数或者字符串 inta cin nextInt 3 可以用 BufferedRead 类输入 java 输入语句的方法 如果你要进行输入 请一定加上两个包 importjava util importjava io 请看下面例子用于输入单个字符 importjava i

    2026年3月17日
    2
  • ReLU和BN层简析[通俗易懂]

    ReLU和BN层简析[通俗易懂]卷积神经网络中,若不采用非线性激活,会导致神经网络只能拟合线性可分的数据,因此通常会在卷积操作后,添加非线性激活单元,其中包括logistic-sigmoid、tanh-sigmoid、ReLU等。sigmoid激活函数应用于深度神经网络中,存在一定的局限性,当数据落在左右饱和区间时,会导致导数接近0,在卷积神经网络反向传播中,每层都需要乘上激活函数的导数,由于导数太小,这样经过几次传播后,靠…

    2022年10月9日
    5
  • 空间解析几何

    空间解析几何解析几何是用代数方法研究几何对象之间的关系和性质的一门几何学分支 通俗讲就是通过建立坐标系来用方程描述几何图形 在解析几何创立以前 几何与代数是彼此独立的两个分支 而它的出现使形与数统一起来 这是数学发展史上的一次重大突破 在平面解析几何中 除了研究直线的有关性质外 主要是研究圆锥曲线 圆 椭圆 抛物线 双曲线 的有关性质 在空间解析几何中 除了研究平面 直线有关性质外 主要研究柱面 锥

    2025年6月30日
    7
  • 腾讯混元T1-Vision新升级,元宝功能让图片理解更“懂你”

    腾讯混元T1-Vision新升级,元宝功能让图片理解更“懂你”

    2026年3月13日
    2
  • MySQL生产环境主从关系数据不同步

    MySQL生产环境主从关系数据不同步

    2021年5月29日
    97
  • excel导入mysql后会多了0_Excel导入MySQL数据出现

    excel导入mysql后会多了0_Excel导入MySQL数据出现点击 import 则数据导入表格成功 结果如下所示导入的 MySQL 数据错列问题 当导入 fct sales item 的时候发现 数据存在一个错列有问题 也就是对比 MySQL 数据库原表的列的顺序 会发现该表的表头与数据库中原表的字段列不一样 当导入数据时候 excel 会对原表头进行重新排序 本案例中 导入的数据表头是按字段名称的英文字母的升序顺序 而不是按原来数据表中的字段顺序 这会导致当导入的数据出

    2026年3月17日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号