rancher应用商店的使用

​ 应用商店可以理解为helm源或charts仓库;启用后,找到自己要部署的应用,直接通过helm模板进行部署。在部署的时候 有些问答就是重置默认key-value配置的。
图片能正常显示原版博客地址:https://blog.zhenglin.work/k8s/use_appstore_deploy_es_in_rancher.html

配置应用商店

全局启用、配置应用商店

[外链图片转存失败(img-i6DraPNw-1562831427263)(images/1562745039456.png)]

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

项目中启用应用商店

[外链图片转存失败(img-UTinUf5N-1562831427264)(images/1562745477976.png)]

直接点击Launch,进行启用,启用后,会发现很多应用的helm源

[外链图片转存失败(img-peuojQwH-1562831427265)(images/1562745653067.png)]

添加其他charts仓库

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

[外链图片转存失败(img-MQhsvzdV-1562831427265)(images/1562745816919.png)]

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

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

阿里charts仓库         https://kubernetes.oss-cn-hangzhou.aliyuncs.com/chartsbitnami        https://charts.bitnami.comelastic        <https://helm.elastic.co

如添加elastic helm源

[外链图片转存失败(img-b6nTd4QO-1562831427266)(images/1562753410145.png)]

应用商店搜索elastic

[外链图片转存失败(img-YdhLL03R-1562831427267)(images/1562753471447.png)]

发现有很多Elastic-Helm提供的。

说了这么多,接下来真正的实战。

实战

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

应用商店搜索所需应用

rancher应用商店 搜索efk;我们选择来自Library,这个已经集成了elasticsearch+kibana+fluent;点击View Details,进入配置自定义页面。

[外链图片转存失败(img-m1x3SDRj-1562831427267)(images/1562753922779.png)]

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

选项配置:

jvm也可以根据情况来调整 ,默认512 m,就可以;调整1g的话,如果运行多个实例在一台机器 较吃力,如果机器性能好,可以适当调整大一些。使用默认镜像选择false后,就可以指定镜像,这里面镜像版本相对落后,从elastic官网镜像https://www.docker.elastic.co/#获取到当前最新稳定版,然后填写进去(这里镜像名称和tag输入框不在一起)。 这里不需要f(luent),就不启用,镜像名称也无需修改了。

[外链图片转存失败(img-EYvBli1d-1562831427268)(images/1562754255877.png)]

调整与完善

elasticsearch参数调整

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

[外链图片转存失败(img-GY003Tz2-1562831427268)(images/1562767686883.png)]

我这里没有搭建存储平台,就采用了本地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中可以找到这些变量)

[外链图片转存失败(img-XmYIj95x-1562831427268)(images/1562768049143.png)]

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

kibana参数调整

首先查看对应镜像版本,说明文档https://www.elastic.co/guide/en/kibana/7.1/docker.html#environment-variable-config

Docker defaultsedit
The following settings have different default values when using the Docker images:server.namekibanaserver.host"0"elasticsearch.hostshttp://elasticsearch:9200xpack.monitoring.ui.container.elasticsearch.enabledtrue

然后和kibana的configmaps中定义环境变量参数对比一下

[外链图片转存失败(img-E1mvSIja-1562831427269)(images/1562768683967.png)]

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

  • kibana的设置:
LOGGING_QUIET        true        LOGGING_VERBOSE     false
  • es设置:

logger.org.elasticsearch.transport warn

部署apm-server

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

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

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

[外链图片转存失败(img-gUYpGtr2-1562831427270)(images/1562769046644.png)]

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

setup.dashboards.enabled=true  config.output.file.enabled=false

因为这个在应用商店安装的apm-server,默认是把数据存到file的,前面修改了输出为elasticsearch,这里再把输入到文件设为false;(自己手动部署的 并不需要,应用商店的需要检查一下)

  • 查看apm-server,进行验证

[外链图片转存失败(img-0ZYzn5EJ-1562831427271)(images/1562769223089.png)]

