- Istio 和 Knative 在 IBM Kubernetes Cluster 上安装完毕。
- Service
hello
已通过 Knative pipeline 正确安装。
一, 验证 Knative 监控工具(Prometheus 和 Grafana)已正确安装
在CloudShell中输入命令:
kubectl get pods --namespace knative-monitoring
期待输出:
NAME READY STATUS RESTARTS AGE
elasticsearch-logging-0 1/1 Running 0 13h
elasticsearch-logging-1 1/1 Running 0 13h
grafana-69bdcb4686-2x9wd 1/1 Running 0 13h
kibana-logging-8587dcbb89-pk428 1/1 Running 0 13h
prometheus-system-0 1/1 Running 0 13h
prometheus-system-1 1/1 Running 0 13h
在CloudShell中输入命令:
kubectl get services --namespace knative-monitoring
期待输出:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
elasticsearch-logging ClusterIP 172.21.121.125 <none> 9200/TCP 13h
fluentd-ds ClusterIP 172.21.99.72 <none> 24224/TCP,24224/UDP 13h
grafana NodePort 172.21.108.212 <none> 30802:30834/TCP 13h
kibana-logging NodePort 172.21.191.39 <none> 5601:31253/TCP 13h
kube-controller-manager ClusterIP None <none> 10252/TCP 13h
kube-state-metrics ClusterIP None <none> 8443/TCP,9443/TCP 13h
node-exporter ClusterIP None <none> 9100/TCP 13h
prometheus-system-discovery ClusterIP None <none> 9090/TCP 13h
prometheus-system-np NodePort 172.21.98.144 <none> 8080:30132/TCP 13h
一, Prometheus
- 获取 Prometheus 服务实例地址:
使用 CloudShell 时,无法利用本地 localhost 监听 Prometheus 服务实例,我们可以通过 NodeIP:NodePort
的方式直接访问 Prometheus ,输入以下命令获取访问地址:
echo $(kubectl get nodes -o jsonpath='{.items[0].status.addresses[1].address}'):$(kubectl -n knative-monitoring get services prometheus-system-np -ojsonpath='{.spec.ports[0].nodePort}')
期待输出一个地址和端口:
xxx.xxx.xxx.xxx:xxxxx
-
在浏览器中,输入上面的地址和端口,就会打开 Prometheus 工作窗口
-
在 Expression 框中输入
istio_requests_total
, 点击 Execute 按钮,您将在 Graph 或 Console 标签页中观测到最近一段时间内 Kuberneters 系统中所有请求的数量。 -
在 Expression 框中输入
istio_requests_total{destination_service_name=~"hello.*"}
, 点击 Execute 按钮,您将在 Graph 或 Console 标签页中观测到最近一段时间内所有路由到hello
服务的请求数量。
-
另外,您还可以通过Grafana进行监控,或者通过安装 Kiali 以及 Jaeger 工具帮助监测服务。参考 Jaeger 以及 Kiali 了解更多内容。
恭喜您,您已经完成了全部实验的内容。