我最新最全的文章都在南瓜慢话www.pkslow.com,文章更新只在官网。欢迎大家喝茶~~1简介在《服务网格Istio入门-详细记录Kubernetes安装Istio并使用》一文中,我已经详细介绍了如何在Linux系统上安装和使用IstioonKubernetes。在Mac上安装和使用。2安装Istio我的电脑已经安装了Kubernetes,可以参考《Mac上使用Docker Desktop启动Kubernetes,踩坑后终于搞掂》,现在直接安装Istio。下载对应的安装包:$curl-Lhttps://istio.io/downloadIstio|sh-目录如下:将bin目录下的istioctl添加到PATH中。$exportISTIO_HOME=/Users/larry/Software/istio/istio-1.10.3$exportPATH=$PATH:$ISTIO_HOME/bin检查是否可以安装:$istioctlxprecheck?检查集群没有发现问题。Istio可以安全地安装或升级!没问题,可以开始安装了:$istioctlinstall因为需要下载镜像,所以需要一点时间。成功安装如下:可以做一些简单的检查:#查看istio-system命令space下的Pod$kubectlgetpod-nistio-system#查看资源grepistio结果如下:3使用istio3.1注入代理Istio默认不会给其他Pod注入代理,需要在Namespace中添加相应的标签:$kubectllabelnamespacedefaultistio-injection=enabled但是对于现有的Pod,还是注入不了,没关系,我们用官方的例子新建一些资源:$kubectlapply-fistio-1.10.3/samples/bookinfo/platform/kube/bookinfo.yamlis第一次启动,需要下载镜像,所以会花很长时间,通过如下命令观察:$watch'kubectlgetpod-lapp-lversion'forafewminutes最后,终于搞定了:可以看到每个Pod有两个Container,一个给application,一个给agent。3.2安装监控插件为了更好的可视化监控应用,我们安装一些插件:$kubectlapply-fistio-1.10.3/samples/addons等同:$watch'kubectlgetpod-nistio-system'大概5分钟左右,就成功启动了:可以看到很多常用的监控软件:Grafana、Prometheus等。3.3访问外部资源Istio为我们提供了Gateway的功能,我们为应用创建一个Gateway对外暴露服务:$kubectlapply-fistio-1.10.3/samples/bookinfo/networking/bookinfo-gateway.yamlgateway.networking。istio.io/bookinfo-gatewaycreatedvirtualservice.networking.istio.io/bookinfocreated$kubectlgetgatewayNAMEAGEbookinfo-gateway17s$kubectlgetvirtualservices.networking.istio.ioNAME网关主机AGEbookinfo["bookinfo-gateway"]["*"]29s因为我很早以前就安装了IngressController(Kubernetes使用Helm安装Ingress踩坑),为了防止冲突,删掉原来的:#安装命令,不要执行#helminstallazure-ingressazure/nginx-ingress#DeleteIngressControllerhelmdeleteazure-ingress然后就可以正常访问应用了:http://localhost/productpage我们可以点击刷新几次,产生更多的流量,方便后续查看和监控。3.4查看监控同样,我们也需要在外部访问监控的内容。访问kiali如下,会直接为我们打开浏览器:$istioctldashboardkialihttp://localhost:20001/kiali可以查看完整清晰的流量趋势图,知道有哪些组件,哪些是它们之间的调用关系:查看一个具体的组件productpage,会显示与其直接关联的应用和关系:当然你也可以查看Grafana:$istioctldashboardgrafana的界面如下:查看Jaeger:$istioctldashboardjaeger界面如下:查看Prometheus:$istioctldashboardprometheus界面如下:综上所述,Istio为我们提供了很多有用的功能,包括轻监控。我们稍后会讨论更多细节。
