OpenShift 集群部署 Network Observability Operator 对网络流量进行监控观测


风晓
风晓 2024-01-23 12:25:53 52180 赞同 0 反对 0
分类: 资源
OpenShift 集群部署 Network Observability Operator 对网络流量进行监控观测

1. Network Observability Operator 介绍及架构

Network Observability Operator 使用 eBPF 技术创建网络流。然后,OpenShift Container Platform 信息会增强网络流,并存储在 Loki 中。您可以在 OpenShift Container Platform 控制台中查看和分析所存储的 netflow 信息,以进一步洞察和故障排除。

Network Observability 的核心功能是收集集群中的网络流,然后用可视化方式呈现出来。Network Observability Operator 可以对 OpenShift 的 pod、Deployment、DeploymentConfig、StatefulSet、CronJobs、Jobs、DemonSet、ReplicaSet、Route、Service 资源的网络流量进行监控。

 

相关组件和架构

2. 安装相关组件

所需安装的组件 OperatorHub 均有提供,直接安装即可。

Network Observability Operator。

Loki Operator。FLP处理完的网络数据是通过 Loki 保存在对象存储中,最后在 OpenShift 的 Web Console 中展现出来。

OpenShift Data Foundation。Loki 需要配置对象存储,Loki 支持的日志存储 AWS S3, Google Cloud Storage, Azure, Swift, Minio, ,此次部署采用OpenShift Data Foundation来提供存储服务。

Local Storage Operator。作为 OpenShift Data Foundation 的依赖安装。

2.1 创建 StorageSystem

以上Operator 安装完成后

1. 在集群控制台中,点 Operators → 安装的Operators 查看所有已安装的 Operator。

确保所选 项目 为 openshift-storage。

2. 单击OpenShift Data Foundation 所提供的的 Api 一栏,然后单击 创建StorageSystem。

3. 在 创建StorageSystem 页面中,执行以下操作:

① 为 部署类型 选项选择 Full Deployment 。

② 选择 使用本地设备创建新存储类 选项。

③ 点 下一个。

如果还没有安装Local Storage Operator,系统会提示您安装 Local Storage Operator。

4. 在 Create local volume set 页面中,提供以下信息:

① 为 LocalVolumeSet 和 存储类 输入一个名称。

默认情况下,存储类名称会出现本地卷集名称。您可以更改名称。

② 任选以下一项:

所有节点上的磁盘:使用与所有节点上所选过滤器匹配的可用磁盘。

所选节点上的磁盘:仅在所选节点上使用与所选过滤器匹配的可用磁盘。

③ 点 下一个。

此时会显示一个用于确认创建 LocalVolumeSet 的弹出窗口。

④ 单击 Yes 以继续。

在 安全和网络 页面中本次略过没有配置

5. 在 查看并创建 页面中,检查配置详情。

若要修改任何配置设置,请单击 前一个 以返回到上一配置页面。

6. 单击 创建StorageClass

最后安装完成后效果如下,以有雀(统信容器云管理平台)为例:

2.2 创建 s3 存储 secrect

1. 将视角切换为开发者视角

2. 选择 拓扑

3. 将项目切换为 Openshift-storage

4. 在搜索栏中键入noobaa-core

5. 点击应用图标右上角链接,访问noobaa

6. 进入到登录界面

 

7. 在管理员视角中访问工作负载

8. 选择 Secret

9. 确保项目为 Openshift-storage

10. 在过滤器中搜索 noobaa-admin

11. 点击链接进去详情界面

12. 下拉滑轮并点击显示值

13. 获取登录noobaa所需要的email地址和密码

14. 登录noobaa后进入概述界面并点击Connect Application

 

15. 将Cluster External Name 和Access Key ,Secret Key记录下来

创建 项目 netobserv 并在项目下创建 s3 secrect

示例如下:

apiVersion: v1
kind: Secret
metadata:
  name: loki-s3
  namespace: netobserv   
stringData:
  access_key_id: <accsess-key> 
  access_key_secret: <access-key-secret>
  bucketnames: s3-bucket-name
  endpoint: <Cluster external Name>
  region: eu-central-1

其中access_key_id , access_key_secret 和 bucketnames的值 与Noobaa页面获取的Access Key Secret Key Cluster External Name一一对应。

2.3 创建 LokiStack

1. 进入到 Operators → 安装的 Operators,从 项目 下拉菜单查看所有项目。

