eBPF Cilium实战(2) - 底层网络可观测性
2022-04-11 15:14
876 查看
在之前的平台中,对于组件之间的网络流向不具备直接的可观测性,用户组件间通信出现问题,只能通过传统命令行工具进行手动排查,而 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
相关文章推荐
- 【实战】从网络地址上下载图片
- 网管实战:层层深入探究网络连接丢包之谜
- 【备忘】2017年最新Python网络爬虫实战案例视频教程下载 共5章 34课
- Python大型网络爬虫项目开发实战
- 腾达tenda无线路由器网络拓展wds功能实战配置手册
- Python tensorflow实战3.神经网络 - 理解到底什么是神经网络,编程原理
- 2使用Python语言和Numpy库来构建神经网络模型-波士顿房价预测任务实战案例(百度架构师手把手带你零基础实践深度学习原版笔记系列)
- 【网络】内网穿透工具的原理与开发实战
- 【备忘】传智播客黑马P2P金融项目网络借贷平台开发实战教程
- 高级网络综合实战架构案例
- Python实战:网络爬虫都能干什么?
- 【0基础Python学习笔记02】-基础知识-网络底层基础
- 征稿,网络安全实战类文章
- Python爬虫实战三之实现山东大学无线网络掉线自动重连
- Batch Normalization--全连接神经网络和卷积神经网络实战
- 社交网络50条:想学“杜蕾斯”?看微博实战经
- 基于LSTM及其变种网络的时序数据建模实战教程
- 网络连接底层工具类,执行get和post请求(用于在一个项目中去对另外项目发出请求)
- Android实战 Jsoup实现网络爬虫,糗事百科项目的起步
- Socket网络编程进阶与实战(目前最新)