Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >K8s部署Grafana:OpenLDAP分组授权详解

K8s部署Grafana:OpenLDAP分组授权详解

作者头像
公众号: 云原生生态圈
发布于 2024-03-22 05:53:28
发布于 2024-03-22 05:53:28
48500
代码可运行
举报
文章被收录于专栏:云原生生态圈云原生生态圈
运行总次数:0
代码可运行

作为一名热衷于探索云原生技术的老手,我今天要分享下如何使用openLDAP分组授权Grafana的用户角色。我们将一起在 k8s 集群上部署 Grafana v10.2.2,并通过 Helm、OpenLDAP 认证以及 nginx-ingress 代理来完成这个实验。

背景

在现代的微服务架构中,监控工具对于确保服务的稳定性和性能至关重要。Grafana 提供了丰富的数据可视化功能,支持多种数据源,但它默认的认证机制可能不满足企业级安全要求。OpenLDAP 提供了一种灵活且广泛支持的身份验证解决方案,通过将其与 Grafana 集成,我们可以确保用户访问控制的一致性和安全性。

版本信息

组件

版本号

Grafana

v10.2.2

Kubernetes

v1.26.3

Helm

最新稳定版

Ingress

nginx 1.26

🚀 启程前的准备

在我们开始这段旅程之前,确保你已经安装了 Helm,这是我们航行的指南针。如果你的集群中还没有 Helm,可以参考官方文https://helm.sh/ 进行安装。

📦 配置 Grafana:Helm 的妙用

首先,我们需要添加 Grafana 的 Helm 仓库,这是我们获取 Grafana Helm chart 的起点:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
helm repo add grafana https://grafana.github.io/helm-charts
helm repo update
helm search repo grafana

接下来,我们将使用 Helm 来部署 Grafana。我们会选择版本 7.0.21 的 chart,这是一个稳定且功能丰富的版本,我们先下载 chart 到本地,稍后我们还需要自定义 grafana 的配置文件实现角色绑定。

在使用grafana的时候,使用注销账号会遇到502的问题,因此选择了10.2.2版本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
helm fetch grafana/grafana --version 7.0.21 --untar

🔐 强化认证:OpenLDAP 的配置

为了保证后续 Grafana 配置顺利的使用,我们将配置 OpenLDAP 认证。首先,我们需要准备好 openLDAP 用户组的划分,这样可以基于 openLDAP 不同的组,来实现分配 user 在 grafana 里面拥有不同的角色,这里看下openLdap的分组信息:

配置好 openldap 的分组后,编辑刚刚下载下来的 grafana chart,修改目录中的 values.yaml 文件

  1. 修改 ingress 部分
  1. 修改管理员密码
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# Administrator credentials when not using an existing secret (see below)
adminUser: admin
adminPassword: nicaicai #云原生生态圈管理员密码初始化
  1. 修改 grafana.ini 的基础配置
  1. 启用 ldap 认证
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 auth.ldap:
   enabled: true
   allow_sign_up: true
   config_file: /etc/grafana/ldap.toml
   loglevel: debug
  1. openldap 组与 grafana 权限的绑定
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ldap:
 enabled: true
 # `existingSecret` is a reference to an existing secret containing the ldap configuration
 # for Grafana in a key `ldap-toml`.
 existingSecret: ""
 # `config` is the content of `ldap.toml` that will be stored in the created secret
 config: |-
   verbose_logging = true

   [[servers]]
   host = "openldap.devopsman.cn"
   port = 389
   use_ssl = false
   start_tls = false
   ssl_skip_verify = true
   bind_dn = "cn=ldap,ou=People,dc=openldap,dc=devopsman,dc=com"
   bind_password = "nicaicai"
   timeout = 10
   search_filter = "(uid=%s)"
   search_base_dns = ["ou=people,dc=openldap,dc=devopsman,dc=com"]
   group_search_filter = "(&(objectClass=posixGroup)(memberUid=%s))"
   group_search_base_dns = ["ou=tech,ou=Group,dc=openldap,dc=devopsman,dc=com"]
   group_search_filter_user_attribute = "uid"


   [servers.attributes]
   email = "mail"
   name = "givenName"
   surname = "sn"
   username = "cn"

   [[servers.group_mappings]]
   group_dn = "cn=superadmins,ou=tech,ou=Group,dc=openldap,dc=devopsman,dc=com"
   org_role = "Admin"
   grafana_admin = true # Available in Grafana v5.3 and above
   org_id = 1

   [[servers.group_mappings]]
   group_dn = "cn=admins,ou=tech,ou=Group,dc=openldap,dc=devopsman,dc=com"
   org_role = "Admin"
   org_id = 1

   [[servers.group_mappings]]
   group_dn = "cn=grafana-editor,ou=tech,ou=Group,dc=openldap,dc=devopsman,dc=com"
   org_role = "Editor"
   org_id = 1

   [[servers.group_mappings]]
   group_dn = "*"
   org_role = "Viewer"
   org_id = 1

