关于java:在Mac上安装Istio并使用有丰富的监控KialiGrafanaJaeger

9次阅读

共计 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 给咱们提供了很多有用的个性,光监控方面就十分丰盛,更多细节咱们后续再探讨吧。

正文完
 0