介绍:

大家好,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:
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/
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/-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

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

服务器全部起来了

脚本开放3个NodePort端口

分别是

30903:报警服务

30902:grafana服务

30900:promethues服务

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

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

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

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

访问grafana地址

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

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

etcd的数据全部已获取到

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

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

参考文件:

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

kubeadm构建k8s之Prometheus-operated监控(0.18.1)的更多相关文章

  1. 用kubeadm构建k8s集群部署

    一.环境 三台centos机器 二.软件及容器准备 1.安装docker环境 本例安装 docker-ce版本,repo源为docker-ce.repo文件,拷贝到 /etc/yum.repos.d下 ...

  2. kubernetes(k8s) Prometheus+grafana监控告警安装部署

    主机数据收集 主机数据的采集是集群监控的基础:外部模块收集各个主机采集到的数据分析就能对整个集群完成监控和告警等功能.一般主机数据采集和对外提供数据使用cAdvisor 和node-exporter等 ...

  3. 使用kubeadm部署k8s集群[v1.18.0]

    使用kubeadm部署k8s集群 环境 IP地址 主机名 节点 10.0.0.63 k8s-master1 master1 10.0.0.63 k8s-master2 master2 10.0.0.6 ...

  4. 容器编排系统K8s之Prometheus监控系统+Grafana部署

    前文我们聊到了k8s的apiservice资源结合自定义apiserver扩展原生apiserver功能的相关话题,回顾请参考:https://www.cnblogs.com/qiuhom-1874/ ...

  5. 使用kubeadm部署K8S v1.17.0集群

    kubeadm部署K8S集群 安装前的准备 集群机器 172.22.34.34 K8S00 172.22.34.35 K8S01 172.22.34.36 K8S02 注意: 本文档中的 etcd . ...

  6. 050.集群管理-Prometheus+Grafana监控方案

    一 Prometheus概述 1.1 Prometheus简介 Prometheus是由SoundCloud公司开发的开源监控系统,是继Kubernetes之后CNCF第2个毕业的项目,在容器和微服务 ...

  7. 部署Prometheus+Grafana监控

    Prometheus 1.不是很友好,各种配置都手写 2.对docker和k8s监控有成熟解决方案 Prometheus(普罗米修斯) 是一个最初在SoudCloud上构建的监控系统,开源项目,拥有非 ...

  8. Prometheus的监控解决方案(含监控kubernetes)

    prometheus的简介和安装 Prometheus(普罗米修斯)是一个开源系统监控和警报工具,最初是在SoundCloud建立的.自2012年成立以来,许多公司和组织都采用了普罗米修斯,该项目拥有 ...

  9. 基于Docker+Prometheus+Grafana监控SpringBoot健康信息

    在微服务体系当中,监控是必不可少的.当系统环境超过指定的阀值以后,需要提醒指定的运维人员或开发人员进行有效的防范,从而降低系统宕机的风险.在CNCF云计算平台中,Prometheus+Grafana是 ...

随机推荐

  1. SDN测量论文粗读(二)9.21

    Monocle: Dynamic,Fine-Grained Data Plane Monitoring 论文来源:CoNext 发表时间:2015 解决问题及所做贡献:Monocle:检测交换机中硬件 ...

  2. [iOS]UIInterpolatingMotionEffect重力视觉差

    - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typica ...

  3. RHS 和 LHS

    不成功的的RHS 引用会导致抛出 ReferenceError异常 不成的的LHS 引用会导致自动隐式地创建一个全局变量(非严格模式下)   function foo(a) { var b = a; ...

  4. canvas转img,blob相互转换

    摘自:https://www.cnblogs.com/jyuf/p/7251591.html 函数都比较简单,直接看就ok了 /*----------------------------------- ...

  5. JS变量、作用域、内存

    写到这个题目<JS变量.作用域,内存>,我就不由自主想起了黄金三嫖客.可能是名字有点像,嗯,一定是这样子的! JS接触下来,应该是要比Java简单不少的,所以,要学好啊.立个flag半年后 ...

  6. 【visual studio code 的python开发环境搭建 】

    打开vs code,按按F1或者Ctrl+Shift+P打开命令行,然后输入ext install 输入Python,选第一个,这个用的最多,支持自动补全代码等功能,点击安装按钮,即可安装 下面试着编 ...

  7. ES6学习之-let 和const命令

    let 和const命令 let命令 用来声明变量,类似于var .let声明的变量 只在let命令所在的代码块内有效. 在for循环里也是如此 每次循环其实都是一个代码块 function fn() ...

  8. es6之扩展运算符 三个点(...)

    对象的扩展运算符理解对象的扩展运算符其实很简单,只要记住一句话就可以: 对象中的扩展运算符(...)用于取出参数对象中的所有可遍历属性,拷贝到当前对象之中 let bar = { a: 1, b: 2 ...

  9. MySQL数据库实验:任务二 表数据的插入、修改及删除

    目录 任务二 表数据的插入.修改及删除 一.利用界面工具插入数据 二.数据更新 (一)利用MySQL命令行窗口更新数据 (二)利用Navicat for MySQL客户端工具更新数据 三.数据库的备份 ...

  10. homebrew 使用心得

    ''' 安装anaconda 安装命令: brew search anaconda brew cask install anaconda 添加环境变量: vi ~/.bash_profile expo ...