Kubernetes Istio服务及其使用

Kubernetes Istio服务及其使用,kubernetes,istio,jaeger,distributed-tracing,Kubernetes,Istio,Jaeger,Distributed Tracing,我已使用具有以下设置的头盔图表安装了Istio: helm template --set kiali.enabled=true --set tracing.enabled=true --set pilot.traceSampling=100 --set grafana.enabled=true --set sidecarInjectorWebhook.enabled=true install/kubernetes/helm/istio --name istio --namespace istio

我已使用具有以下设置的头盔图表安装了Istio:

helm template --set kiali.enabled=true --set tracing.enabled=true --set pilot.traceSampling=100 --set grafana.enabled=true --set sidecarInjectorWebhook.enabled=true install/kubernetes/helm/istio --name istio --namespace istio-system > istio.yaml
当我在
istio system
命名空间下检查集群中运行的服务时,我看到围绕跟踪的多个服务

jaeger-agent             ClusterIP      None      <none>     5775/UDP,6831/UDP,6832/UDP                                                                                                                   
jaeger-collector         ClusterIP      10.100.66.107    <none>  14267/TCP,14268/TCP
tracing                  ClusterIP      10.100.81.123    <none>   80/TCP                                                                                                                                       
zipkin                   ClusterIP      10.100.64.9      <none>   9411/TCP 
jaeger代理群集无5775/UDP、6831/UDP、6832/UDP
jaeger收集器群集IP 10.100.66.107 14267/TCP、14268/TCP
跟踪群集IP 10.100.81.123 80/TCP
zipkin ClusterIP 10.100.64.9 9411/TCP
因为Jaeger是默认设置,所以我希望只看到
Jaeger收集器
。尚不清楚
jaeger代理
跟踪
zipkin
的角色是什么,有什么想法吗?

只是在前面提到(您可能已经知道),Kubernetes服务不是一段代码中的“服务”。这是Kubernetes组件和部署通过始终保持不变的接口彼此通信的一种方式,无论有多少吊舱或服务器

当Istio部署其跟踪机制时,它会部署模块化的部件,这样它就可以独立地部署它们,也可以独立地扩展它们,非常类似于微服务

通常,Kubernetes部署的实用程序将作为几个部分部署,这些部分构成了更大的图景。例如,在您的案例中:

jaeger代理-这是将从节点收集所有流量和跟踪的组件

jaeger收集器-这是所有jaeger代理将推送他们在节点上找到的日志和跟踪的地方,收集器将聚合这些日志和跟踪,因为跟踪可能跨越多个节点

跟踪-可能是将跟踪ID注入网络流量以供代理监视的组件

zipkin-可以是允许使用跟踪进行调试或重放请求等的UI

上述内容可能不是绝对正确的,但我希望您了解为什么要部署多个部件


与我们分别部署mysql和容器的方式相同,Kubernetes项目通常作为一组部署或POD进行部署

补充@christiaan vermeulen的回答:
跟踪
服务是Jaeger的UI(Jaeger查询),因此相同的URL可以用于替代后端,而Zipkin服务是一种方便的服务,允许使用Zipkin跟踪程序(如Brave)的应用程序向Jaeger发送数据,而无需进行复杂的更改。如果仔细观察,Zipkin服务也由jaeger collector支持。

+1除了据我所知,
跟踪
jaeger查询
相同,并在此处解释:。它基本上服务于Jaeger的UI(您可以在其上创建入口/端口转发以查看Jaeger UI)。在Istio头盔图表中,它被重命名为
跟踪
,但我相信它是一样的。