博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
istio jaeger_Jaeger入门以构建Istio服务网格
阅读量:2525 次
发布时间:2019-05-11

本文共 4172 字,大约阅读时间需要 13 分钟。

istio jaeger

为服务之间的通信提供了透明的专用网络。 旨在帮助开发人员和运营商解决服务网格功能,例如动态服务发现,相互传输层安全性(TLS),断路器,速率限制和跟踪。 与Istio一起增强了对分布式网络系统上的云原生应用程序的监视和跟踪。 本文介绍了如何开始使用Jaeger在Kubernetes平台上构建Istio服务网格。

启动Kubernetes集群

允许您在本地计算机上基于虚拟机(例如 , 或运行单节点Kubernetes集群。 并使用以下shell脚本运行它:

#!/bin/bash      
export
MINIKUBE_PROFILE_NAME =istio-jaeger
minikube profile
$MINIKUBE_PROFILE_NAME
minikube config
set cpus
3
minikube config
set memory
8192
# You need to replace appropriate VM driver on your local machine
minikube config
set vm-driver hyperkit
minikube start

在以上脚本中,将--vm-driver = xxx选项替换为操作系统(OS)上的相应虚拟机驱动程序。

使用Jaeger部署Istio服务网格

从下载适用于您的OS的Istio安装文件。 在Istio软件包目录中,您可以在install /中找到Kubernetes安装YAML文件,并在sample /中找到示例应用程序。 使用以下命令:

$ curl -L https://git.io/getLatestIstio | sh -     
$ cd istio-1.0.5
$ export PATH=$PWD/bin:$PATH

在Kubernetes群集上使用Jaeger部署Istio的最简单方法是使用 。 使用以下命令在Sidecar之间使用相互TLS身份验证安装Istio:

$ kubectl apply -f install/kubernetes/helm/istio/templates/crds.yaml     
$ kubectl apply -f install/kubernetes/istio-demo-auth.yaml

使用以下命令检查Kubernetes群集上Istio的所有Pod是否已部署并正常运行,并查看输出:

$ kubectl get pods -n istio-system     
NAME                                      READY     STATUS      RESTARTS   AGE
grafana-59b8896965-p2vgs                  1/1       Running     0          3h
istio-citadel-856f994c58-tk8kq            1/1       Running     0          3h
istio-cleanup-secrets-mq54t               0/1       Completed   0          3h
istio-egressgateway-5649fcf57-n5ql5       1/1       Running     0          3h
istio-galley-7665f65c9c-wx8k7             1/1       Running     0          3h
istio-grafana-post-install-nh5rw          0/1       Completed   0          3h
istio-ingressgateway-6755b9bbf6-4lf8m     1/1       Running     0          3h
istio-pilot-698959c67b-d2zgm              2/2       Running     0          3h
istio-policy-6fcb6d655f-lfkm5             2/2       Running     0          3h
istio-security-post-install-st5xc         0/1       Completed   0          3h
istio-sidecar-injector-768c79f7bf-9rjgm   1/1       Running     0          3h
istio-telemetry-664d896cf5-wwcfw          2/2       Running     0          3h
istio-tracing-6b994895fd-h6s9h            1/1       Running     0          3h
prometheus-76b7745b64-hzm27               1/1       Running     0          3h
servicegraph-5c4485945b-mk22d             1/1       Running     1          3h

构建示例微服务应用

您可以使用应用了解Istio的功能。 Bookinfo由四个微服务应用程序组成: 产品页面详细信息评论评级分别部署在Minikube上。 使用以下命令,将通过Istio在Envoy边车中部署每个微服务:

// Enable sidecar injection automatically     
$ kubectl label namespace default istio-injection=enabled
$ kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml
// Export the ingress IP, ports, and gateway URL
$ kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml
$ export INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].nodePort}')
$ export SECURE_INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="https")].nodePort}')
$ export INGRESS_HOST=$(minikube ip)
$ export GATEWAY_URL=$INGRESS_HOST:$INGRESS_PORT

访问Jaeger仪表板

要查看每个HTTP请求的跟踪信息,请通过在命令行中运行以下命令来创建一些流量:

$ while true; do     
  curl -s http://${GATEWAY_URL}/productpage > /dev/null
  echo -n .;
  sleep 0.2
done

如果您按照以下方式设置端口转发,则可以使用通过Web浏览器访问Jaeger仪表板:

kubectl port-forward -n istio-system $(kubectl get pod -n istio-system -l app=jaeger -o jsonpath='{.items[0].metadata.name}') 16686:16686 &

您可以在选择productpage服务后单击“查找迹线”来浏览所有迹线。 您的仪表板将类似于以下内容:

Find traces in Jaeger

您还可以通过单击某个跟踪来查看有关每个跟踪的更多详细信息,以挖掘性能问题或经过的时间。

Viewing details about a trace

结论

分布式跟踪平台使您可以了解各个入口/出口流量因服务而发生的情况。 即使您的现代应用程序根本不了解Jaeger,Istio也会自动将单独的跟踪信息发送到分布式跟踪平台Jaeger。 最后,此功能可帮助开发人员和操作员更轻松,更快速地进行故障排除。


接下来要读什么

翻译自:

istio jaeger

转载地址:http://otbzd.baihongyu.com/

你可能感兴趣的文章
静态链接与动态链接的区别
查看>>
Android 关于悬浮窗权限的问题
查看>>
如何使用mysql
查看>>
linux下wc命令详解
查看>>
敏捷开发中软件测试团队的职责和产出是什么?
查看>>
在mvc3中使用ffmpeg对上传视频进行截图和转换格式
查看>>
python的字符串内建函数
查看>>
Spring - DI
查看>>
微软自己的官网介绍 SSL 参数相关
查看>>
Composite UI Application Block (CAB) 概念和术语
查看>>
64位MATLAB和C混合编程以及联合调试
查看>>
原生js大总结二
查看>>
PHP基础
查看>>
UVa 11488 超级前缀集合(Trie的应用)
查看>>
Django 翻译与 LANGUAGE_CODE
查看>>
[转]iOS教程:SQLite的创建数据库,表,插入查看数据
查看>>
【转载】OmniGraffle (一)从工具栏开始
查看>>
初识ionic
查看>>
java 中打印调用栈
查看>>
开发 笔记
查看>>