HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

如何利用 Rancher 商店搭建 es 和 beat

  • 2020-05-16
  • 本文字数:3775 字

    阅读完需:约 12 分钟

如何利用Rancher商店搭建es和beat

Rancher 提供了一个 Charts 应用商店(名为 Catalog),让用户可以轻松地重复部署任何应用程序。Rancher 应用商店可以理解为 helm 源或 charts 仓库;启用后,找到自己想要部署的应用,即可直接通过 helm 模板进行部署。在部署的时候,有些问答就是重置默认 key-value 配置的。

配置 Rancher 应用商店

全局启用、配置应用商店


在默认状态下,只开启基于 Library 源的应用商店,这个源由 Rancher 官方维护,稳定性较强。"Helm Stable"由 helm 官方维护,稳定性也不错,但没有针对 Rancher 进行优化;"Helm Incubator"由 helm 社区进行维护,稳定性一般。我们可以都设为 enable 后,进行使用。

项目中启用应用商店


直接点击【Launch】启用,启用后会发现很多应用的 helm 源(如下图)。


添加其他 Charts 仓库

可以添加自己私有 Chart 仓库、以及其他企业的(如阿里、elastic、bitnami)仓库到应用商店;



用户可以根据自己的情况灵活选择【全局、集群、项目】三个范围内的资源。如果添加为项目范围的,只能在此项目中使用此 helm 源(商店);如果使用私有 helm 源,则需要提供用户名和密码。


下面罗列了几个比较重要的 charts 仓库地址:


阿里 charts 仓库:

https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts

bitnami:

https://charts.bitnami.com

elastic :

https://helm.elastic.co


如果您想要添加 elastic helm 源:



在应用商店搜索 elastic,您将会发现有很多 Elastic-Helm 可供选择。



话已至此,接下来开始实战演练。

实 战

利用 Rancher 应用商店搭建 elasticsearch+kibana+apm-server

在 Rancher 应用商店搜索所需应用


首先,在 Rancher 应用商店搜索 efk;然后,我们选择来自 Library,因为这个已经集成了 elasticsearch+kibana+fluent;接着,点击【View Details】,进入配置自定义页面。



您可以指定命名空间,如果不指定就会部署到默认的 efk 中。


选项配置


jvm 也可以根据情况来调整 ,默认的 512 m 已经可以满足需求。如果想要调整到 1g 的话,那么在一台机器上运行多个实例会比较吃力,当然,如果机器性能好,可以适当调大一些。


使用默认镜像选择 false 后,就可以指定镜像,这里面镜像版本相对落后,可以从 elastic 官网镜像https://www.docker.elastic.co/#中获取到当前最新稳定版,然后填写进去(此处镜像名称和 tag 输入框不在一起)。这里不需要 f(luent)就不启用,镜像名称也无需修改。



调整与完善


  • elasticsearch 参数调整


自定义配置完成后点击【Launch】,待镜像都拉取完成后,根据提示继续完善和调整。这里面 elasticsearch 组件默认使用的是空数据,我们如果修改为持久卷的话 ,无论是主机映射,还是持久申明的卷,都要给 777 权限。



在本例中没有搭建存储平台,因此采用了本地 Local Node Path 做的持久卷(和主机目录映射差别不大),由于主机映射的目录只能被 1 个 elasticsearch 使用,所以在 configmap 中,变量 discovery.zen.minimum_master_nodes 此处修改为 1(这样处理之后把 elasticsearch 主机调度到一台机器上即可)。discovery.type = single-node 如果上个参数修改为 1,discovery.zen.ping.unicast.hosts 这个配置在 7.0 版本后已经不建议使用了 ,可以去掉。


若继续使用默认的空数据卷,elasticsearch 单 pod 也可以按照这种方式修改,具体环境变量参数如下图(在 Resources-config maps 中可以找到这些变量)



注:node.data=true 需要添加这个参数以避免多次安装出现的问题


  • kibana 参数调整


首先查看对应镜像版本的说明文档:


https://www.elastic.co/guide/en/kibana/7.1/docker.html#environment-variable-config



然后和 kibana 的 configmaps 中定义环境变量参数进行对比。



