OpenShift 4 - 多云管理(2) - 配置多集群观察功能

news2024/12/18 14:43:09

《OpenShift / RHEL / DevSecOps 汇总目录》
本文在 OpenShift 4.17 + RHACM 2.12 环境中进行验证。

文章目录

  • 多集群观察技术架构
  • 安装多集群观察功能
  • 监控多集群的运行状态
  • 监控多集群的应用运行
    • 在被管集群监控应用运行
    • 在管理集群监控被管集群的应用运行
  • 参考

多集群观察技术架构

RHACM 可以集中监控被管 OpenShift 集群的运行情况,这是主要通过运行在 RHACM Hub 上的 Multicluster Observability Operator 实现的。如下图,RHACM Hub 通过 Observatorium API Gateway 从被管集群的 Metrics-Collector 获取观察数据后再通过 Thanos 保存到 S3 对象存储中,并通过 Grafana 进行数据展示。
在这里插入图片描述

安装多集群观察功能

以下示例将使用 minio 来存储观察数据:

  1. 在运行 ACM 的集群执行命令安装 minio 环境。注意:在 multicluster-observability-operator/examples/minio/minio-pvc.yaml 中使用了名为 gp2 的 StorageClass 创建文件类型 PVC,可以更换当前集群中可用的 StorageClass。
$ oc new-project open-cluster-management-observability
$ git clone https://github.com/liuxiaoyu-git/multicluster-observability-operator.git
$ oc apply -k multicluster-observability-operator/examples/minio/ -n open-cluster-management-observability
  1. 执行命令可以查看为 thanos 提供的 S3 存储访问方式。
$ oc extract secret/thanos-object-storage --to=- -n open-cluster-management-observability
# thanos.yaml
type: s3
config:
  bucket: "thanos"
  endpoint: "minio:9000"
  insecure: true
  access_key: "minio"
  secret_key: "minio123"
  1. 执行命令在 RHACM Hub 中安装“观察”功能。注意:在 multiclusterobservability.yaml 中使用了名为 gp2 的 StorageClass 创建文件类型 PVC,可以更换当前集群中可用的 StorageClass。
$ oc apply -f https://raw.githubusercontent.com/liuxiaoyu-git/rhacm-workshop/master/03.Observability/exercise/multiclusterobservability.yaml -n open-cluster-management-observability
  1. 安装后可以查看在 open-cluster-management-observability 中运行的的 Pod 和部署的资源。
$ oc get pod -n  open-cluster-management-observability
NAME                                                       READY   STATUS    RESTARTS   AGE
endpoint-observability-operator-6678757f7b-ptv9s           1/1     Running   0          8m26s
metrics-collector-deployment-5d77dc68cc-dw55m              1/1     Running   0          8m22s
minio-7cfdffb54b-6knmt                                     1/1     Running   0          33m
observability-alertmanager-0                               4/4     Running   0          8m27s
observability-alertmanager-1                               4/4     Running   0          7m55s
observability-alertmanager-2                               4/4     Running   0          7m23s
observability-grafana-68b8d97758-kvvl5                     3/3     Running   0          8m28s
observability-grafana-68b8d97758-l2m5m                     3/3     Running   0          8m28s
observability-observatorium-api-7d58fc44d9-lqww5           1/1     Running   0          7m50s
observability-observatorium-api-7d58fc44d9-qqshk           1/1     Running   0          7m53s
observability-observatorium-operator-6fc6567b69-7lzd2      1/1     Running   0          8m29s
observability-rbac-query-proxy-64464bcf75-g6tpv            2/2     Running   0          8m27s
observability-rbac-query-proxy-64464bcf75-m2gcb            2/2     Running   0          8m27s
observability-thanos-compact-0                             1/1     Running   0          8m18s
observability-thanos-query-d88f57fb5-5x8q6                 1/1     Running   0          8m18s
observability-thanos-query-d88f57fb5-b947p                 1/1     Running   0          8m18s
observability-thanos-query-frontend-8c97b5775-4st2v        1/1     Running   0          8m18s
observability-thanos-query-frontend-8c97b5775-hgx9b        1/1     Running   0          8m18s
observability-thanos-query-frontend-memcached-0            2/2     Running   0          8m18s
observability-thanos-query-frontend-memcached-1            2/2     Running   0          8m15s
observability-thanos-query-frontend-memcached-2            2/2     Running   0          8m12s
observability-thanos-receive-controller-7d48bcbc66-ndgjx   1/1     Running   0          8m18s
observability-thanos-receive-default-0                     1/1     Running   0          8m18s
observability-thanos-receive-default-1                     1/1     Running   0          7m59s
observability-thanos-receive-default-2                     1/1     Running   0          7m51s
observability-thanos-rule-0                                2/2     Running   0          8m18s
observability-thanos-rule-1                                2/2     Running   0          8m
observability-thanos-rule-2                                2/2     Running   0          7m39s
observability-thanos-store-memcached-0                     2/2     Running   0          8m18s
observability-thanos-store-memcached-1                     2/2     Running   0          8m15s
observability-thanos-store-memcached-2                     2/2     Running   0          8m12s
observability-thanos-store-shard-0-0                       1/1     Running   0          8m18s
observability-thanos-store-shard-1-0                       1/1     Running   0          8m18s
observability-thanos-store-shard-2-0                       1/1     Running   0          8m18s
uwl-metrics-collector-deployment-74f6dbcbdb-4zhxn          1/1     Running   0          8m22s

