udpate tracing

pull/454/head
Jimmy Song 2021-10-15 13:14:05 +08:00
parent e58a4acbde
commit 494c285d1d
No known key found for this signature in database
GPG Key ID: CBA666E6EF8B2C3A
5 changed files with 36 additions and 13 deletions

View File

@ -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)

View File

@ -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)

View File

@ -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/)

View File

@ -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)

View File

@ -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)