Prometheus Operator与kube-prometheus之二-如何监控1.23+ kubeadm集群

2022-12-01 16:13:46 浏览数 (1)

简介

•系列文章: 标签 - Prometheus - 东风微鸣技术博客 (ewhisper.cn)[1]•Prometheus Operator 的上一篇: Prometheus Operator 与 kube-prometheus 之一 - 简介 - 东风微鸣技术博客 (ewhisper.cn)[2]

kube-prometheus-stack[3]捆绑了监控Kubernetes 集群所需的Prometheus Operator、Exporter、Rule、Grafana 和 AlertManager。

但要为使用kubeadm[4]构建的Kubernetes集群定制Helm安装,还是有必要进行定制。

这一次结合近期比较新的 Kubernetes 版本 v1.23 , 以及较为常见的安装方式 kubeadm[5], 来实战说明:

•kubeadm 需要哪些特殊配置•如何安装 Prometheus Operator: 通过 kube-prometheus-stack helm chart[6]•如何配置对 kubeadm 安装的集群的组件监控

开始!

前提条件

•kubeadm•helm3

kubeadm 需要哪些特殊配置

为了后面能够正常通过 Prometheus Operator 获取到 kubeadm 搭建的 Kubernetes v1.23 集群的指标, 需要对 kubeadm 做一些特殊配置.

默认情况下,kubeadm将它的几个管理组件绑定到 node 的 localhost 127.0.0.1 地址上, 涉及到: Kube Controller Manager、Kube Proxy和Kube Scheduler。

然而,对于监控来说,我们需要这些端点的暴露,以便他们的指标可以被Prometheus提取。因此,我们需要将这些组件暴露在他们的 0.0.0.0 地址上。

当登录到kubeadm主节点时,运行以下修改:

Controller Manager 和 Scheduler 组件

默认情况下,kubeadm 并没有公开我们要监控的两个服务(kube-controller-manager 和 kube-scheduler)。因此,为了充分利用kube-prometheus-stack helm chart,我们需要对Kubernetes集群做一些快速调整。后面我们会监控kube-controller-manager和kube-scheduler,我们必须将它们的地址端口暴露给集群。

默认情况下,kubeadm 在你的主机上运行这些 pod,并绑定到 127.0.0.1。有几种方法可以改变这一点。建议改变这些配置的方法是使用 kubeadm config file[7]。下面是配置示例:

代码语言:javascript复制
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
...
controllerManager:
  extraArgs:
    bind-address: "0.0.0.0"
scheduler:
  extraArgs:
    bind-address: "0.0.0.0"
...
kubernetesVersion: "v1.23.1"
...

0 人点赞