在我们对它进行网格(mesh)划分之前,让我们先来看看这个应用程序。 如果此时您正在使用 ,则可以直接访问 。 如果你没有使用 Docker Desktop,我们需要转发 web-svc 服务。要将 web-svc 本地转发到端口 8080,您可以运行:
kubectl -n emojivoto port-forward svc/web-svc 8080:80现在访问 :8080。
点击周围,您可能会注意到 emojivoto 的某些部分已损坏!例如,如果你点击一个甜甜圈表情符号(doughnut emoji),你会得到一个 404 页面。别担心,这些错误是故意的。(我们可以使用 Linkerd 来识别问题。如果您对如何准确找出问题感兴趣,请查看调试指南。)
接下来,让我们通过运行以下命令将 linker 添加到 emojivoto:
kubectl get -n emojivoto deploy -o yaml \ | linkerd inject - \ | kubectl apply -f -此命令检索在 emojivoto 命名空间中运行的所有部署(deployments),通过 linkerd inject 运行清单,然后将其重新应用到集群。linkerd inject 命令向 pod spec 添加注解(annotations),指示 Linkerd 将代理(proxy)作为容器添加(“注入”)到 pod spec 中。 (有关更多信息,请参阅自动代理注入。)
与 install 一样,inject 是纯文本操作,这意味着您可以在使用之前检查输入和输出。一旦通过管道传输到 kubectl apply,Kubernetes 将执行滚动部署(rolling deploy)并使用数据平面的代理更新每个 pod,所有这些都没有任何停机时间。
恭喜!您现在已将 Linkerd 添加到现有服务中!就像控制平面一样,可以验证一切是否按照数据平面应有的方式工作。要进行此检查,请运行:
linkerd -n emojivoto check --proxy 监测它的运行您现在可以查看 Linked 面板并查看 demo app 中的所有服务。由于 demo app 附带了 load generator,我们可以通过运行以下命令查看实时流量指标(live traffic metrics):
linkerd -n emojivoto viz stat deploy这将显示每个部署的“黄金(golden)”指标:
成功率(Success rates)
请求率(Request rates)
延迟分布百分位数(Latency distribution percentiles)
为了进一步深入,可以使用 top 来实时查看正在调用哪些路径:
linkerd -n emojivoto viz top deploy为了更深入,我们可以使用 tap 显示跨单个 pod、deployment 甚至 emojivoto 命名空间中的所有内容的请求流:
linkerd -n emojivoto viz tap deploy/web如果您想改用浏览器,所有这些功能也可在仪表板中使用:
那过去发生的事情呢?Linkerd 包含 Grafana 来可视化 Prometheus 收集的指标,并附带一些预配置的仪表板。您可以通过单击概览页面中的 Grafana 图标来访问这些。
我是为少 微信:uuhells123 公众号:黑客下午茶 加我微信(互相学习交流),关注公众号(获取更多学习资料~)