[外链图片转存失败(img-4HTsmc5L-1562831427271)(images/1562769302253.png)]

然后点击Launch APM,就可以使用了。如果根据页面提示把apm-agent 嵌入被测应用后,再查看apm-server采集到的数据

[外链图片转存失败(img-gjjROOwG-1562831427272)(images/1562769458692.png)]

若探针采集的数据已经发送过来了 点击进去可以查看详细数据;

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

部署filebeat

这个其镜像详情里面就提供k8s部署的yaml,稍作修改就可以使用

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

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

部署metricbeat

这个有点复杂些,官方也提供了(具体下载根据版本情况)k8s所需的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中

[外链图片转存失败(img-kTQM4V9U-1562831427273)(images/1562770063518.png)]

或es输入直接设置为

output.elasticsearch.hosts: ['${ELASTICSEARCH_HOST}']

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

第二个配置文件kubernetes.yml

module: kubernetesmetricsets:​    \- node​    \- system​    \- pod​    \- container​    \- volumeperiod: 10shost: ${NODE_NAME}\#hosts: ["localhost:10255"]\# If using Red Hat OpenShift remove the previous hosts entry and \# uncomment these settings:hosts: ["https://${HOSTNAME}:10250"]ssl.verification_mode: "none"ssl.certificate_authorities:​    \- /etc/kubernetes/ssl/certs/servercassl.certificate: "/etc/kubernetes/ssl/kube-node.pem"ssl.key: "/etc/kubernetes/ssl/kube-node-key.pem"
  • 需要注意地方:

第一个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呈现验证:

    [外链图片转存失败(img-rzG5g92v-1562831427275)(images/1562770871684.png)]

部署:packetbeat

这个相对简单,官方只提供的了docker的部署方式,我们对着参数 部署到rancher即可:

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

docker run --net="host" docker.elastic.co/beats/packetbeat:7.2.0 setup --dashboards

入口命令怎么在rancherUI里面配置,单独一章博客有介绍image和container中的entrypoint、cmd关系

另外还要增加 --strict.perms=false -e -E output.elasticsearch.hosts=ip:port使数据发送到之前搭建的es里面,--net=host 在rancherUI对应的操作是:networking模块把"Use Host’s Network Namespace"设为真;

[外链图片转存失败(img-PUofelI2-1562831427276)(clipboard.png)]

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

  --cap-add="NET_RAW" \--cap-add="NET_ADMIN" \

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

volumeMounts:- name: cgroupmountPath: /host/sys/fs/cgroup/readOnly: true- name: procmountPath: /host/proc/readOnly: true- name: docker-sockmountPath: /var/run/docker.sockreadOnly: truevolumes:- name: cgrouphostPath:path: /sys/fs/cgroup/- name: prochostPath:path: /proc/- name: docker-sockhostPath:path: /var/run/docker.sock

最后有一点要注意

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

图片能正常显示原版博客地址:

https://blog.zhenglin.work/k8s/use_appstore_deploy_es_in_rancher.html

