当前位置:网站首页>eBPF Cilium实战(2) - 底层网络可观测性
eBPF Cilium实战(2) - 底层网络可观测性
2022-07-01 05:07:00 【好雨云帮】
在之前的平台中,对于组件之间的网络流向不具备直接的可观测性,用户组件间通信出现问题,只能通过传统命令行工具进行手动排查,而 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 hubblehubble-relay-65ff5f9bf6-247pt 1/1 Running 0 5d19hhubble-ui-5f7cdc86c7-gq5hs 3/3 Running 0 5d19h$ kubectl get svc -n kube-system | grep hubblehubble-relay ClusterIP 10.43.73.95 <none> 80/TCP 5d19hhubble-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.yamlnamespace/cilium-monitoring createdserviceaccount/prometheus-k8s createdconfigmap/grafana-config createdconfigmap/grafana-cilium-dashboard createdconfigmap/grafana-cilium-operator-dashboard createdconfigmap/grafana-hubble-dashboard createdconfigmap/prometheus createdclusterrole.rbac.authorization.k8s.io/prometheus unchangedclusterrolebinding.rbac.authorization.k8s.io/prometheus unchangedservice/grafana createdservice/prometheus createddeployment.apps/grafana createddeployment.apps/prometheus created
确认运行状态
$ kubectl get po -n cilium-monitoringNAME READY STATUS RESTARTS AGEgrafana-d69c97b9b-5ztrj 1/1 Running 0 5d20hprometheus-655fb888d7-456n4 1/1 Running 0 5d20h$ kubectl get svc -n cilium-monitoringNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEgrafana ClusterIP 10.43.230.15 <none> 3000/TCP 5d20hprometheus ClusterIP 10.43.219.180 <none> 9090/TCP 5d20h
开启对外访问
临时开启
kubectl -n cilium-monitoring port-forward service/grafana --address 0.0.0.0 --address :: 3000:3000kubectl -n cilium-monitoring port-forward service/prometheus --address 0.0.0.0 --address :: 9090:9090
长期开启
Grafana 展示信息
Cilium Metrics
Cilium Operator
Hubble
边栏推荐
- Some common commands of podman
- 1076 Forwards on Weibo
- Explanation of characteristics of hydraulic slip ring
- 复制宝贝提示材质不能为空,如何解决?
- Global and Chinese market of broadband amplifiers 2022-2028: Research Report on technology, participants, trends, market size and share
- STM32 photoresistor sensor & two channel AD acquisition
- Pytoch (III) -- function optimization
- Fitness without equipment
- 【暑期每日一题】洛谷 P2637 第一次,第二次,成交!
- Solution: drag the Xib control to the code file, and an error setvalue:forundefined key:this class is not key value coding compliant for the key is reported
猜你喜欢
Intelligent operation and maintenance: visual management system based on BIM Technology
AssertionError assert I.ndim == 4 and I.shape[1] == 3
分布式-总结列表
How to select conductive slip ring material
Implementation of distributed lock
Basic skeleton of neural network nn Use of moudle
Spanner 论文小结
解决:Thread 1:[<*>setValue:forUndefinedKey]:this class is not key value coding-compliant for the key *
STM32 photoresistor sensor & two channel AD acquisition
Distributed architecture system splitting principles, requirements and microservice splitting steps
随机推荐
导电滑环短路的原因以及应对措施
AcWing 889. 01 sequence satisfying the condition (Cartland number)
Global and Chinese market of protection circuit modules 2022-2028: Research Report on technology, participants, trends, market size and share
Neural networks - use of maximum pooling
解决:拖动xib控件到代码文件中,报错setValue:forUndefinedKey:this class is not key value coding-compliant for the key
What can the points mall Games bring to businesses? How to build a points mall?
[daily question in summer] letter delivery by p1629 postman in Luogu (to be continued...)
AcWing 886. Finding combinatorial number II (pretreatment factorial)
Go learning notes (5) basic types and declarations (4)
How to select conductive slip ring material
The longest increasing subsequence and its optimal solution, total animal weight problem
Pytoch (I) -- basic grammar
FileOutPutStream
複制寶貝提示材質不能為空,如何解决?
Global and Chinese markets of gps/gnss receiver modules 2022-2028: Research Report on technology, participants, trends, market size and share
Neural network convolution layer
Copy baby prompt: material cannot be empty. How to solve it?
Pytoch (IV) -- visual tool visdom
RuntimeError: “max_pool2d“ not implemented for ‘Long‘
Global and Chinese market for kitchen range hoods 2022-2028: Research Report on technology, participants, trends, market size and share