若还想调整 es 和 kibana 日志,也可以在环境变量中设置:


  • kibana 的设置:



  • es 设置:


logger.org.elasticsearch.transport warn
复制代码


部署 apm-server


在应用商店搜索:apm-server,进入查看详情的页面,然后把此应用指定到和 efk 应用同一个命名空间里。


  • apm-server 配置文件和环境变量的调整


到 secrets(有的是 config map)进行配置, 有个名称为 apm-server.yml 的 key,其 value 按照下图修改,把数据写入文件的配置改为写入到 elasticsearch 中。



另外,需要在环境变量中加入两个参数:



因为这是从应用商店安装的 apm-server,默认把数据存到 file,前面修改了输出为 elasticsearch,这里再把输入到文件设为 false(手动部署不需要进行此项操作,应用商店的需要检查一下)。


  • 查看 apm-server,进行验证




然后点击【Launch APM】,即可开始使用。根据页面提示把 apm-agent 嵌入被测应用后,再查看 apm-server 采集到的数据。



若探针采集的数据已经发送,点击进去即可查看详细数据。

手动部署 filebeat+metricbeat+packetbeat 向 es 发送数据

部署 filebeat


这一镜像详情里提供了 Kubernetes 部署的 yaml,稍作修改就可以使用:


https://www.elastic.co/guide/en/beats/filebeat/版本号/running-on-kubernetes.html


下载所需的 yaml 后,修改命名空间到自己制定 ,直接在 Rancher 中部署完成后修改输出 elasticsearch 地址(config maps 中),如果是在环境变量中定义 elasticsearch 地址,那么直接在环境变量中修改即可,这个视情况而定。


部署 metricbeat


部署 metricbeat 有些复杂,官方提供了(具体下载根据版本情况)Kubernetes 所需的 yaml 文件:


https://www.elastic.co/guide/en/beats/metricbeat/6.6/running-on-kubernetes.html


把官网提供的 yaml 下载下来后,用 Rancher 导入到 kube-system 空间中。会部署两个 metricbeat,一个是 daemonset,一个是 deployment,deployment 可以暂停。如果没有 kube-state-metrics 组件,因为此前设定了依赖关系,也会自动部署一个。


然后修改配置文件 config-map :


第一个配置文件 metricbeat.yml:设置抓取的信息要输入到正确的 elasticsearch 和 kibana 中。



或 es 输入直接设置为:


output.elasticsearch.hosts: ['${ELASTICSEARCH_HOST}']
复制代码


把多余的变量删除掉,直接把 ELASTICSEARCH_HOST 在环境变量中定义为 http://es_ip:port


第二个配置文件 kubernetes.yml:



