udpate tracing
parent
e58a4acbde
commit
494c285d1d
|
@ -99,6 +99,7 @@
|
||||||
* [APIService](concepts/apiservice.md)
|
* [APIService](concepts/apiservice.md)
|
||||||
* [Service Catalog](concepts/service-catalog.md)
|
* [Service Catalog](concepts/service-catalog.md)
|
||||||
* [多集群管理](concepts/multicluster.md)
|
* [多集群管理](concepts/multicluster.md)
|
||||||
|
* [Multi-Cluster Services API(多集群服务 API )](concepts/multi-cluster-services-api.md)
|
||||||
* [资源调度](concepts/scheduling.md)
|
* [资源调度](concepts/scheduling.md)
|
||||||
* [QoS(服务质量等级)](concepts/qos.md)
|
* [QoS(服务质量等级)](concepts/qos.md)
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
# Multi-Cluster Services API(多集群服务 API)
|
||||||
|
|
||||||
|
2020 年初,Kubernetes 社区提议 [Multi-Cluster Services API](https://docs.google.com/document/d/1hFtp8X7dzVS-JbfA5xuPvI_DNISctEbJSorFnY-nz6o/edit#heading=h.u7jfy9wqpd2b),旨在解决长久以来就存在的 Kubernetes 多集群服务管理问题。
|
||||||
|
|
||||||
|
K8s用户可能希望将他们的部署分成多个集群,但仍然保留在这些集群中运行的工作负载之间的相互依赖关系,这有[很多原因](http://bit.ly/k8s-multicluster-conversation-starter-doc)。今天,集群是一个硬边界,一个服务对远程的K8s消费者来说是不透明的,否则就可以利用元数据(如端点拓扑结构)来更好地引导流量。为了支持故障转移或在迁移过程中的临时性,用户可能希望消费分布在各集群中的服务,但今天这需要非复杂的定制解决方案。
|
||||||
|
|
||||||
|
多集群服务API旨在解决这些问题。
|
||||||
|
|
||||||
|
## 参考
|
||||||
|
|
||||||
|
- [KEP-1645: Multi-Cluster Services API - github.com](https://github.com/kubernetes/enhancements/tree/master/keps/sig-multicluster/1645-multi-cluster-services-api)
|
||||||
|
|
|
@ -1,13 +1,24 @@
|
||||||
# 分布式追踪
|
# 分布式追踪
|
||||||
|
|
||||||
当我将单体应用拆成多个微服务之后,如何监控服务之间的依赖关系和调用链,以判断应用在哪个服务环节出了问题,哪些地方可以优化?这就需要用到分布式追踪(Distributed Tracing)。
|
当我将单体应用拆成多个微服务之后,它们可能分布在上千个服务器、不同的数据中心和可用区中,如何监控服务之间的依赖关系和调用链,以判断应用在哪个服务环节出了问题,哪些地方可以优化?这就需要用到分布式追踪(Distributed Tracing)。
|
||||||
|
|
||||||
CNCF 提出了分布式追踪的标准 [OpenTracing](https://opentracing.io/),它提供用厂商中立的 API,并提供 Go、Java、JavaScript、Python、Ruby、PHP、Objective-C、C++ 和 C# 这九种语言的库。
|
CNCF 提出了分布式追踪的标准 [OpenTracing](https://opentracing.io/),它提供用厂商中立的 API,并提供 Go、Java、JavaScript、Python、Ruby、PHP、Objective-C、C++ 和 C# 这九种语言的库。
|
||||||
|
|
||||||
同时 CNCF 中还有个端到端的支持 OpenTracing API 的分布式追踪项目 [Jaeger](https://www.jaegertracing.io/)。
|
大部分分布式追踪系统都是根据 Google 的 [Dapper 论文](https://bigbully.github.io/Dapper-translation/) 实现的,比如 CNCF 中还有个端到端的支持 OpenTracing API 的分布式追踪项目 [Jaeger](https://www.jaegertracing.io/)。另外 Apache 基金会项目也有个中国开源的应用性能监控工具 [SkyWalking](https://skywalking.apache.org/) 也可以实现分布式追踪。
|
||||||
|
|
||||||
|
## 分布式追踪系统要求
|
||||||
|
|
||||||
|
我们对分布式追踪系统的要求如下:
|
||||||
|
|
||||||
|
1. **对应用程序的消耗足够低**:一是指占用的系统资源要足够低,二是指造成的延迟要足够低。
|
||||||
|
2. **对应用程序透明**:为了做到 7x24 小时无所不在的部署,在向应用程序中集成分布式追踪系统时,要让程序员对程序的改动尽可能的小,这样才便于大范围低成本接入。
|
||||||
|
3. **可扩展**:为了将所有服务接入分布式追踪系统,该系统必须是可以承载大规模服务的可扩展的。
|
||||||
|
|
||||||
|
另外还有一些其他要求,比如该系统对产生的追踪数据的处理要尽可能的快,可以方便的对追踪结果进行查询和可视化等。
|
||||||
|
|
||||||
## 参考
|
## 参考
|
||||||
|
|
||||||
- [OpenTracing 官方网站](https://opentracing.io/)
|
- [OpenTracing 官方网站 - opentracing.io](https://opentracing.io/)
|
||||||
- [Jaeger 官方网站](https://www.jaegertracing.io/)
|
- [Jaeger 官方网站 - jeagertracing.io](https://www.jaegertracing.io/)
|
||||||
- [Apache SkyWalking 官方网站](https://skywalking.apache.org/)
|
- [Apache SkyWalking 官方网站](https://skywalking.apache.org/)
|
||||||
|
- [Dapper,大规模分布式系统的跟踪系统 - bigbully.github.io](https://bigbully.github.io/Dapper-translation/)
|
||||||
|
|
|
@ -104,7 +104,6 @@ Trace 通常指一次完整的调用链。如上文中的 Jaeger UI 截图就是
|
||||||
|
|
||||||
## 参考
|
## 参考
|
||||||
|
|
||||||
- [OpenTracing 官方网站](https://opentracing.io/)
|
- [OpenTracing 官方网站 - opentracing.io](https://opentracing.io/)
|
||||||
- [OpenTracing 语义规范(Semantic Specification)](https://github.com/opentracing/specification/blob/master/specification.md)
|
- [OpenTracing 语义规范(Semantic Specification)- github.com](https://github.com/opentracing/specification/blob/master/specification.md)
|
||||||
- [OpenTracing 语义约定(Semantic Conventions)](https://github.com/opentracing/specification/blob/master/semantic_conventions.md)
|
- [OpenTracing 语义约定(Semantic Conventions)- github.com](https://github.com/opentracing/specification/blob/master/semantic_conventions.md)
|
||||||
- [开放分布式追踪(OpenTracing)入门与 Jaeger 实现](https://yq.aliyun.com/articles/514488#19)
|
|
||||||
|
|
|
@ -303,7 +303,7 @@ usersvc-55b6857d44-s2znk 1/1 Running 0 9m 172.33.10.2
|
||||||
|
|
||||||
## 参考
|
## 参考
|
||||||
|
|
||||||
- [Part 2: Deploying Envoy with a Python Flask webapp and Kubernetes](https://www.datawire.io/envoyproxy/envoy-flask-kubernetes/)
|
- [Part 2: Deploying Envoy with a Python Flask webapp and Kubernetes - getambassador.io](https://getambassador.io/resources/envoy-flask-kubernetes/)
|
||||||
- [envoy-steps](https://github.com/datawire/envoy-steps)
|
- [envoy-steps - github.com](https://github.com/datawire/envoy-steps)
|
||||||
- [kubernetes-vagrant-centos-cluster](https://github.com/rootsongjc/kubernetes-vagrant-centos-cluster)
|
- [kubernetes-vagrant-centos-cluster - github.com](https://github.com/rootsongjc/kubernetes-vagrant-centos-cluster)
|
||||||
- [envoy-tutorial](https://github.com/rootsongjc/envoy-tutorial)
|
- [envoy-tutorial - github.com](https://github.com/rootsongjc/envoy-tutorial)
|
||||||
|
|
Loading…
Reference in New Issue