在这里插入图片描述

  1. 成功部署“观察”后可以在 ACM 控制台的 Clusters 页面中右上方看到 Grafana 链接。
    在这里插入图片描述

监控多集群的运行状态

  1. 进入 Grafana 后可以看到被管集群的运行状态。
    在这里插入图片描述
  2. 进入上图的一个集群,可以查看该集群的运行情况。
    在这里插入图片描述
  3. 查看被管集群,确认在 open-cluster-management-addon-observability 项目中有以下 Pod 运行。
$ oc get pod -n open-cluster-management-addon-observability
NAME                                               READY   STATUS    RESTARTS   AGE
endpoint-observability-operator-795464bd6c-8qrr8   1/1     Running   0          75m
metrics-collector-deployment-dfc647-lsgqt          1/1     Running   0          75m
  1. 进入 Grafana 的 Dashborads,可以看到下图显示的预制仪表盘。可进入这些仪表盘查看。
    在这里插入图片描述
  2. 在管理集群中执行以下命令,将 observability-thanos-query-frontend 服务暴露为 Route,然后用浏览器打开 Route 地址。
$ oc expose svc observability-thanos-query-frontend --name=query-frontend -n open-cluster-management-observability
$ oc get route query-frontend -n open-cluster-management-observability -ojsonpath={.spec.host}
  1. 在 metrics 中可以看到所有可用的查询指标。
  2. 在 Thanos Query 页面中查询 cluster:capacity_cpu_cores:sum 可以看到每个被管集群的 CPU 总量。
    在这里插入图片描述

监控多集群的应用运行

在被管集群监控应用运行

参照《OpenShift 4 - 用 Prometheus 和 Grafana 监视用户应用定制的观测指标(视频)》。

  1. 在被群集群中编辑 cluster-monitoring-config 对象,将 enableUserWorkload 设为 true,主要就可对对用户负载进行监控。
$ oc edit ConfigMap cluster-monitoring-config -n openshift-monitoring
 
apiVersion: v1
kind: ConfigMap
metadata:
  name: cluster-monitoring-config
  namespace: openshift-monitoring
data:
  config.yaml: |
    enableUserWorkload: true
  1. 在被管集群部署测试用的 nginx。
$ git clone https://github.com/liuxiaoyu-git/openshift-demos.git
$ cd openshift-demos/workload-monitoring-for-user-defined-projects
$ oc create -k deploy
  1. 进入控制台的 “观察 -> 指标” 菜单,在指标页面中将 nginx_http_requests_total 填入 “表达式” 中,确认可以查出 nginx 的监控指标。
    在这里插入图片描述

在管理集群监控被管集群的应用运行

  1. 在管理集群中创建名为 observability-metrics-custom-allowlist 的 ConfigMap,其中定义了可以从被管集群中访问的 Metrics。
$ oc apply -n open-cluster-management-observability -f - << EOF
kind: ConfigMap
apiVersion: v1
metadata:
  name: observability-metrics-custom-allowlist
data:
  metrics_list.yaml: |
    names:
      - nginx_http_requests_total
      - nginx_up
      - nginx_connections_active
      - nginx_exporter_build_info
      - nginx_connections_handled
      - nginx_connections_reading
      - nginx_connections_waiting
      - nginx_connections_writing
      - nginx_connections_accepted
EOF
  1. 在 ACM 管理集群的 Grafana 控制台中进入 Metrics 菜单,然后点击 New metrics exploration 按钮。
  2. 然后在 Search metrics 中查找和 nginx 相关的项目。
    在这里插入图片描述
  3. 在上图中的 nginx_http_requests_total 区域点击右侧的 Select。
  4. 可以看到图中的数据已经变为 per-second rate 显示。
    在这里插入图片描述
  5. 可在 Metrics 页面中为显示的监控图增加适当的 Lable。
    在这里插入图片描述
  6. 在 Grafana 控制台中进入 Explore 菜单,在 A 区域的 Metric 中填入 nginx_http_requests_total,然后点击页面右侧的 Run query 按钮。此时会显示 nginx_http_requests_total 的监控图。
    在这里插入图片描述

