共计 2479 个字符,预计需要花费 7 分钟才能阅读完成。
在之前的平台中,对于组件之间的网络流向不具备间接的可观测性,用户组件间通信呈现问题,只能通过传统命令行工具进行手动排查,而 cilium 的 Hubble 服务能够提供 UI 界面向用户展现实时的流量状态,同时能够将这些指标裸露给 Prometheus 进行聚合整顿,让用户能够更直观的对底层网络状态进行观测监控。
开启 Hubble UI 服务
cilium 的网络可观测性由 Hubble 服务提供,在装置 cilium 时,默认不会装置 Hubble,能够通过以下命令开启 Hubble 服务
helm upgrade cilium cilium/cilium --version 1.11.2 \
--namespace kube-system \
--reuse-values \
--set hubble.relay.enabled=true \
--set hubble.ui.enabled=true
部署实现后,能够通过以下命令确定状态
$ kubectl get po -n kube-system |grep hubble
hubble-relay-65ff5f9bf6-247pt 1/1 Running 0 5d19h
hubble-ui-5f7cdc86c7-gq5hs 3/3 Running 0 5d19h
$ kubectl get svc -n kube-system | grep hubble
hubble-relay ClusterIP 10.43.73.95 <none> 80/TCP 5d19h
hubble-ui ClusterIP 10.43.20.190 <none> 80/TCP 5d19h
Hubble 部署实现后,集群内部还无奈间接拜访,能够通过以下形式开启对外拜访
-
长期开启
执行命令时能够通过
IP:12000
拜访 UI 界面,退出命令后无奈持续拜访cilium hubble ui
-
长期开启
通过 Rainbond 平台增加第三方组件的形式,随时开启或敞开 UI 界面的拜访入口
Hubble UI 展现信息
拜访主页面
进入须要查看的名称空间,页面中部展现以后的流量拓扑,下部展现流量记录
点击流量记录能够查看详情
点击组件后只展现相干流量
抉择流量记录展现的信息列
抉择展现的流量类型
抉择展现时是否疏忽非凡类型流量
对接 Prometheus 和 Grafana
cilium 提供了部署 Prometheus 和 Grafana 的 yaml 文件,其中蕴含了 Grafana 的模板文件,但 cilium 默认装置的状况下没有凋谢监控指标,所以须要先开启监控指标后再部署 Prometheus 和 Grafana
开启监控指标
helm upgrade cilium cilium/cilium --version 1.11.2 \
--namespace kube-system \
--reuse-values \
--set prometheus.enabled=true \
--set operator.prometheus.enabled=true \
--set hubble.enabled=true \
--set hubble.metrics.enabled="{dns,drop,tcp,flow,port-distribution,icmp,http}"
部署 Prometheus 和 Grafana
$ kubectl apply -f https://raw.githubusercontent.com/cilium/cilium/1.11.2/examples/kubernetes/addons/prometheus/monitoring-example.yaml
namespace/cilium-monitoring created
serviceaccount/prometheus-k8s created
configmap/grafana-config created
configmap/grafana-cilium-dashboard created
configmap/grafana-cilium-operator-dashboard created
configmap/grafana-hubble-dashboard created
configmap/prometheus created
clusterrole.rbac.authorization.k8s.io/prometheus unchanged
clusterrolebinding.rbac.authorization.k8s.io/prometheus unchanged
service/grafana created
service/prometheus created
deployment.apps/grafana created
deployment.apps/prometheus created
确认运行状态
$ kubectl get po -n cilium-monitoring
NAME READY STATUS RESTARTS AGE
grafana-d69c97b9b-5ztrj 1/1 Running 0 5d20h
prometheus-655fb888d7-456n4 1/1 Running 0 5d20h
$ kubectl get svc -n cilium-monitoring
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
grafana ClusterIP 10.43.230.15 <none> 3000/TCP 5d20h
prometheus ClusterIP 10.43.219.180 <none> 9090/TCP 5d20h
开启对外拜访
-
长期开启
kubectl -n cilium-monitoring port-forward service/grafana --address 0.0.0.0 --address :: 3000:3000 kubectl -n cilium-monitoring port-forward service/prometheus --address 0.0.0.0 --address :: 9090:9090
-
长期开启
Grafana 展现信息
Cilium Metrics
Cilium Operator
Hubble