热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

kubeadm构建k8s之Prometheusoperated监控(0.18.1)

   介绍:    大家好,k8s的搭建有许多方式,也有许多快速部署的,为了简化部署的复杂度,官方也提供了开源的kubeadm快速部署,最新1.10.x版本已经可以实现部署集群, 

 

 

 

介绍:

       大家好,k8s的搭建有许多方式,也有许多快速部署的,为了简化部署的复杂度,官方也提供了开源的kubeadm快速部署,最新1.10.x版本已经可以实现部署集群,

     如果你对k8s的原理已经非常了解,不妨可以试试,今天将为大家说说如何去快速搭建一个监控系统到展示页面,报警规则会在下一章讲解,那么Prometheus-operated是什么,用过的朋友应该知道      

     Prometheus是用来收集数据的,同时本身也提供强大的查询能力,结合Grafana,就可以监控到你想要的数据。

   获取数据的原理大家可以去百度一下,具体就是你的采集工具可以任意用编程语言来写,最后只要提供一个http或者https的访问地址,比如我想监控nginx,地址是192.168.1.1 端口8080,

   那么我要采集nginx的数据就是 http://192.168.1.1/metrics,前提是metrics模块已经加载,nginx已内置了这个模块,具体请百度,如果没有怎么办,自己写或者去官方找模板。

   那么在k8s上,prometheus该如何去监控我们的数据呢,用过k8s的人应该知道service,没错,k8s会读取service的后端地址,拿到容器的IP地址然后去主动请求采集数据,而k8s自身的数据呢,同样的道理,k8s已经集成了metrics功能,所以,我们只需要请求组件所对应的IP:PORT/metrics 就能拿到数据,这样k8s集群包括自身的监控数据全都拿到了,怎么方便的操作如果只单靠Prometheus是不可能完成的,这时候Prometheus-operated就面世了,其主要就是提供自动发现功能,如果你使用过K8S日志采集ELK(阿里云的日志采集开源项目),其原理是一样的,动态获取k8s的信息,出现了新增或者减少的服务,他会讲相关的配置写入Prometheus当中,然后动态加载,否则你就要一个一个的去配置。

 

项目地址:https://github.com/coreos/prometheus-operator

官网地址:  https://prometheus.io

话不多说,30秒让你的监控跑起来。

 

kubeadm部署

这里我节约时间,就不一一介绍了,因为config.yml需要指定参数,这里我会在部署prometheus-operator说明

 

prometheus-operator部署

首先就是kubeadm的配置文件 ,如果你是直接从kubeadm开始弄,可以提前写进去,这样一会你就不需要在修改了

和你自己的比较一下缺少了哪些添加上去即可,如果已经安装了也没关系,我们手动去改,后面也讲

#所有master机器
apiVersion: kubeadm.k8s.io/v1alpha1 kind: MasterConfiguration api: advertiseAddress: 192.168.1.173 bindPort: 6443 authorizationModes: - Node - RBAC certificatesDir: /etc/kubernetes/pki cloudProvider: etcd: dataDir: /var/lib/etcd endpoints: null imageRepository: gcr.io/google_containers kubernetesVersion: v1.8.3 networking: dnsDomain: cluster.local serviceSubnet: 10.96.0.0/12 nodeName: your-dev tokenTTL: 24h0m0s controllerManagerExtraArgs: address: 0.0.0.0 schedulerExtraArgs: address: 0.0.0.0

 

手动修改所有master机器都要执行,node节点只需要修改和kubelet相关的,

如果你kubeadm还没有开始部署下面的操作只需要执行kubelet的操作

sed -e "s/- --address=127.0.0.1/- --address=0.0.0.0/" -i /etc/kubernetes/manifests/kube-controller-manager.yaml
sed -e "s/- --address=127.0.0.1/- --address=0.0.0.0/" -i /etc/kubernetes/manifests/kube-scheduler.yaml

KUBEADM_SYSTEMD_CONF=/etc/systemd/system/kubelet.service.d/10-kubeadm.conf
sed -e "/cadvisor-port=0/d" -i "$KUBEADM_SYSTEMD_CONF"
if ! grep -q "authentication-token-webhook=true" "$KUBEADM_SYSTEMD_CONF"; then
  sed -e "s/--authorization-mode=Webhook/--authentication-token-webhook=true --authorization-mode=Webhook/" -i "$KUBEADM_SYSTEMD_CONF"
