【k8s】基于Prometheus监控Kubernetes集群安装部署

这篇具有很好参考价值的文章主要介绍了【k8s】基于Prometheus监控Kubernetes集群安装部署。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

基于Prometheus监控Kubernetes集群安装部署

一、环境准备

二、部署kubernetes集群

三、部署Prometheus监控平台

四、部署Grafana服务

五、grafana  web操作


基于Prometheus监控Kubernetes集群安装部署

一、环境准备

IP地址

主机名

组件

192.168.100.131

k8s-master

kubeadm、kubelet、kubectl、docker-ce

192.168.100.132

k8s-node01

kubeadm、kubelet、kubectl、docker-ce

192.168.100.133

k8s-node02

kubeadm、kubelet、kubectl、docker-ce

注意:所有主机配置推荐CPU:2C+  Memory:2G+

项目拓扑

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

 

1主机初始化配置

所有主机配置禁用防火墙和selinux

[root@localhost ~]# setenforce 0

[root@localhost ~]# iptables -F

[root@localhost ~]# systemctl stop firewalld

[root@localhost ~]# systemctl disable firewalld

[root@localhost ~]# systemctl stop NetworkManager

[root@localhost ~]# systemctl disable NetworkManager

[root@localhost ~]# sed -i '/^SELINUX=/s/enforcing/disabled/' /etc/selinux/config

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

 

2、配置主机名并绑定hosts,不同主机名称不同

[root@localhost ~]# hostname k8s-master

[root@localhost ~]# bash

[root@k8s-master ~]# cat << EOF >> /etc/hosts

192.168.100.131 k8s-master

192.168.100.132 k8s-node01

192.168.100.133 k8s-node02

EOF

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

[root@localhost ~]# hostname k8s-node01

[root@k8s-node01 ~]# cat /etc/hosts

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

[root@localhost ~]# hostname k8s-node02

[root@k8s-node02 ~]#cat /etc/hosts

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

 

3、主机配置初始化

[root@k8s-master ~]# yum -y install vim wget net-tools lrzsz

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

[root@k8s-master ~]# swapoff -a

[root@k8s-master ~]# sed -i '/swap/s/^/#/' /etc/fstab

[root@k8s-master ~]# cat << EOF >> /etc/sysctl.conf

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

EOF

[root@k8s-master ~]# modprobe br_netfilter

[root@k8s-master ~]# sysctl -p

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

 

4、部署docker环境

1)三台主机上分别部署 Docker 环境,因为 Kubernetes 对容器的编排需要 Docker 的支持。

[root@k8s-master ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

[root@k8s-master ~]# yum install -y yum-utils device-mapper-persistent-data lvm2

2)使用 YUM 方式安装 Docker 时,推荐使用阿里的 YUM 源。

[root@k8s-master ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3)清除缓存

[root@k8s-master ~]# yum clean all && yum makecache fast

4)启动docker

[root@k8s-master ~]# yum -y install docker-ce

[root@k8s-master ~]# systemctl start docker

[root@k8s-master ~]# systemctl enable docker

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

 

5)镜像加速器(所有主机配置)

[root@k8s-master ~]# cat << END > /etc/docker/daemon.json

{     "registry-mirrors":[ "https://nyakyfun.mirror.aliyuncs.com" ]

}

END

6)重启docker

[root@k8s-master ~]# systemctl daemon-reload

[root@k8s-master ~]# systemctl restart docker

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

 

二、部署kubernetes集群

1、组件介绍

三个节点都需要安装下面三个组件

kubeadm:安装工具,使所有的组件都会以容器的方式运行

kubectl:客户端连接K8S API工具

kubelet:运行在node节点,用来启动容器的工具

2、配置阿里云yum源

使用 YUM 方式安装 Kubernetes时,推荐使用阿里的 YUM 源。

[root@k8s-master ~]# ls /etc/yum.repos.d/

[root@k8s-master ~]# cat > /etc/yum.repos.d/kubernetes.repo

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

 

3、安装kubelet kubeadm kubectl

所有主机配置

[root@k8s-master ~]# yum install -y kubelet-1.20.0 kubeadm-1.20.0 kubectl-1.20.0

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

[root@k8s-master ~]# systemctl enable kubelet

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