参考

https://github.com/michaelkotelnikov/rhacm-workshop
https://github.com/wael2000/rh-rhacm-workshop
https://github.com/stolostron/multicluster-observability-operato
https://medium.com/@dlakshma/multi-cluster-observability-with-red-hat-acm-39f6b3cdbbe4
https://docs.google.com/document/d/1mdY6J6Jimsw7A2n7sv9vFjzM2IHD8-Ku9ZNy2iKfgb8/edit?tab=t.0
https://www.redhat.com/en/blog/observability-for-istio-multicluster-service-mesh-in-red-hat-advanced-cluster-management-for-kubernetes
https://www.redhat.com/en/blog/leveraging-netobserv-metrics-red-hat-advanced-cluster-management-kubernetes
https://www.redhat.com/en/blog/observability-across-openshift-cluster-boundaries-with-distributed-data-collection
https://www.redhat.com/en/blog/custom-queries-for-observability-using-grafana-and-apis
https://www.redhat.com/en/blog/your-guide-to-openshift-observability-part-1
https://github.com/liuxiaoyu-git/openshift-demos/blob/master/workload-monitoring-for-user-defined-projects/README.md

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2261641.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AMBA-CHI协议详解(十二)

AMBA-CHI协议详解&#xff08;一&#xff09;- Introduction AMBA-CHI协议详解&#xff08;二&#xff09;- Channel fields / Read transactions AMBA-CHI协议详解&#xff08;三&#xff09;- Write transactions AMBA-CHI协议详解&#xff08;四&#xff09;- Other transac…

【win10+RAGFlow+Ollama】搭建本地大模型助手(教程+源码)

一、RAGFlow简介 RAGFlow是一个基于对文档深入理解的开源RAG&#xff08;Retrieval-augmented Generation&#xff0c;检索增强生成&#xff09;引擎。 主要作用&#xff1a; 让用户创建自有知识库&#xff0c;根据设定的参数对知识库中的文件进行切块处理&#xff0c;用户向大…

Android中坐标体系知识超详细讲解

说来说去都不如画图示意简单易懂啊&#xff01;&#xff01;&#xff01;真是的&#xff01; 来吧先上张图&#xff01; &#xff08;一&#xff09;首先明确一下android 中的坐标系统&#xff1a; 屏幕的左上角是坐标系统原点&#xff08;0,0&#xff09; 原点向右延伸是X轴正…

IO的进阶

目录 1. 字符流转向字节流的桥梁1.1 OutputStreamWriter1.2 InputStreamReader1.3 编码与解码1.4 常见编码方式1.5 编码与解码的注意事项 2.Properties2.1概述2.2 Properties 的常用方法2.3 Properties 的应用场景2.4 实例 3.序列化3.1 ObjectOutputStream 4.字符编码4.1 ASCII…

【计算机网络】期末考试预习复习|中

作业讲解 转发器、网桥、路由器和网关(4-6) 作为中间设备&#xff0c;转发器、网桥、路由器和网关有何区别&#xff1f; (1) 物理层使用的中间设备叫做转发器(repeater)。 (2) 数据链路层使用的中间设备叫做网桥或桥接器(bridge)。 (3) 网络层使用的中间设备叫做路…

Edge Scdn用起来怎么样?

Edge Scdn&#xff1a;提升网站安全与性能的最佳选择 在当今互联网高速发展的时代&#xff0c;各种网络攻击层出不穷&#xff0c;特别是针对网站的DDoS攻击威胁&#xff0c;几乎每个行业都可能成为目标。为了确保网站的安全性与稳定性&#xff0c;越来越多的企业开始关注Edge …

UE4_控件蓝图_制作3D生命血条

一&#xff1a;效果图如下&#xff1a; 二、实现步骤&#xff1a; 1、新建敌人 右键蓝图类 选择角色&#xff0c; 重命名为BP_Enemytest。 双击打开&#xff0c;配置敌人网格体 修改位置及朝向 效果如下&#xff1a; 选择合适的动画蓝图类&#xff1a; 人物就有了动作&#x…

厦门凯酷全科技有限公司引领电商营销新风尚

在当今数字化经济快速发展的背景下&#xff0c;抖音作为领先的短视频和直播平台&#xff0c;已成为品牌推广和产品销售的重要渠道。厦门凯酷全科技有限公司&#xff08;以下简称“凯酷全”&#xff09;凭借其专业的团队和丰富的经验&#xff0c;专注于为客户提供高质量的抖音电…

高扬程潜水泵:大流量与高效率的完美结合|深圳鼎跃

