如果我们可以将这部分功能抽取出来,形成一个独立的进程,这样的进程称为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)的监控系统模型。 对于基于这类模型的监控系统而言往往存在以下问题:
- 易于管理
Prometheus核心部分只有一个单独的二进制文件,不存在任何的第三方依赖(数据库,缓存等等)。
- 监控服务的内部运行状态
Pometheus鼓励用户监控服务的内部状态,基于Prometheus丰富的Client库,用户可以轻松的在应用程序中添加对Prometheus的支持,从而让用户可以获取服务和应用内部真正的运行状态。
- 强大的数据模型
所有采集的监控数据均以指标(metric)的形式保存在内置的时间序列数据库当中(TSDB)。所有的样本除了基本的指标名称以外,还包含一组用于描述该样本特征的标签。
- 强大的查询语言PromQL
Prometheus内置了一个强大的数据查询语言PromQL。 通过PromQL可以实现对监控数据的查询、聚合。同时PromQL也被应用于数据可视化(如Grafana)以及告警当中。
- 高效
对于监控系统而言,大量的监控任务必然导致有大量的数据产生。而Prometheus可以高效地处理这些数据,对于单一Prometheus Server实例而言它可以处理:
可以在每个数据中心、每个团队运行独立的Prometheus Sevrer。Prometheus对于联邦集群的支持,可以让多个Prometheus实例产生一个逻辑集群,当单实例Prometheus Server处理的任务量过大时,通过使用功能分区(sharding)+联邦集群(federation)可以对其进行扩展。
- 易于集成
使用Prometheus可以快速搭建监控服务,并且可以非常方便地在应用程序中进行集成。
- 可视化
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