[root@k8s-master ~]# kubectl version

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

        kubelet 刚安装完成后,通过 systemctl start kubelet 方式是无法启动的,需要加入节点或初始化为 master 后才可启动成功。

4、配置init-config.yaml

        Kubeadm 提供了很多配置项,Kubeadm 配置在 Kubernetes 集群中是存储在ConfigMap 中的,也可将这些配置写入配置文件,方便管理复杂的配置项。Kubeadm 配内容是通过 kubeadm config 命令写入配置文件的。

        在master节点安装,master 定于为192.168.100.131,通过如下指令创建默认的init-config.yaml文件:

[root@k8s-master ~]# kubeadm config print init-defaults > init-config.yaml

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

 

init-config.yaml配置

[root@k8s-master ~]# cat init-config.yaml

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

 

5、安装master节点

1)拉取所需镜像

[root@k8s-master ~]# kubeadm config images list --config init-config.yaml

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

[root@k8s-master ~]# kubeadm config images pull --config init-config.yaml

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

 

2)安装matser节点

[root@k8s-master ~]# kubeadm init --config=init-config.yaml //初始化安装K8S

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

 

3)根据提示操作

        kubectl 默认会在执行的用户家目录下面的.kube 目录下寻找config 文件。这里是将在初始化时[kubeconfig]步骤生成的admin.conf 拷贝到.kube/config

[root@k8s-master ~]# mkdir -p $HOME/.kube

[root@k8s-master ~]# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

[root@k8s-master ~]# chown $(id -u):$(id -g) $HOME/.kube/config

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

        Kubeadm 通过初始化安装是不包括网络插件的,也就是说初始化之后是不具备相关网络功能的,比如 k8s-master 节点上查看节点信息都是“Not Ready”状态、Pod 的 CoreDNS无法提供服务等。

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

 

6、安装node节点

1)根据master安装时的提示信息

[root@k8s-node01 ~]# kubeadm join 192.168.100.131:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:78bdd0f01660f4e84355b70aa8807cf1d0d6325b0b28502b29c241563e93b4ae

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

[root@k8s-master ~]# kubectl get nodes

[root@k8s-node02 ~]# kubeadm join 192.168.100.131:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:78bdd0f01660f4e84355b70aa8807cf1d0d6325b0b28502b29c241563e93b4ae

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

 

Master操作:

[root@k8s-master ~]# kubectl get nodes

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

 

        前面已经提到,在初始化 k8s-master 时并没有网络相关配置,所以无法跟 node 节点通信,因此状态都是“NotReady”。但是通过 kubeadm join 加入的 node 节点已经在k8s-master 上可以看到。

7、安装flannel

Master 节点NotReady 的原因就是因为没有使用任何的网络插件,此时Node 和Master的连接还不正常。目前最流行的Kubernetes 网络插件有Flannel、Calico、Canal、Weave 这里选择使用flannel。

所有主机:

master上传kube-flannel.yml,所有主机上传flannel_v0.12.0-amd64.tar,cni-plugins-linux-amd64-v0.8.6.tgz

[root@k8s-master ~]# docker load < flannel_v0.12.0-amd64.tar

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

 

上传插件:

[root@k8s-master ~]# tar xf cni-plugins-linux-amd64-v0.8.6.tgz

[root@k8s-master ~]# cp flannel /opt/cni/bin/

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

 

master上传kube-flannel.yml

master主机配置:

[root@k8s-master ~]# kubectl apply -f kube-flannel.yml

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

[root@k8s-master ~]# kubectl get nodes

[root@k8s-master ~]# kubectl get pods -n kube-system

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

 

已经是ready状态

8、部署测试应用

1)所有node主机导入测试镜像

[root@k8s-master ~]# docker pull  nginx

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

 

2)在Kubernetes集群中创建一个pod,验证是否正常运行。

[root@k8s-master ~]# mkdir demo

[root@k8s-master ~]# cd demo

[root@k8s-master demo]# vim nginx-deployment.yaml

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

        创建完 Deployment 的资源清单之后,使用 create 执行资源清单来创建容器。通过 get pods 可以查看到 Pod 容器资源已经自动创建完成。

[root@k8s-master demo]# kubectl create -f nginx-deployment.yaml

[root@k8s-master demo]# kubectl get pods

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

