我最新最全的文章都在 南瓜慢说 www.pkslow.com ,文章更新也只在官网,欢迎你们来喝茶~~nginx
以前在文章《服务网格Istio入门-详细记录Kubernetes安装Istio并使用》已经详细地介绍了如何在Linux系统上在Kubernetes安装并使用Istio,但毕竟服务器是要钱的,几毛钱一小时,是我格局小了,但我仍是想在Mac上安装使用。docker
个人电脑已经安装了Kubernetes了,能够参考《Mac上使用Docker Desktop启动Kubernetes,踩坑后终于搞掂》,如今直接安装Istio。api
下载对应的安装包:浏览器
$ curl -L https://istio.io/downloadIstio | sh -
目录以下:bash
把bin目录下的istioctl添加到PATH。服务器
$ export ISTIO_HOME=/Users/larry/Software/istio/istio-1.10.3 $ export PATH=$PATH:$ISTIO_HOME/bin
检测是否能够执行安装:app
$ istioctl x precheck ✔ No issues found when checking the cluster. Istio is safe to install or upgrade!
没有问题,就能够开始安装了:curl
$ istioctl install
由于要下载镜像,因此须要花一点时间,成功安装以下:url
能够作一些简单的检查:spa
# 检查istio-system命令空间下的Pod $ kubectl get pod -n istio-system # 检查资源 $ kubectl api-resources | grep istio
结果以下:
Istio默认不会给其它Pod注入代理,须要给Namespace添加对应的标签才能够:
$ kubectl label namespace default istio-injection=enabled
但对于现有的Pod,也仍是不会注入的,不要紧,咱们来使用官方提供的示例,新建立一些资源:
$ kubectl apply -f istio-1.10.3/samples/bookinfo/platform/kube/bookinfo.yaml
由于是第一次启动,要下载镜像,因此要花比较长的时间,以下面命令观察:
$ watch 'kubectl get pod -l app -l version'
几分钟后,终于搞定:
能够看到每一个Pod都有两个Container,一个是应用的,一个是代理的。
为了更好地可视化地监控应用,咱们来安装一些插件:
$ kubectl apply -f istio-1.10.3/samples/addons
一样的等待:
$ watch 'kubectl get pod -n istio-system'
大概5分钟左右,成功启动了:
能够看到许多很常见的监控软件:Grafana、Prometheus等。
Istio给咱们提供了Gateway的功能,咱们给应用建立一个Gateway对外暴露服务:
$ kubectl apply -f istio-1.10.3/samples/bookinfo/networking/bookinfo-gateway.yamlgateway.networking.istio.io/bookinfo-gateway createdvirtualservice.networking.istio.io/bookinfo created$ kubectl get gatewayNAME AGEbookinfo-gateway 17s$ kubectl get virtualservices.networking.istio.ioNAME GATEWAYS HOSTS AGEbookinfo ["bookinfo-gateway"] ["*"] 29s
由于我很早以前就安装了Ingress Controller(Kubernetes用Helm安装Ingress并踩一下使用的坑),为了防止冲突,把原来的给删掉:
# 安装命令,不执行# helm install azure-ingress azure/nginx-ingress# 删除Ingress Controllerhelm delete azure-ingress
而后就能够正常访问应用了:http://localhost/productpage
咱们能够多点击几回,多刷新几回,能够多产生一些流量,以便后续查看监控。
一样,咱们也须要在外部访问监控的内容,访问kiali以下,会直接帮咱们打开浏览器:
$ istioctl dashboard kialihttp://localhost:20001/kiali
能够查看完整清晰的流量走向图,知道有什么组件,它们之间的调用关系是怎样的:
查看特定的组件productpage,会以它为中心显示与它直接关联的应用和关系:
固然,也能够查看Grafana:
$ istioctl dashboard grafana
界面以下:
查看Jaeger:
$ istioctl dashboard jaeger
界面以下:
查看Prometheus:
$ istioctl dashboard prometheus
界面以下:
Istio给咱们提供了不少有用的特性,光监控方面就很是丰富,更多细节咱们后续再讨论吧。