Istio 服务及其使用
Istio services and their usage
我已经使用具有以下设置的 helm chart 安装了 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 是默认设置,我原以为只会看到 jaeger-collector
。目前尚不清楚 jaeger-agent
、tracing
和 zipkin
的作用是什么,有什么想法吗?
,
只是事先提到(您可能已经知道)Kubernetes 服务不是一段代码中的 "service"。这是 Kubernetes 组件和部署通过始终保持不变的界面相互通信的一种方式,无论有多少 pods 或服务器。
当 Istio 部署它的跟踪机制时,它会部署模块化部分,因此它可以独立部署它们,也可以独立扩展它们,非常像微服务。
通常,Kubernetes 部署的实用程序将部署为组成大局的几个部分。例如你的情况:
jaeger-agent - 这是将从您的节点收集所有流量和跟踪的组件。
jaeger-collector - 这是所有 jaeger-agents 将推送它们在节点上找到的日志和跟踪的地方,收集器将聚合这些日志和跟踪,因为跟踪可能跨越多个节点。
跟踪 - 可能是将跟踪 ID 注入网络流量以供代理监视的组件。
zipkin - 可能是 UI,它允许使用跟踪进行调试,或重放请求等。
以上内容可能并不完全正确,但希望您了解为什么要部署多个部分。
与我们部署 mysql 和我们的容器分开部署的方式相同,Kubernetes 项目通常部署为一组部署或 pods。
补充@christiaan-vermeulen 的回答:tracing
服务是 Jaeger 的 UI(jaeger-query),因此相同的 URL 可用于替代后端,而Zipkin 服务是一种便利服务,允许使用 Zipkin 跟踪器(如 Brave)的应用程序将数据发送到 Jaeger,而无需进行复杂的更改。如果仔细观察,Zipkin 服务也由 jaeger-collector 支持。
我已经使用具有以下设置的 helm chart 安装了 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 是默认设置,我原以为只会看到 jaeger-collector
。目前尚不清楚 jaeger-agent
、tracing
和 zipkin
的作用是什么,有什么想法吗?
,
只是事先提到(您可能已经知道)Kubernetes 服务不是一段代码中的 "service"。这是 Kubernetes 组件和部署通过始终保持不变的界面相互通信的一种方式,无论有多少 pods 或服务器。
当 Istio 部署它的跟踪机制时,它会部署模块化部分,因此它可以独立部署它们,也可以独立扩展它们,非常像微服务。
通常,Kubernetes 部署的实用程序将部署为组成大局的几个部分。例如你的情况:
jaeger-agent - 这是将从您的节点收集所有流量和跟踪的组件。
jaeger-collector - 这是所有 jaeger-agents 将推送它们在节点上找到的日志和跟踪的地方,收集器将聚合这些日志和跟踪,因为跟踪可能跨越多个节点。
跟踪 - 可能是将跟踪 ID 注入网络流量以供代理监视的组件。
zipkin - 可能是 UI,它允许使用跟踪进行调试,或重放请求等。
以上内容可能并不完全正确,但希望您了解为什么要部署多个部分。
与我们部署 mysql 和我们的容器分开部署的方式相同,Kubernetes 项目通常部署为一组部署或 pods。
补充@christiaan-vermeulen 的回答:tracing
服务是 Jaeger 的 UI(jaeger-query),因此相同的 URL 可用于替代后端,而Zipkin 服务是一种便利服务,允许使用 Zipkin 跟踪器(如 Brave)的应用程序将数据发送到 Jaeger,而无需进行复杂的更改。如果仔细观察,Zipkin 服务也由 jaeger-collector 支持。