这里我们就完成 grafana 启用 openLDAP 认证的配置了。

🚀 扬帆起航:安装 Grafana

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
helm upgrade --namespace qa-logging --version 7.0.21 -f ./grafana.values.yaml loki-grafana ./grafana

📝 日志查看

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
helm list -n qa-logging |grep grafana
kubectl logs -n qa-logging -f -l app.kubernetes.io/name=grafana

🌐 通过 nginx-ingress 代理访问 Grafana

前面我们配置了 nginx-ingress,这里解析完成 DNS 之后,就可以直接访问了。顺便验证一下不同的 group_mapping 中的用户权限是否一致,我们在 cn=numbers 组中添加了用户 marionxue, 在 grafana 配置中匹配 到group_dn = "*"了,因此 marionxue 在 grafana 中的身份就是 viewer 权限。

从上图可知,该结果与我们的预期是保持一致的。

🏁 总结

通过上述过程,我们成功地在 Kubernetes 集群中部署了 Grafana,并集成了 OpenLDAP 认证,绑定了openLDAP组与Grafana的角色。实现通过管理openLDAP用户就能统一管理Grafana的认证和平台角色Role,减少了基于OpenLDAP认证的服务的维护复杂度,Jenkins+openLDA集成也是能达到此种效果,非常类似。好了希望这篇文章能够帮助你在你自己的云原生旅程中有所帮助。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-03-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云原生生态圈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Serverless 实战:如何结合 NLP 实现文本摘要和关键词提取?
对文本进行自动摘要的提取和关键词的提取,属于自然语言处理的范畴。提取摘要的一个好处是可以让阅读者通过最少的信息判断出这个文章对自己是否有意义或者价值,是否需要进行更加详细的阅读;而提取关键词的好处是可以让文章与文章之间产生关联,同时也可以让读者通过关键词快速定位到和该关键词相关的文章内容。 文本摘要和关键词提取都可以和传统的 CMS 进行结合,通过对文章 / 新闻等发布功能进行改造,同步提取关键词和摘要,放到 HTML 页面中作为 Description 和 Keyworks。这样做在一定程度上有利于搜索
腾讯云serverless团队
2020/06/06
1.4K0
变身抓重点小能手:机器学习中的文本摘要入门指南 | 资源
基于机器学习的自动文本摘要工具,将一键解放你的双手,化身抓重点小能手,为你捕捉关键,排除冗余。
量子位
2019/05/10
6900
变身抓重点小能手:机器学习中的文本摘要入门指南 | 资源
NLP信息抽取全解析:从命名实体到事件抽取的PyTorch实战指南
随着互联网和社交媒体的飞速发展,我们每天都会接触到大量的非结构化数据,如文本、图片和音频等。这些数据包含了丰富的信息,但也提出了一个重要问题:如何从这些海量数据中提取有用的信息和知识?这就是信息抽取(Information Extraction, IE) 的任务。
TechLead
2023/10/21
5.1K0
NLP信息抽取全解析:从命名实体到事件抽取的PyTorch实战指南
了解AIGC——自然语言处理与生成
近年来,AIGC(AI Generated Content)技术迅猛发展,自然语言处理(Natural Language Processing, NLP)与生成技术的结合,使得机器不仅能够理解人类语言,还能进行文本的创作和生成。这一能力广泛应用于文本创作、对话系统、语言翻译、内容推荐等场景。本文将深入探讨自然语言处理与生成的核心技术、关键模型,以及如何通过代码实现一些重要功能。
hope kc
2024/11/21
2320
循环神经网络教程第二部分-用python,numpy,theano实现一个RNN
作者:徐志强 链接:https://zhuanlan.zhihu.com/p/22289383 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 在本部分,我们将会从头开始用python实现一个完整的循环神经网络,然后hui用Theano(一个可以在GPU上进行运算的库)对实现进行优化。我会跳过一些对理解循环神经网络不是很重要的代码片段,但完整的代码可以在这里找到。
bear_fish
2018/09/19
7400
循环神经网络教程第二部分-用python,numpy,theano实现一个RNN
NLP机器翻译全景:从基本原理到技术实战全解析
机器翻译,作为自然语言处理的一个核心领域,一直都是研究者们关注的焦点。其目标是实现计算机自动将一种语言翻译成另一种语言,而不需要人类的参与。
TechLead
2023/10/21
1.5K0
NLP机器翻译全景:从基本原理到技术实战全解析
多模态大模型篇
在CV方向上,一般我们输入的都是图片,无论这个图片多大,都会resize到一个统一的尺寸。最终经过CNN的提取,变成一个特征向量,那么这个特征向量的维度是一样的。再经过softmax变成一个分类(Class)的概率
算法之名
2023/10/16
9960
多模态大模型篇
NLP 进行文本摘要的三种策略代码实现和对比:TextRank vs Seq2Seq vs BART
来源:Deephub Imba本文约8400字,建议阅读15分钟本文将使用Python实现和对比解释NLP中的3种不同文本摘要策略。 本文将使用 Python 实现和对比解释 NLP中的3种不同文本摘要策略:老式的 TextRank(使用 gensim)、著名的 Seq2Seq(使基于 tensorflow)和最前沿的 BART(使用Transformers )。 NLP(自然语言处理)是人工智能领域,研究计算机与人类语言之间的交互,特别是如何对计算机进行编程以处理和分析大量自然语言数据。最难的 NLP
数据派THU
2022/05/27
8920
NLP 进行文本摘要的三种策略代码实现和对比:TextRank vs Seq2Seq vs BART
文章太长不想看?ML 文本自动摘要了解一下
你是否曾将一篇冗长的文档归纳为一个小的段落?你用了多长时间呢?手动归纳总结耗费时间、枯燥乏味。文本自动摘要可以克服此类难题,帮你轻松归纳出一篇文章的中心思想。
机器之心
2019/07/12
1.5K0
文章太长不想看?ML 文本自动摘要了解一下
自动文本摘要
摘要的主要思想是找到包含整个集合的“信息”的数据子集。这种技术在今天的工业中被广泛使用。搜索引擎就是一个例子;其他的例子包括文档、图像集合和视频的汇总。文档摘要试图通过寻找信息最丰富的句子,对整个文档进行有代表性的总结或抽象,而在图像摘要中,系统会找到最具代表性和最重要的(或最显著的)图像来做代表。对于监控视频,则会从平平无奇的环境中提取出重要的事件。
AI研习社
2018/11/30
1.9K0
自动文本摘要
精品教学案例 | 基于TextRank的新闻摘要(Python实现)
本案例适合作为大数据专业自然语言处理课程的配套教学案例。通过本案例,能够达到以下教学效果:
数据酷客
2020/05/09
2.5K0
精品教学案例 | 基于TextRank的新闻摘要(Python实现)
NLP实战 | BERT文本分类及其魔改(附代码)
每天给你送来NLP技术干货! ---- 写在前面 本文主要介绍了两种文本分类模型:BERT文本分类基础模型,及基于Bert和TextCNN的魔改模型。在作者实际的有关文本分类的工作中取得了F1值超越Bert基础模型近4%的效果。 1. Baseline:Bert文本分类器 Bert模型是Google在2018年10月发布的语言模型,一经问世就横扫NLP领域11项任务的最优结果,可谓风头一时无二。 有关于Bert中transformer的模型细节,我们在此就不赘述了。感兴趣的朋友,可以看看《The Illus
zenRRan
2022/10/10
6.5K0
NLP实战 | BERT文本分类及其魔改(附代码)
对话摘要技术在美团的探索(SIGIR)
总第512篇 2022年 第029篇 随着互联网产生的文本数据越来越多,文本信息过载问题日益严重,对各类文本进行一个“降维”处理显得非常必要,而文本摘要就是其中一个重要的手段。 本文首先介绍了经典的文本摘要方法,随后分析了对话摘要的模型,并分享了美团在真实对话摘要场景中面临的挑战。同时基于实际的场景,本文提出了阅读理解的距离监督Span-Level对话摘要方案(已发表在SIGIR 2021),该方法比强基准方法在ROUGE-L指标和BLEU指标上提升了3%左右。 1. 对话摘要技术背景 2. 文本摘要与对
美团技术团队
2022/05/27
1.1K0
对话摘要技术在美团的探索(SIGIR)
独家 | Python利用深度学习进行文本摘要的综合指南(附教程)
本文介绍了如何利用seq2seq来建立一个文本摘要模型,以及其中的注意力机制。并利用Keras搭建编写了一个完整的模型代码。
数据派THU
2019/07/17
2.4K0
独家 | Python利用深度学习进行文本摘要的综合指南(附教程)
AI 写作(五)核心技术之文本摘要:分类与应用(5/10)
文本摘要在 AI 写作中扮演着至关重要的角色。在当今信息爆炸的时代,人们每天都被大量的文本信息所包围,如何快速有效地获取关键信息成为了一个迫切的需求。文本摘要技术正是为了解决这个问题而诞生的,它能够对长篇文本进行提炼,提取出关键信息,为用户节省时间和精力。
正在走向自律
2024/12/18
3310
AI 写作(五)核心技术之文本摘要:分类与应用(5/10)
基于BERT的中文自动摘要实践指南
我们每天接收的文字信息量已远超人类处理能力。据最新研究,普通职场人日均接触文字信息超过10万字,但有效留存率不足5%。这种信息过载催生了文本摘要技术的蓬勃发展。本文将深入解析如何运用前沿的BERT模型,在JupyterLab环境中搭建智能摘要系统,让机器成为人类认知世界的"信息过滤器"。
不惑
2025/04/18
1530
基于BERT的中文自动摘要实践指南
【论文复现】命名实体识别
命名实体识别(NER)是自然语言处理领域的一个核心任务,它的目标是从文本数据中找出并分类出各种命名实体,这些实体往往指的是特定的名词,比如人名、地理位置名称以及机构或组织名称等。
Eternity._
2024/11/28
3310
【论文复现】命名实体识别
【NLP】文本自动摘要任务的心得总结
由于最近需要进行组内的知识分享,因而借此机会将文本摘要的一些基本知识以及本人的一些实践经验做成文稿,一方面用来组内分享,一方面也是总结一下过去在该领域的一些心得体会。因个人的能力所限,本文实质上是对文本摘要的不完全总结,如有未能囊括的知识点,还请同学们多提意见,一起进步。
yuquanle
2019/11/14
4.4K0
【NLP】文本自动摘要任务的心得总结
[AI学习笔记]工业级知识蒸馏在DeepSeek中的实践:从理论到部署全解析
在当今的人工智能领域,模型的规模和复杂度不断攀升,以追求更高的准确性和性能。然而,大型模型往往伴随着高昂的计算成本、存储需求以及部署难度。知识蒸馏作为一种高效的技术手段,旨在将大型模型(教师模型)的知识迁移到小型模型(学生模型),从而在保持性能的同时,降低模型的复杂度和资源消耗,使其更易于部署和应用。DeepSeek 作为一个在自然语言处理等领域具有广泛影响力的技术项目,面临着如何在保证模型性能的前提下,实现高效部署和资源优化的挑战。因此,将知识蒸馏技术引入 DeepSeek 的实践具有重要的现实意义。
数字扫地僧
2025/03/19
2710
[AI学习笔记]工业级知识蒸馏在DeepSeek中的实践:从理论到部署全解析
从规则到神经网络:机器翻译技术的演化之路
机器翻译(Machine Translation, MT)是人工智能领域的一项关键技术,旨在实现不同语言之间的自动翻译。自从20世纪中叶首次提出以来,机器翻译已从简单的字面翻译演变为今天高度复杂和精准的语义翻译。这项技术的发展不仅彻底改变了全球信息交流的方式,而且对于经济、政治和文化交流产生了深远影响。
TechLead
2023/12/05
1.9K0
从规则到神经网络:机器翻译技术的演化之路
推荐阅读
相关推荐
Serverless 实战:如何结合 NLP 实现文本摘要和关键词提取?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验