[root@k8s-master demo]# kubectl get pods -o wide

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

 

3)创建Service资源清单

        在创建的 nginx-service 资源清单中,定义名称为 nginx-service 的 Service、标签选择器为 app: nginx、type 为 NodePort 指明外部流量可以访问内部容器。在 ports 中定义暴露的端口库号列表,对外暴露访问的端口是 80,容器内部的端口也是 80。

[root@k8s-master demo]# vim nginx-service.yaml

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

[root@k8s-master1 demo]# kubectl create -f nginx-service.yaml

[root@k8s-master demo]# kubectl get svc

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

 

.访问测试

[root@k8s-master demo]# curl 10.101.253.90:80

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

 

通过浏览器访问nginx:http://192.168.100.131:31367 

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

 

三、部署Prometheus监控平台

1、准备Prometheus相关YAML文件

在master节点/opt目录下新建pgmonitor目录

[root@k8s-master ~]# mkdir pgmonitor

[root@k8s-master ~]# cd pgmonitor/

将下载yaml包上传至/opt/pgmonitor目录并解压

[root@k8s-master ~]# unzip k8s-prometheus-grafana-master.zip

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

 

2、部署prometheus

1)部署守护进程

[root@k8s-master pgmonitor]# cd k8s-prometheus-grafana-master/

[root@k8s-master k8s-prometheus-grafana-master]# kubectl create -f node-exporter.yaml

2)部署其他yaml文件

进入/pgmonitor/k8s-prometheus-grafana-master/prometheus目录

[root@k8s-master k8s-prometheus-grafana-master]# cd prometheus

3)部署rbac

[root@k8s-master prometheus]# kubectl create -f rbac-setup.yaml

4)部署configmap.yaml

[root@k8s-master prometheus]# kubectl create -f configmap.yaml

5)部署prometheus.deploy.yml

[root@k8s-master prometheus]# kubectl create -f prometheus.deploy.yml

6)部署prometheus.svc.yml

[root@k8s-master prometheus]# kubectl create -f prometheus.svc.yml

7)查看prometheus状态

[root@k8s-master prometheus]# kubectl get pods -n kube-system

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

稍等一会,再次查看!

[root@k8s-master prometheus]# kubectl get pods -n kube-system

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

 

四、部署Grafana服务

1、部署Grafana相关yaml文件

进入/opt/pgmonitor/k8s-prometheus-grafana-master/grafana目录

[root@k8s-master prometheus]# cd ../grafana/

1)部署grafana-deploy.yaml

[root@k8s-master grafana]# kubectl create -f grafana-deploy.yaml

2)部署grafana-svc.yaml

[root@k8s-master grafana]# kubectl create -f grafana-svc.yaml

3)部署grafana-ing.yaml

[root@k8s-master grafana]# kubectl create -f grafana-ing.yaml

4)查看Grafana状态

[root@k8s-master grafana]# kubectl get pods -n

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

2、配置Grafana数据源

1)查看grafana的端口

[root@k8s-master grafana]# kubectl get svc -n

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

 

五、grafana  web操作

2)通过浏览器访问

grafana,http://[masterIP]:[grafana端口]

例如:http://192.168.100.131:30503,默认的用户名和密码:admin/admin

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

 

3)设置DataSource

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

设置显示数据的模版

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

 

输入315并移除光标,等一会儿即可进入下一个页面

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

 

选择自己定义的数据源名称

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器 

【k8s】基于Prometheus监控Kubernetes集群安装部署,kubernetes,prometheus,容器

至此已经利用Prometheus+Granfana监控了Kubernetes平台。文章来源地址https://www.toymoban.com/news/detail-654204.html