2. 查找 Loki Operator。在详情的 提供的APIs 下,选择 LokiStack。

3. 点 创建 LokiStack。

1) 设置名称为 loki(本次测试默认创建lokistack的名称为loki)

2) 设置LokiStack Size

3) 选择Object Storage的Secret为创建的secret

4) 选择Object Storage Secret Type的类型为s3

5) 选择任意 Storage Class Name

6) Mode 为Openshift-network

4. 等待lokiStack状态为Ready

2.4 配置授权

定义 ClusterRole 和 ClusterRoleBinding。netobserv-reader ClusterRole 启用多租户,并允许单独的用户访问或组访问 Loki 中的流。您可以创建一个 YAML 文件来定义这些角色。

1. 使用 Web 控制台,点 Import 图标 +。

2. 将 YAML 文件放到编辑器中,然后点 Create :

ClusterRole 读取器 yaml 示例

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: netobserv-reader    ①
rules:
- apiGroups:
  - 'loki.grafana.com'
  resources:
  - network
  resourceNames:
  - logs
  verbs:
  - 'get'

①此角色可用于多租户。

ClusterRole writer yaml 示例

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: netobserv-writer
rules:
- apiGroups:
  - 'loki.grafana.com'
  resources:
  - network
  resourceNames:
  - logs
  verbs:
  - 'create'

ClusterRoleBinding yaml 示例

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: netobserv-writer-flp
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: netobserv-writer
subjects:
- kind: ServiceAccount
  name: flowlogs-pipeline    ①
  namespace: netobserv
- kind: ServiceAccount
  name: flowlogs-pipeline-transformer
  namespace: netobserv

①flowlogs-pipeline 写入 Loki。如果使用 Kafka,这个值为 flowlogs-pipeline-transformer。

在 Network Observability 中启用多租户,运行以下命令,授权 user1 的读权限:

$ oc adm policy add-cluster-role-to-user netobserv-reader user1

2.5 创建Flow Collector

1. 确保在netobserv项目下(和Lokistack在同一项目下)。

2. 导航到 Operators → 安装的 Operators。在 提供的APIs 下, 选择 Flow Collector 链接。

3. 进入 Flow Collector 选项卡,然后点 创建 FlowCollector。在表单视图中进行以下选择:

1) spec.agent.ebpf.Sampling :指定流的抽样大小。较低的抽样大小会对资源利用率造成负面影响。

 

 

spec.loki.url :由于身份验证被单独指定,此 URL 需要更新loki-gateway-http.netobserv.svc:8080。URL 的第一个部分"loki"必须与 LokiStack 的名称匹配。

spec.loki.authToken: 选择 FORWARD 值。

 

spec.loki.statusUrl :将其设置为 loki-query-frontend-http.netobserv.svc:3100。URL 的第一个部分"loki"必须与 LokiStack 的名称匹配。

 

spec.loki.tls.enable: 选择启用 TLS 的复选框。

loki 的 tenantID 为network

spec.loki.statusTls: enable 值为 false。对于证书引用名称的第一部分: loki-gateway-ca-bundle、loki-ca-bundle 和 loki-query-frontend-http、loki 必须与 LokiStack 的名称匹配。

等待 FlowCollectors状态为Ready后 刷新 web 页面

在观察--->网络流量 页面可以观察到应用程序的流量。

如下:

如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!

评价 0 条
风晓L1
粉丝 1 资源 2038 + 关注 私信
最近热门资源
银河麒麟桌面操作系统备份用户数据  127
统信桌面专业版【全盘安装UOS系统】介绍  122
银河麒麟桌面操作系统安装佳能打印机驱动方法  114
银河麒麟桌面操作系统 V10-SP1用户密码修改  105
最近下载排行榜
银河麒麟桌面操作系统备份用户数据 0
统信桌面专业版【全盘安装UOS系统】介绍 0
银河麒麟桌面操作系统安装佳能打印机驱动方法 0
银河麒麟桌面操作系统 V10-SP1用户密码修改 0
作者收入月榜
1

prtyaa 收益393.62元

2

zlj141319 收益218元

3

1843880570 收益214.2元

4

IT-feng 收益209.03元

5

风晓 收益208.24元

6

777 收益172.71元

7

Fhawking 收益106.6元

8

信创来了 收益105.84元

9

克里斯蒂亚诺诺 收益91.08元

10

技术-小陈 收益79.5元

请使用微信扫码

加入交流群

请使用微信扫一扫!