fi
systemctl daemon-reload
systemctl restart kubelet

 

下载官方提供的源码,版本(我的是0.18.1)

git clone -b v0.18.1 https://github.com/coreos/prometheus-operator

 kubeadm构建k8s之Prometheus-operated监控(0.18.1)

cd prometheus-operator/contrib/kube-prometheus
好了,已经部署成功了,看看服务(首次启动会下载需要镜像,过程看个人网络,国内是可以访问的因为部署谷歌的镜像地址)

 

kubeadm构建k8s之Prometheus-operated监控(0.18.1)

服务器全部起来了

脚本开放3个NodePort端口

分别是

30903:报警服务

30902:grafana服务

30900:promethues服务

让我们去看看是否都能监控,访问ip(master地址):30900

kubeadm构建k8s之Prometheus-operated监控(0.18.1)

全部都为up,说明都起来了,刚安装好的是没有etcd的,需要自己创建yaml文件,具体可以参考下面的文档

http://www.mamicode.com/info-detail-2251383.html 非常详细

最后让我们看看数据是否都收集到了grafana

访问grafana地址

http://192.168.100.124:30902 默认账号admin/admin 如果是生产建议修改密码

kubeadm构建k8s之Prometheus-operated监控(0.18.1)

 

 可以看到Prometheus-operated的作者们已经提供了一套基础的数据模板给我们了,当然也可以根据实际情况来作出修改

 

kubeadm构建k8s之Prometheus-operated监控(0.18.1)

etcd的数据全部已获取到

我们知道k8s有3种部署方式,也能监控到

kubeadm构建k8s之Prometheus-operated监控(0.18.1)

 

 kubeadm构建k8s之Prometheus-operated监控(0.18.1)

 

 

 官方默认给的内存和资源都比较小,如果你需要上生产建议按你资源实际情况修改一下,部署完成之后通过编辑修改,否则会出现你的某些服务经常异常重启,大多都由资源到达了临界点导致的。

 

参考文件:

https://zhangguanzhang.github.io/2018/10/12/prometheus-operator/#%E9%83%A8%E7%BD%B2%E5%AE%98%E6%96%B9%E7%9A%84prometheus-operator

https://github.com/coreos/prometheus-operator/tree/master/Documentation

https://github.com/coreos/prometheus-operator/tree/master/contrib/kube-prometheus/docs


推荐阅读
  • php自动部署笔记,php自动化部署工具
    本文目录一览:1、码云gitee利用PHP脚本拉取实现自动部署(可用于生产环境) ... [详细]
  • Nginx Buffer 机制引发的下载故障
    Nginx ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • 负载均衡_Nginx反向代理动静分离负载均衡及rewrite隐藏路径详解(Nginx Apache MySQL Redis)–第二部分
    nginx反向代理、动静分离、负载均衡及rewrite隐藏路径详解 ... [详细]
  • nginx+多个tomcat
    学习nginx的时候遇到的问题:nginx怎么部署两台tomcat?upstream在网上找的资源,我在nginx配置文件(nginx.conf)中添加了两个server。结果只显 ... [详细]
  • 现在比较流行使用静态网站生成器来搭建网站,博客产品着陆页微信转发页面等。但每次都需要对服务器进行配置,也是一个重复但繁琐的工作。使用DockerWeb,只需5分钟就能搭建一个基于D ... [详细]
  • syncd是一款开源的代码部署工具,它具有简单、高效、易用等特点,可以提高团队的工作效率. ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • Monkey《大话移动——Android与iOS应用测试指南》的预购信息发布啦!
    Monkey《大话移动——Android与iOS应用测试指南》的预购信息已经发布,可以在京东和当当网进行预购。感谢几位大牛给出的书评,并呼吁大家的支持。明天京东的链接也将发布。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • docker+k8s+git+jenkins
    docker+k8s+git+jenkins,Go语言社区,Golang程序员人脉社 ... [详细]
  • YOLOV4 Pytorch版本训练自建数据集和预测
    1.程序下载本文程序核心部分完全参考开源代码:https:github.comWongKinYiuPyTorch_YOLOv4。只是从一种学习的角度去写了我的代码仓库,在基础上增加 ... [详细]
author-avatar
手机用户2602938185
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有