到了这里,关于【k8s】基于Prometheus监控Kubernetes集群安装部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在k8s集群内搭建Prometheus监控平台

    Prometheus由SoundCloud发布,是一套由go语言开发的开源的监控报警时间序列数据库的组合。 Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。不需要任何SDK或者其他的集成过程。这样做非常适合做虚拟化环境监控

    2024年02月14日
    浏览(54)
  • k8s集群监控cadvisor+prometheus+grafana部署

    目录 1.新建命名空间monitor 2.部署 2.1部署cadvisor 2.2部署node_exporter 2.3部署prometheus 2.4部署rbac权限 2.5.部署 metrics 2.6部署grafana 3.测试监控效果 参考文章: k8s集群部署cadvisor+node-exporter+prometheus+grafana监控系统 - cyh00001 - 博客园 准备工作: Cluster集群节点介绍: master:192.168.136.21(以

    2024年01月16日
    浏览(59)
  • 使用Prometheus对k8s集群外的Elasticsearch进行监控

    本文介绍了使用Prometheus对k8s集群外的elasticsearch进行监控,这里Prometheus是使用operator部署于k8s集群中,相较于进程部署或docker部署的Prometheus,部署过程更为复杂,不能通过直接修改配置文件的方式增加job,而需要采用k8s的方式进行配置。 配置步骤为: 1,增加endpoint和service,

    2024年02月04日
    浏览(57)
  • k8s集群监控方案--node-exporter+prometheus+grafana

    目录 前置条件 一、下载yaml文件 二、部署yaml各个组件 2.1 node-exporter.yaml 2.2 Prometheus 2.3 grafana 2.4访问测试 三、grafana初始化 3.1加载数据源 3.2导入模板 四、helm方式部署 安装好k8s集群(几个节点都可以,本人为了方便实验k8s集群只有一个master节点),注意prometheus是部署在k8s集群

    2024年02月12日
    浏览(54)
  • Kubernetes(k8s)监控与报警(qq邮箱+钉钉):Prometheus + Grafana + Alertmanager(超详细)

    💖The Begin💖点点关注,收藏不迷路💖 Kubernetes是一个高度动态的容器编排平台,管理着大量的容器化应用程序。 为了保证这些应用程序的稳定性和性能,我们需要实施有效的监控和警报机制。在这篇文章中,我们将介绍如何使用Prometheus和Grafana构建一个完整的Kubernetes监控与

    2024年04月11日
    浏览(307)
  • k8s集群监控及报警(Prometheus+AlertManager+Grafana+prometheusAlert+Dingding)

    k8s集群部署后,急需可靠稳定低延时的集群监控报警系统,报警k8s集群正常有序运行,经过不断调研和测试,最终选择Prometheus+AlertManager+Grafana+prometheusAlert的部署方案,故障信息报警至钉钉群和邮件,如需要额外监控可部署pushgateway主动推送数据到Prometheus进行数据采集 Promet

    2024年02月08日
    浏览(55)
  • Prometheus基于k8s的自动发现配置监控

    k8s配置Prometheus监控时,可以通过servicemonitor的方式增加job,以此来增加监控项,但这种方式进行监控配置,只能手工一个一个的增加,如果k8s集群规模较大的情况下,这种方式会很麻烦。 一种方式是采用consul注册中心的方式进行自动发现。 另外一种方式是基于kubernetes_sd_co

    2024年02月05日
    浏览(60)
  • 【Kubernetes】使用Kubeshark监控K8s集群的API流量

            Kubeshark 是一款针对 Kubernetes 的 API 流量分析器,提供对 Kubernetes 内部网络的实时协议级可见性,捕获和监控进出容器、Pod、节点和集群的所有流量和有效负载。         Kubeshark 的安装和运行很简单,安装之前,我们需要先联网下载一个二进制文件(当前最新版:

    2024年02月11日
    浏览(62)
  • 采用Prometheus+Grafana+Altermanager搭建部署K8S集群节点可视化监控告警平台

    采用 \\\"Prometheus+Grafana\\\"的开源监控系统,安装部署K8S集群监控平台。 并使用Altermanager告警插件,配合使用企业微信,实现系统集群监控报警机制。 主机名称 IP地址 安装组件 m1 192.168.200.61 Prometheus+Grafana+Alertmanager+node_exporter m2 192.168.200.62 node_exporter m3 192.168.200.63 node_exporter n1 192

    2024年02月11日
    浏览(59)
  • 【精品】kubernetes(K8S)集群top命令监控 Pod 度量指标

    提示:做到举一反三就要学会使用help信息 找出标签是name=cpu-user的Pod,并过滤出使用CPU最高的Pod,然后把它的名字写在已经存在的/opt/cordon.txt文件里 了解pod指标,主要需要关注,CPU与内存占用率;生产环境,可能有几十个pod,我们为了使其便于快速检索到需要的pod,可以学会

    2024年02月16日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包