ITPub博客

首页 > 云计算 > 开源云工具 > eBPF Cilium实战(2) - 底层网络可观测性

eBPF Cilium实战(2) - 底层网络可观测性

原创 开源云工具 作者:rainbond 时间:2022-04-11 15:12:58 0 删除 编辑



在之前的平台中,对于组件之间的网络流向不具备直接的可观测性,用户组件间通信出现问题,只能通过传统命令行工具进行手动排查,而 cilium 的 Hubble 服务可以提供 UI 界面向用户展示实时的流量状态,同时可以将这些指标暴露给 Prometheus 进行聚合整理,让用户可以更直观的对底层网络状态进行观测监控。


### 开启 Hubble UI 服务


cilium 的网络可观测性由 Hubble 服务提供,在安装 cilium 时,默认不会安装 Hubble ,可以通过以下命令开启 Hubble 服务


```bash

helm upgrade cilium cilium/cilium --version 1.11.2 \

   --namespace kube-system \

   --reuse-values \

   --set hubble.relay.enabled=true \

   --set hubble.ui.enabled=true

```


部署完成后,可以通过以下命令确定状态


```bash

$ 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 界面,退出命令后无法继续访问


  ```bash

  cilium hubble ui

  ```


- 长期开启


  通过 Rainbond 平台添加第三方组件的方式,随时开启或关闭 UI 界面的访问入口


  ![](https://static.goodrain.com/wechat/cilium/2/1.png)


  ![](https://static.goodrain.com/wechat/cilium/2/2.png)


  ![](https://static.goodrain.com/wechat/cilium/2/3.png)


### Hubble UI  展示信息


访问主页面


![](https://static.goodrain.com/wechat/cilium/2/4.png)


进入需要查看的名称空间,页面中部展示当前的流量拓扑,下部展示流量记录


![](https://static.goodrain.com/wechat/cilium/2/5.png)


点击流量记录可以查看详情


![](https://static.goodrain.com/wechat/cilium/2/6.png)


点击组件后只展示相关流量


![](https://static.goodrain.com/wechat/cilium/2/7.png)


选择流量记录展示的信息列


![](https://static.goodrain.com/wechat/cilium/2/8.png)


选择展示的流量类型


![](https://static.goodrain.com/wechat/cilium/2/9.png)


选择展示时是否忽略特殊类型流量


![](https://static.goodrain.com/wechat/cilium/2/10.png)


### 对接 Prometheus 和 Grafana


cilium 提供了部署 Prometheus 和 Grafana 的 yaml 文件,其中包含了 Grafana 的模板文件,但 cilium 默认安装的情况下没有开放监控指标,所以需要先开启监控指标后再部署 Prometheus 和 Grafana


开启监控指标


```bash

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


```bash

$ 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

```


确认运行状态


```bash

$ 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

```


开启对外访问


- 临时开启


  ```bash

  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

  ```


- 长期开启


  ![](https://static.goodrain.com/wechat/cilium/2/11.png)


  ![](https://static.goodrain.com/wechat/cilium/2/12.png)


  ![](https://static.goodrain.com/wechat/cilium/2/13.png)


  ![](https://static.goodrain.com/wechat/cilium/2/14.png)


Grafana 展示信息


Cilium Metrics


![](https://static.goodrain.com/wechat/cilium/2/15.png)


Cilium Operator


![](https://static.goodrain.com/wechat/cilium/2/16.png)


Hubble


![](https://static.goodrain.com/wechat/cilium/2/17.png)


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70008902/viewspace-2886504/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
不用懂 Kubernetes 的云原生应用管理平台

注册时间:2021-10-22

  • 博文量
    91
  • 访问量
    50175