洪水是由暴雨、风暴潮等等自然因素引起的江河湖海水量迅速增加或水位迅猛上涨的水流现象。一旦发生洪水事件&#xff0c;会侵袭河道沿岸的城市、农田等场景&#xff0c;在低洼地区容易形成积水&#xff0c;不仅影响人们的生活&#xff0c;还存在一定的安全风险。 高扬程潜水泵是…

神经网络基础-神经网络搭建和参数计算

文章目录 1.构建神经网络2. 神经网络的优缺点 1.构建神经网络 在 pytorch 中定义深度神经网络其实就是层堆叠的过程&#xff0c;继承自nn.Module&#xff0c;实现两个方法&#xff1a; __init__方法中定义网络中的层结构&#xff0c;主要是全连接层&#xff0c;并进行初始化。…

web网页前后端交互方式

参考该文&#xff0c; 一、前端通过表单<form>向后端发送数据 前端是通过html中的<form>表单&#xff0c;设置method属性定义发送表单数据的方式是get还是post。 如使用get方式&#xff0c;则提交的数据会在url中显示&#xff1b;如使用post方式&#xff0c;提交…

Mac配置 Node镜像源的时候报错解决办法

在Mac电脑中配置国内镜像源的时候报错,提示权限问题,无法写入配置文件。本文提供解决方法,青测有效。 一、原因分析 遇到的错误是由于 .npm 目录下的文件被 root 用户所拥有,导致当前用户无法写入相关配置文件。 二、解决办法 在终端输入以下命令,输入管理员密码即可。 su…

Linux实操篇-远程登录/Vim/开机重启

目录 传送门前言一、远程登录1、概念2、ifconfig3、实战3.1、SSH&#xff08;Secure Shell&#xff09;3.2、VNC&#xff08;Virtual Network Computing&#xff09;3.3、RDP&#xff08;Remote Desktop Protocol&#xff09;3.4、Telnet&#xff08;不推荐&#xff09;3.5、FT…

【C/C++进阶】CMake学习笔记

本篇文章包含的内容 一、CMake简介二、使用CMake构建工程2.1 一个最简单的CMake脚本2.2 使用变量和宏2.3 文件搜索 三、使用CMake制作和使用库文件3.1 静态库和动态库3.2 字符串操作3.3 CMake制作库文件3.4 CMake使用库文件3.4.1 使用link_libraries链接3.4.2 使用target_link_…

JS 生成防篡改水印

网页中有水印的需求&#xff0c;今天我们实现手写一个防篡改水印&#xff0c;先看下效果图&#xff1a; 一、创建class函数 传递一个dom为水印包裹器&#xff0c;有一些监听防篡改的observer&#xff0c;然后实例化的时候创建水印&#xff0c;执行create()方法 class WaterMa…

概率论得学习和整理26:EXCEL 关于plot 折线图--频度折线图的一些细节

目录 0 折线图有很多 1 频度折线图 1.1 直接用原始数据做的频度折线图 2 将原始数据生成数据透视表 3 这样可以做出了&#xff0c;频度plot 4 做按某字段汇总&#xff0c;成为累计plot分布 5 修改上面显示效果&#xff0c;做成百分比累计plot频度分布 0 折线图有很多 这…

实现echart大屏动画效果及全屏布局错乱解决方式

如何实现echarts动画效果?如何实现表格或多个垂直布局的柱状图自动滚动效果?如何解决tooltip位置超出屏幕问题,如何解决legend文字过长,布局错乱问题?如何处理饼图的中心图片永远居中? 本文将主要解决以上问题,如有错漏,请指正. 一、大屏动画效果 这里的动画效果主要指&…

pytest入门九:feature

fixture是pytest特有的功能&#xff0c;用以在测试执行前和执行后进行必要的准备和清理工作。使用pytest.fixture标识&#xff0c;定义在函数前面。在你编写测试函数的时候&#xff0c;你可以将此函数名称做为传入参数&#xff0c;pytest将会以依赖注入方式&#xff0c;将该函数…

C# 中的闭包

文章目录 前言一、闭包的基本概念二、匿名函数中的闭包1、定义和使用匿名函数2、匿名函数捕获外部变量3、闭包的生命周期 三、Lambda 表达式中的闭包1、定义和使用 Lambda 表达式2、Lambda 表达式捕获外部变量3、闭包的作用域 四、闭包的应用场景1、事件处理2、异步编程3、迭代…

ChatGPT客户端安装教程(附下载链接)

用惯了各类AI的我们发现每天打开网页还挺不习惯和麻烦&#xff0c;突然发现客户端上架了&#xff0c;懂摸鱼的人都知道这里面的道行有多深&#xff0c;话不多说&#xff0c;开整&#xff01; 以下是ChatGPT客户端的详细安装教程&#xff0c;适用于Windows和Mac系统&#xff1a…