需注意,第一个 hosts: [“localhost:10255”] 修改为 hosts: [“https://${HOSTNAME}:10250”]


参照:


https://www.elastic.co/guide/en/beats/metricbeat/current/running-on-kubernetes.html红帽的配置方法


然后,把/etc/kubernetes/ssl/certs/serverca、/etc/kubernetes/ssl/kube-node.pem 和/etc/kubernetes/ssl/kube-node-key.pem 在工作负载界面通过主机映射挂载进去即可 (如果没有这些证书文件,则无法从相关接口获取数据,这些文件都是用于鉴权的)。


最后在环境变量中把正确的 es 地址信息填写进去即可完成。


部署 kube-state-metrics


如上图所用到 kube-state-metrics 的数据,会自动部署;但如果 kube-state-metrics 没有部署成功,后者提供的镜像有问题该如何解决呢?


我们可以从https://github.com/kubernetes/kube-state-metrics/blob/master/kubernetes/kube-state-metrics-deployment.yaml 找到正确的镜像文件名称,对照修改镜像名称为:quay.io/coreos/kube-state-metrics:v1.5.0 即可完成部署(现在可能为 1.6 版本)。这一地址也有部署需要的各种 yaml 文件,但需要注意不同的版本。


我们把 kube-state-metrics-service.yaml、kube-state-metrics-service-account.yaml、kube-state-metrics-deployment.yaml 等所有 yaml 文件下载下来,先导入 SA(service-account)类的 yaml,剩下的 yaml 再逐个导入。由于 master 版本无法确定具体的版本,建议选用 release 中的具体版本,再通过 Rancher 把这些 yaml 导入到系统空间"kube-system"。


yaml 文件里面所包含的多个镜像仓库是谷歌的,如果您无法“科学上网”,可以换成其他公司的同名镜像:如,image: k8s.gcr.io/addon-resizer:1.8.3,也可以在 dockerhub 上搜到其他公司提供的 image: siriuszg/addon-resizer:1.8.4,笔者没有搜索到 1.8.3 就选用更高版本,1.8.4,一般原则是相同版本,然后选择 dockerhub 排名较高的镜像。


  • 部署完成后,把 kube-state-metrics 的 8080 端口映射出来,我们通过浏览器访问进行验证:

  • 访问 kube-state-metrics 页面会显示健康 “/health” 相关指标。

  • 最终采集到的数据在 kibana 呈现验证:



部署:packetbeat


这一操作相对简单,官方提供了 Docker 的部署方式,您对照参数部署到 Rancher 即可:


https://www.elastic.co/guide/en/beats/packetbeat/current/load-kibana-dashboards.html



另外,还要增加–strict.perms=false -e -E output.elasticsearch.hosts=ip:port 使数据发送到之前搭建的 es 里。


–net=host 在 RancherUI 对应的操作为:在 networking 模块把"Use Host’s Network Namespace"设为真。



packetbeat 是用于采集 host(宿主)机器的数据,如果部署到容器中,有些数据可能抓取不到。解决这一问题,可能需要提权,也可以在 RancherUI 最后配置项"Add Capabilities" 里面把下面两项增加上。



经过多次验证,把如下文件挂载到容器,基本和在 host(宿主)机器上部署 packetbeat 效果一样。



注意

把主机时间也要映射到所有的容器中,避免容器时间不一致导致的一系列问题。


作者简介


陈正林,Rancher 深度爱好者,多年互联网运维从业经验,负责过公司产品容器化项目,是 DevOps 和 CI/CD 践行者。博客地址:https://blog.zhenglin.work


2020-05-16 17:151552

评论

发布
暂无评论
发现更多内容

有人泼冷水:为什么 AI 基础设施创业如此艰难?

小猿姐

创业 AI AI 基础设施

七牛云基于 AV1 的转码系统实践

七牛云

编码器 AOM

PPT插入的图片去哪找?3款自带图库的在线PPT软件推荐!

彭宏豪95

效率工具 职场 PPT 办公软件 AI生成PPT

畜牧业也需要堡垒机吗?为什么?

行云管家

网络安全 等保 堡垒机 畜牧业

为什么我不建议用Excel做进销存系统?

源字节1号

小程序 开源 前端 后端

GPU云服务器:计算型与渲染型的最佳应用场景

Ogcloud

gpu 云服务器 GPU云服务器 云服务器租用

江苏徐州正规等保测评机构有吗?在哪里?

行云管家

等保 等保测评 徐州

如何在FinClip平台使用小程序插件功能?

Geek_2305a8

凤凰项目(Phoenix Project)精要 - 概念

Anliven

读书笔记 团队管理 DevOps 运维 团队效能

实力强劲!云起无垠上榜《数字安全护航技术能力全景图》

云起无垠

开启SRE培训之旅:美高梅(MGM) 启动服务稳定性建设

雅菲奥朗

SRE SRE培训 SRE考试 SRE认证 SRE Foundation

红圈CRM携手金蝶ERP,彻底告别数据孤岛,效率飙升的数字化转型之旅!

聚道云软件连接器

案例分享

神州鲲泰“电网变电站边缘计算解决方案

神州数码

跨平台小程序运行,助力智慧社区场景应用多样化

Geek_2305a8

2024青岛软博会,招展工作顺利进行,诸多知名软件企业踊跃报名

AIOTE智博会

1688 商品详情的 API 接口获取全解析

Noah

一文了解云真机的使用

优测云服务平台

手机 测试 兼容性测试 移动设备识别

创新引领高质量发展,中微公司庆祝科创板上市五周年

新消费日报

淘宝商品评论API返回值中的评分与星级解读

技术冰糖葫芦

API Explorer API 编排 api 货币化 API 文档

如何利用Rancher商店搭建es和beat_文化 & 方法_Rancher_InfoQ精选文章