共计 2174 个字符,预计需要花费 6 分钟才能阅读完成。
我最新最全的文章都在 南瓜慢说 www.pkslow.com,文章更新也只在官网,欢送大家来喝茶~~
1 简介
之前在文章《服务网格 Istio 入门 - 具体记录 Kubernetes 装置 Istio 并应用》曾经具体地介绍了如何在 Linux 零碎上在 Kubernetes 装置并应用 Istio,但毕竟服务器是要钱的,几毛钱一小时,是我格局小了,但我还是想在 Mac 上装置应用。
2 装置 Istio
我的电脑曾经装置了 Kubernetes 了,能够参考《Mac 上应用 Docker Desktop 启动 Kubernetes,踩坑后终于搞掂》, 当初间接装置 Istio。
下载对应的安装包:
$ curl -L https://istio.io/downloadIstio | sh -
目录如下:
把 bin 目录下的 istioctl 增加到 PATH。
$ export ISTIO_HOME=/Users/larry/Software/istio/istio-1.10.3
$ export PATH=$PATH:$ISTIO_HOME/bin
检测是否能够执行装置:
$ istioctl x precheck
✔ No issues found when checking the cluster. Istio is safe to install or upgrade!
没有问题,就能够开始装置了:
$ istioctl install
因为要下载镜像,所以须要花一点工夫,胜利装置如下:
能够做一些简略的查看:
# 查看 istio-system 命令空间下的 Pod
$ kubectl get pod -n istio-system
# 查看资源
$ kubectl api-resources | grep istio
后果如下:
3 应用 istio
3.1 注入代理
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,一个是利用的,一个是代理的。
3.2 装置监控插件
为了更好地可视化地监控利用,咱们来装置一些插件:
$ kubectl apply -f istio-1.10.3/samples/addons
同样的期待:
$ watch 'kubectl get pod -n istio-system'
大略 5 分钟左右,胜利启动了:
能够看到许多很常见的监控软件:Grafana、Prometheus 等。
3.3 在内部拜访资源
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
咱们能够多点击几次,多刷新几次,能够多产生一些流量,以便后续查看监控。
3.4 查看监控
同样,咱们也须要在内部拜访监控的内容,拜访 kiali 如下,会间接帮咱们关上浏览器:
$ istioctl dashboard kialihttp://localhost:20001/kiali
能够查看残缺清晰的流量走向图,晓得有什么组件,它们之间的调用关系是怎么的:
查看特定的组件 productpage,会以它为核心显示与它间接关联的利用和关系:
当然,也能够查看 Grafana:
$ istioctl dashboard grafana
界面如下:
查看 Jaeger:
$ istioctl dashboard jaeger
界面如下:
查看 Prometheus:
$ istioctl dashboard prometheus
界面如下:
总结
Istio 给咱们提供了很多有用的个性,光监控方面就十分丰盛,更多细节咱们后续再探讨吧。