rancher应用商店的使用相关推荐

  1. Rancher-创建自己的应用商店教程

    2019独角兽企业重金招聘Python工程师标准>>> Rancher(https://rancher.com/)是一个容器管理平台,可以添加.删除容器,查看容器运行状态,也可以批量 ...

  2. 在Rancher 1.6上部署Traefik负载均衡器

    一.给Traefik主机打标签 01-给即将部署Traefik的主机节点打上标签.jpg 02-主机打完traefik_lb标签后的状态.jpg 二.在Rancher应用商店中部署Traefik 应用 ...

  3. 凡泰极客与Rancher达成深度战略合作,加速企业构建私有化小程序生态

    小程序类技术,不再是互联网巨头们的专利.2020年8月31日,行业领先小程序生态平台技术提供商凡泰极客科技有限责任公司(以下简称"凡泰极客")与业界应用最为广泛的Kubernete ...

  4. rancher2.x设置邮件通知,使用163邮箱来接收k8s集群中的报警信息以及来自rancher的通知信息

    之前搭建了几个k8s集群然后使用了rancher来管理多个k8s集群,之前选择使用rancher主要是考虑从rancher应用商店中安装部署各种服务比较方便.但是,在我部署安装efk服务的时候(我自己 ...

  5. Rancher PaaS平台简介

    Rancher PaaS平台简介  Rancher是一个开源的企业级容器管理平台.通过Rancher,企业再也不必自己使用一系列的开源软件去从头搭建容器服务平台.Rancher提供了在生产环境中使用的 ...

  6. 如何利用Docker构建基于DevOps的全自动CI

    来自用户的DevOps实践分享,分享从开发代码到生产环境部署的一条龙操作的实践及经验, 包含工具技术的选型及考量.私有代码库与私有镜像库的应用等. (一)容器服务的Rancher选型 1.为什么说是下 ...

  7. 服务器运维监控指标,运维体系~指标监控~Prometheus监控告警与日志

    一 Prometheus 入门 1.1 入门介绍 运维体系~指标监控 先来一张图,说明一下Prometheus监控相关的软件和知识点. 1: 首先要安装:Prometheus, 负责收集各种监控指标, ...

  8. Rancher2.0与DataDog集成部署

    目录 一.简要介绍 二.注意事项 三.部署过程 四.运行截图 五.参考链接 一.简要介绍: 看了Rancher中文官网上的一篇关于DataDog部署的文章,自己尝试了一下,没有成功,主要是自己对Dat ...

  9. 云原生存储工具的选型和应用探讨

    Labs 导读 随着云原生概念在业界的推广,传统应用部署的方式被容器化部署所取代.基于云原生的容器化部署和运维,给开发和运维人员带来DevOps快速部署和自动化运维等诸多便利的同时,对于基础架构服务也 ...

最新文章

  1. 带monkey的测流量!
  2. 超经典超好玩的光枪游戏,强烈推荐!
  3. 计算机操作系统(2):OS的发展过程
  4. python字典遍历的几种方法(转)
  5. NServiceBus主机
  6. 宁德时代在川签署四方协议 加快全省锂矿资源勘查开发
  7. Java优先级队列PriorityQueue
  8. linux系统英伟达gpu驱动卸载_英伟达显卡驱动程序被发现强制捆绑 官方已火速撤回驱动下载链接...
  9. 可能存在无限递归_无限分类递归+排序解剖
  10. mysql双一参数_MySQL 的双1设置-数据安全的关键参数(案例分享)
  11. CentOS6.7系统优化加强牢固脚本
  12. Atitit mybatis返回多个数据集总结 目录 1.1. 配置handleResult接受,但是只有第一个select语句的结果 1 2. 配置resultMap ok 1 2.1. 调
  13. 【转】VNode节点
  14. 使用Control Flash 更新AB PLC的固件版本(通过网线)
  15. geektool的cal命令格式乱了
  16. JAVA NIO介绍及使用
  17. 什么叫反向链接?什么是死链接?什么是错误链接?
  18. ysoserial exploit/JRMPClient原理剖析
  19. ketchup 消息队列rabbitmq使用
  20. 利用vscode调试vue代码

热门文章

  1. IT战略规划之流程再造 —2013年中科院计算所培训中心系列公益讲座
  2. 软件测试工程师面试的时候该怎么样介绍自己?你的简历是不是该优化了
  3. win10服务和控制器应用CPU占用过高
  4. R语言手动计算主成分分析(PCA)及其在R函数的实现
  5. flutter 聊天界面+表情图片
  6. 数据挖掘之OneR算法(原来数据挖掘如此简单!)
  7. centos8安装docker运行java文件
  8. 【每日分享】我做程序员那些年犯下的罪,此时此刻我自己的笑出猪叫~
  9. 沙盒和App Group
  10. 老是未能连接一个window服务器,未能连接一个Windows服务 怎么回事