使用 Prometheus Operator 监控 Kubernetes 集群(Prometheus Operator 已改名为 Kube-Prometheus)

使用 Prometheus Operator 监控 Kubernetes 集群(Prometheus Operator 已改名为 Kube-Prometheus)

文章目录

  !版权声明:本博客内容均为原创,每篇博文作为知识积累,写博不易,转载请注明出处。


注意:

Prometheus-operator 已经改名为 Kube-promethues

参考:

系统参数:

更快捷部署

可以从本人的 Github 下载已经修改过的部署文件进行快速部署,不必按博文修改配置,按照里面的 README.md 部署说明进行安装即可,顺便点颗小星星哦。

地址: https://github.com/my-dlq/blog-example/tree/master/kubernetes/prometheus-operator

这里推荐手动下来源码安装,不推荐 helm 方式,因为很多东西需要手动配置进行改动。

一、介绍

1、Kubernetes Operator 介绍

在 Kubernetes 的支持下,管理和伸缩 Web 应用、移动应用后端以及 API 服务都变得比较简单了。其原因是这些应用一般都是无状态的,所以 Deployment 这样的基础 Kubernetes API 对象就可以在无需附加操作的情况下,对应用进行伸缩和故障恢复了。

而对于数据库、缓存或者监控系统等有状态应用的管理,就是个挑战了。这些系统需要应用领域的知识,来正确的进行伸缩和升级,当数据丢失或不可用的时候,要进行有效的重新配置。我们希望这些应用相关的运维技能可以编码到软件之中,从而借助 Kubernetes 的能力,正确的运行和管理复杂应用。

Operator 这种软件,使用 TPR(第三方资源,现在已经升级为 CRD) 机制对 Kubernetes API 进行扩展,将特定应用的知识融入其中,让用户可以创建、配置和管理应用。和 Kubernetes 的内置资源一样,Operator 操作的不是一个单实例应用,而是集群范围内的多实例。

2、Prometheus Operator 介绍

Kubernetes 的 Prometheus Operator 为 Kubernetes 服务和 Prometheus 实例的部署和管理提供了简单的监控定义。

安装完毕后,Prometheus Operator提供了以下功能:

  • 创建/毁坏: 在 Kubernetes namespace 中更容易启动一个 Prometheus 实例,一个特定的应用程序或团队更容易使用Operator。
  • 简单配置: 配置 Prometheus 的基础东西,比如在 Kubernetes 的本地资源 versions, persistence, retention policies, 和 replicas。
  • Target Services 通过标签: 基于常见的Kubernetes label查询,自动生成监控target 配置;不需要学习普罗米修斯特定的配置语言。

3、Prometheus Operator 系统架构图

  • Operator: Operator 资源会根据自定义资源(Custom Resource Definition / CRDs)来部署和管理 Prometheus Server,同时监控这些自定义资源事件的变化来做相应的处理,是整个系统的控制中心。
  • Prometheus: Prometheus 资源是声明性地描述 Prometheus 部署的期望状态。
  • Prometheus Server: Operator 根据自定义资源 Prometheus 类型中定义的内容而部署的 Prometheus Server 集群,这些自定义资源可以看作是用来管理 Prometheus Server 集群的 StatefulSets 资源。
  • ServiceMonitor: ServiceMonitor 也是一个自定义资源,它描述了一组被 Prometheus 监控的 targets 列表。该资源通过 Labels 来选取对应的 Service Endpoint,让 Prometheus Server 通过选取的 Service 来获取 Metrics 信息。
  • Service: Service 资源主要用来对应 Kubernetes 集群中的 Metrics Server Pod,来提供给 ServiceMonitor 选取让 Prometheus Server 来获取信息。简单的说就是 Prometheus 监控的对象,例如 Node Exporter Service、Mysql Exporter Service 等等。
  • Alertmanager: Alertmanager 也是一个自定义资源类型,由 Operator 根据资源描述内容来部署 Alertmanager 集群。

二、拉取 Prometheus Operator

先从 Github 上将源码拉取下来,利用源码项目已经写好的 kubernetes 的 yaml 文件进行一系列集成镜像的安装,如 grafana、prometheus 等等。

从 GitHub 拉取 Prometheus Operator 源码

1$ wget https://github.com/coreos/kube-prometheus/archive/v0.1.0.tar.gz

解压

1$ tar -zxvf v0.1.0.tar.gz

三、进行文件分类

由于它的文件都存放在项目源码的 manifests 文件夹下,所以需要进入其中进行启动这些 kubernetes 应用 yaml 文件。又由于这些文件堆放在一起,不利于分类启动,所以这里将它们分类。

进入源码的 manifests 文件夹

1$ cd kube-prometheus-0.1.0/manifests/

创建文件夹并且将 yaml 文件分类

 1# 创建文件夹
 2$ mkdir -p operator node-exporter alertmanager grafana kube-state-metrics prometheus serviceMonitor adapter
 3
 4# 移动 yaml 文件,进行分类到各个文件夹下
 5mv *-serviceMonitor* serviceMonitor/
 6mv 0prometheus-operator* operator/
 7mv grafana-* grafana/
 8mv kube-state-metrics-* kube-state-metrics/
 9mv alertmanager-* alertmanager/
10mv node-exporter-* node-exporter/
11mv prometheus-adapter* adapter/
12mv prometheus-* prometheus/

基本目录结构如下:

 1manifests/
 2├── 00namespace-namespace.yaml
 3├── adapter
 4│   ├── prometheus-adapter-apiService.yaml
 5│   ├── prometheus-adapter-clusterRoleAggregatedMetricsReader.yaml
 6│   ├── prometheus-adapter-clusterRoleBindingDelegator.yaml
 7│   ├── prometheus-adapter-clusterRoleBinding.yaml
 8│   ├── prometheus-adapter-clusterRoleServerResources.yaml
 9│   ├── prometheus-adapter-clusterRole.yaml
10│   ├── prometheus-adapter-configMap.yaml
11│   ├── prometheus-adapter-deployment.yaml
12│   ├── prometheus-adapter-roleBindingAuthReader.yaml
13│   ├── prometheus-adapter-serviceAccount.yaml
14│   └── prometheus-adapter-service.yaml
15├── alertmanager
16│   ├── alertmanager-alertmanager.yaml
17│   ├── alertmanager-secret.yaml
18│   ├── alertmanager-serviceAccount.yaml
19│   └── alertmanager-service.yaml
20├── grafana
21│   ├── grafana-dashboardDatasources.yaml
22│   ├── grafana-dashboardDefinitions.yaml
23│   ├── grafana-dashboardSources.yaml
24│   ├── grafana-deployment.yaml
25│   ├── grafana-serviceAccount.yaml
26│   └── grafana-service.yaml
27├── kube-state-metrics
28│   ├── kube-state-metrics-clusterRoleBinding.yaml
29│   ├── kube-state-metrics-clusterRole.yaml
30│   ├── kube-state-metrics-deployment.yaml
31│   ├── kube-state-metrics-roleBinding.yaml
32│   ├── kube-state-metrics-role.yaml
33│   ├── kube-state-metrics-serviceAccount.yaml
34│   └── kube-state-metrics-service.yaml
35├── node-exporter
36│   ├── node-exporter-clusterRoleBinding.yaml
37│   ├── node-exporter-clusterRole.yaml
38│   ├── node-exporter-daemonset.yaml
39│   ├── node-exporter-serviceAccount.yaml
40│   └── node-exporter-service.yaml
41├── operator
42│   ├── 0prometheus-operator-0alertmanagerCustomResourceDefinition.yaml
43│   ├── 0prometheus-operator-0prometheusCustomResourceDefinition.yaml
44│   ├── 0prometheus-operator-0prometheusruleCustomResourceDefinition.yaml
45│   ├── 0prometheus-operator-0servicemonitorCustomResourceDefinition.yaml
46│   ├── 0prometheus-operator-clusterRoleBinding.yaml
47│   ├── 0prometheus-operator-clusterRole.yaml
48│   ├── 0prometheus-operator-deployment.yaml
49│   ├── 0prometheus-operator-serviceAccount.yaml
50│   └── 0prometheus-operator-service.yaml
51├── prometheus
52│   ├── prometheus-clusterRoleBinding.yaml
53│   ├── prometheus-clusterRole.yaml
54│   ├── prometheus-prometheus.yaml
55│   ├── prometheus-roleBindingConfig.yaml
56│   ├── prometheus-roleBindingSpecificNamespaces.yaml
57│   ├── prometheus-roleConfig.yaml
58│   ├── prometheus-roleSpecificNamespaces.yaml
59│   ├── prometheus-rules.yaml
60│   ├── prometheus-serviceAccount.yaml
61│   └── prometheus-service.yaml
62└── serviceMonitor
63    ├── 0prometheus-operator-serviceMonitor.yaml
64    ├── alertmanager-serviceMonitor.yaml
65    ├── grafana-serviceMonitor.yaml
66    ├── kube-state-metrics-serviceMonitor.yaml
67    ├── node-exporter-serviceMonitor.yaml
68    ├── prometheus-serviceMonitorApiserver.yaml
69    ├── prometheus-serviceMonitorCoreDNS.yaml
70    ├── prometheus-serviceMonitorKubeControllerManager.yaml
71    ├── prometheus-serviceMonitorKubelet.yaml
72    ├── prometheus-serviceMonitorKubeScheduler.yaml
73    └── prometheus-serviceMonitor.yaml

四、修改源码 yaml 文件

由于这些 yaml 文件中设置的应用镜像国内无法拉取下来,所以修改源码中的这些 yaml 的镜像设置,替换镜像地址方便拉取安装。再之后因为需要将 Grafana & Prometheus 通过 NodePort 方式暴露出去,所以也需要修改这两个应用的 service 文件。

可以从本人的 Github 下载已经修改过的部署文件,地址: https://github.com/my-dlq/blog-example/tree/master/prometheus-operator 可以按照里面的 README.md 部署说明进行安装部署。

1、修改镜像

(1)、修改 operator

修改 0prometheus-operator-deployment.yaml

1$ vim operator/0prometheus-operator-deployment.yaml 

改成如下:

1......
2  containers:
3  - args:
4    - --kubelet-service=kube-system/kubelet
5    - --logtostderr=true
6    - --config-reloader-image=quay.io/coreos/configmap-reload:v0.0.1  #修改镜像
7    - --prometheus-config-reloader=quay.io/coreos/prometheus-config-reloader:v0.29.0  #修改镜像
8    image: quay.io/coreos/prometheus-operator:v0.29.0  #修改镜像
9......

(2)、修改 adapter

修改 prometheus-adapter-deployment.yaml

1$ vim adapter/prometheus-adapter-deployment.yaml

改成如下:

 1......
 2  containers:
 3  - args:
 4    - --cert-dir=/var/run/serving-cert
 5    - --config=/etc/adapter/config.yaml
 6    - --logtostderr=true
 7    - --metrics-relist-interval=1m
 8    - --prometheus-url=http://prometheus-k8s.monitoring.svc:9090/
 9    - --secure-port=6443
10    image: quay.io/coreos/k8s-prometheus-adapter-amd64:v0.4.1   #修改镜像
11    name: prometheus-adapter
12......

(3)、修改 alertmanager

修改 alertmanager-alertmanager.yaml

1$ vim alertmanager/alertmanager-alertmanager.yaml

改成如下:

 1......
 2spec:
 3  baseImage: quay.io/prometheus/alertmanager   #修改镜像
 4  nodeSelector:
 5    beta.kubernetes.io/os: linux
 6  replicas: 3
 7  securityContext:
 8    fsGroup: 2000
 9    runAsNonRoot: true
10    runAsUser: 1000
11  serviceAccountName: alertmanager-main
12  version: v0.17.0

(4)、修改 node-exporter

修改 node-exporter-daemonset.yaml

1$ vim node-exporter/node-exporter-daemonset.yaml

改成如下:

 1......
 2  containers:
 3  - args:
 4    - --web.listen-address=127.0.0.1:9100
 5    image: quay.io/prometheus/node-exporter:v0.17.0   #修改镜像
 6    
 7    ......
 8    
 9  - args:
10    - --logtostderr
11    - --upstream=http://127.0.0.1:9100/
12    image: quay.io/coreos/kube-rbac-proxy:v0.4.1   #修改镜像
13......

(5)、修改 kube-state-metrics

修改 kube-state-metrics-deployment.yaml 文件

1$ vim kube-state-metrics/kube-state-metrics-deployment.yaml

改成如下:

 1......
 2  containers:
 3  - args:
 4    - --logtostderr
 5    - --secure-listen-address=:8443
 6    - --tls-cipher-suites=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
 7    - --upstream=http://127.0.0.1:8081/
 8    image: quay.io/coreos/kube-rbac-proxy:v0.4.1   #修改镜像
 9    name: kube-rbac-proxy-main
10  - args:
11    - --logtostderr
12    - --secure-listen-address=:9443
13    - --tls-cipher-suites=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
14    - --upstream=http://127.0.0.1:8082/
15    image: quay.io/coreos/kube-rbac-proxy:v0.4.1   #修改镜像
16    name: kube-rbac-proxy-self
17  - args:
18    - --host=127.0.0.1
19    - --port=8081
20    - --telemetry-host=127.0.0.1
21    - --telemetry-port=8082
22    image: quay.io/coreos/kube-state-metrics:v1.5.0  #修改镜像
23    name: kube-state-metrics
24  - command:
25    - /pod_nanny
26    - --container=kube-state-metrics
27    - --deployment=kube-state-metrics
28    - name: MY_POD_NAMESPACE
29      valueFrom:
30        fieldRef:
31          apiVersion: v1
32          fieldPath: metadata.namespace
33    image: registry.aliyuncs.com/google_containers/addon-resizer:1.8.4   #修改镜像
34    name: addon-resizer
35......

(6)、修改 node-exporter

修改 node-exporter-daemonset.yaml 文件

1$ vim prometheus/prometheus-prometheus.yaml

改成如下:

 1......
 2spec:
 3  alerting:
 4    alertmanagers:
 5    - name: alertmanager-main
 6      namespace: monitoring
 7      port: web
 8  baseImage: quay.io/prometheus/prometheus   #修改镜像
 9  nodeSelector:
10    beta.kubernetes.io/os: linux
11  replicas: 2
12  resources:
13    requests:
14      memory: 400Mi
15  ruleSelector:
16    matchLabels:
17      prometheus: k8s
18      role: alert-rules
19  securityContext:
20    fsGroup: 2000
21    runAsNonRoot: true
22    runAsUser: 1000
23  serviceAccountName: prometheus-k8s
24  serviceMonitorNamespaceSelector: {}
25  serviceMonitorSelector: {}
26  version: v2.7.2

2、修改 Service 端口设置

(1)、修改 Prometheus Service

修改 prometheus-service.yaml 文件

1$ vim prometheus/prometheus-service.yaml

修改prometheus Service端口类型为NodePort,设置nodePort端口为32101

 1apiVersion: v1
 2kind: Service
 3metadata:
 4  labels:
 5    prometheus: k8s
 6  name: prometheus-k8s
 7  namespace: monitoring
 8spec:
 9  type: NodePort
10  ports:
11  - name: web
12    port: 9090
13    targetPort: web
14    nodePort: 32101
15  selector:
16    app: prometheus
17    prometheus: k8s
18  sessionAffinity: ClientIP

(2)、修改 Grafana Service

修改 grafana-service.yaml 文件

1$ vim grafana/grafana-service.yaml

修改garafana Service端口类型为NodePort,设置nodePort端口为32102

 1apiVersion: v1
 2kind: Service
 3metadata:
 4  labels:
 5    app: grafana
 6  name: grafana
 7  namespace: monitoring
 8spec:
 9  type: NodePort
10  ports:
11  - name: http
12    port: 3000
13    targetPort: http
14    nodePort: 32102
15  selector:
16    app: grafana

3、修改数据持久化存储

prometheus 实际上是通过 emptyDir 进行挂载的,我们知道 emptyDir 挂载的数据的生命周期和 Pod 生命周期一致的,如果 Pod 挂掉了,那么数据也就丢失了,这也就是为什么我们重建 Pod 后之前的数据就没有了的原因,所以这里修改它的持久化配置。

(1)、创建 StorageClass

创建一个名称为 fast 的 StorageClass,不同的存储驱动创建的 StorageClass 配置也不同,下面提供基于"GlusterFS"和"NFS"两种配置,如果是NFS存储,请提前确认集群中是否存在"nfs-provisioner"应用。

GlusterFS 存储的 StorageClass 配置

 1apiVersion: storage.k8s.io/v1
 2kind: StorageClass
 3metadata:
 4  name: fast                            #---SorageClass 名称
 5provisioner: kubernetes.io/glusterfs    #---标识 provisioner 为 GlusterFS
 6parameters:
 7  resturl: "http://10.10.249.63:8080"   
 8  restuser: "admin"
 9  gidMin: "40000"
10  gidMax: "50000"
11  volumetype: "none"  #---分布巻模式,不提供备份,正式环境切勿用此模式

NFS 存储的 StorageClass 配置

1apiVersion: storage.k8s.io/v1
2kind: StorageClass
3metadata:
4  name: fast
5provisioner: nfs-client    #---动态卷分配应用设置的名称,必须和集群中的"nfs-provisioner"应用设置的变量名称保持一致
6parameters:
7  archiveOnDelete: "true"  #---设置为"false"时删除PVC不会保留数据,"true"则保留数据

(2)、修改 Prometheus 持久化

修改 prometheus-prometheus.yaml 文件

1$ vim prometheus/prometheus-prometheus.yaml

prometheus是一种 StatefulSet 有状态集的部署模式,所以直接将 StorageClass 配置到里面,在下面的yaml中最下面添加持久化配置:

 1apiVersion: monitoring.coreos.com/v1
 2kind: Prometheus
 3metadata:
 4  labels:
 5    prometheus: k8s
 6  name: k8s
 7  namespace: monitoring
 8spec:
 9  alerting:
10    alertmanagers:
11    - name: alertmanager-main
12      namespace: monitoring
13      port: web
14  baseImage: quay.io/prometheus/prometheus
15  nodeSelector:
16    beta.kubernetes.io/os: linux
17  replicas: 2
18  resources:
19    requests:
20      memory: 400Mi
21  ruleSelector:
22    matchLabels:
23      prometheus: k8s
24      role: alert-rules
25  securityContext:
26    fsGroup: 2000
27    runAsNonRoot: true
28    runAsUser: 1000
29  serviceAccountName: prometheus-k8s
30  serviceMonitorNamespaceSelector: {}
31  serviceMonitorSelector: {}
32  version: v2.7.2
33  storage:                  #----添加持久化配置,指定StorageClass为上面创建的fast
34    volumeClaimTemplate:
35      spec:
36        storageClassName: fass #---指定为fast
37        resources:
38          requests:
39            storage: 10Gi

(3)、修改 Grafana 持久化配置

创建 grafana-pvc.yaml 文件

由于 Grafana 是部署模式为 Deployment,所以我们提前为其创建一个 grafana-pvc.yaml 文件,加入下面 PVC 配置。

 1kind: PersistentVolumeClaim
 2apiVersion: v1
 3metadata:
 4  name: grafana
 5  namespace: monitoring  #---指定namespace为monitoring
 6spec:
 7  storageClassName: fast #---指定StorageClass为上面创建的fast
 8  accessModes:
 9    - ReadWriteOnce
10  resources:
11    requests:
12      storage: 5Gi

修改 grafana-deployment.yaml 文件设置持久化配置,应用上面的 PVC

1$ vim grafana/grafana-deployment.yaml

将 volumes 里面的 “grafana-storage” 配置注掉,新增如下配置,挂载一个名为 grafana 的 PVC

 1......
 2      volumes:
 3      - name: grafana-storage       #-------新增持久化配置
 4        persistentVolumeClaim:
 5          claimName: grafana        #-------设置为创建的PVC名称
 6      #- emptyDir: {}               #-------注释掉旧的配置
 7      #  name: grafana-storage
 8      - name: grafana-datasources
 9        secret:
10          secretName: grafana-datasources
11      - configMap:
12          name: grafana-dashboards
13        name: grafana-dashboards
14......

五、部署前各节点提前下载镜像

为了保证服务启动速度,所以最好部署节点提前下载所需镜像。

 1docker pull quay.io/coreos/configmap-reload:v0.0.1
 2docker pull quay.io/coreos/prometheus-config-reloader:v0.29.0
 3docker pull quay.io/coreos/prometheus-operator:v0.29.0
 4docker pull quay.io/coreos/k8s-prometheus-adapter-amd64:v0.4.1
 5docker pull quay.io/prometheus/alertmanager:v0.17.0
 6docker pull quay.io/prometheus/node-exporter:v0.17.0 
 7docker pull quay.io/coreos/kube-rbac-proxy:v0.4.1
 8docker pull quay.io/coreos/kube-state-metrics:v1.5.0
 9docker pull registry.aliyuncs.com/google_containers/addon-resizer:1.8.4
10docker pull quay.io/prometheus/prometheus:v2.7.2

六、更改 kubernetes 配置与创建对应 Service

必须提前设置一些 Kubernetes 中的配置,否则 kube-scheduler 和 kube-controller-manager 无法监控到数据。

1、更改 kubernetes 配置

由于 Kubernetes 集群是由 kubeadm 搭建的,其中 kube-scheduler 和 kube-controller-manager 默认绑定 IP 是 127.0.0.1 地址。Prometheus Operator 是通过节点 IP 去访问,所以我们将 kube-scheduler 绑定的地址更改成 0.0.0.0。

(1)、修改 kube-scheduler 配置

编辑 /etc/kubernetes/manifests/kube-scheduler.yaml 文件

1$ vim /etc/kubernetes/manifests/kube-scheduler.yaml

将 command 的 bind-address 地址更改成 0.0.0.0

1......
2spec:
3  containers:
4  - command:
5    - kube-scheduler
6    - --bind-address=0.0.0.0  #改为0.0.0.0
7    - --kubeconfig=/etc/kubernetes/scheduler.conf
8    - --leader-elect=true
9......

(2)、修改 kube-controller-manager 配置

编辑 /etc/kubernetes/manifests/kube-controller-manager.yaml 文件

1$ vim /etc/kubernetes/manifests/kube-controller-manager.yaml

将 command 的 bind-address 地址更改成 0.0.0.0

1spec:
2  containers:
3  - command:
4    - kube-controller-manager
5    - --allocate-node-cidrs=true
6    - --authentication-kubeconfig=/etc/kubernetes/controller-manager.conf
7    - --authorization-kubeconfig=/etc/kubernetes/controller-manager.conf
8    - --bind-address=0.0.0.0  #改为0.0.0.0
9......

2、创建 kube-scheduler & controller-manager 对应 Service

因为 Prometheus Operator 配置监控对象 serviceMonitor 是根据 label 选取 Service 来进行监控关联的,而通过 Kuberadm 安装的 Kubernetes 集群只创建了 kube-scheduler & controller-manager 的 Pod 并没有创建 Service,所以 Prometheus Operator 无法这两个组件信息,这里我们收到创建一下这俩个组件的 Service。

 1apiVersion: v1
 2kind: Service
 3metadata:
 4  namespace: kube-system
 5  name: kube-controller-manager
 6  labels:
 7    k8s-app: kube-controller-manager
 8spec:
 9  selector:
10    component: kube-controller-manager
11  type: ClusterIP
12  clusterIP: None
13  ports:
14  - name: http-metrics
15    port: 10252
16    targetPort: 10252
17    protocol: TCP
18---
19apiVersion: v1
20kind: Service
21metadata:
22  namespace: kube-system
23  name: kube-scheduler
24  labels:
25    k8s-app: kube-scheduler
26spec:
27  selector:
28    component: kube-scheduler
29  type: ClusterIP
30  clusterIP: None
31  ports:
32  - name: http-metrics
33    port: 10251
34    targetPort: 10251
35    protocol: TCP

如果是二进制部署还得创建对应的 Endpoints 对象将两个组件挂入到 kubernetes 集群内,然后通过 Service 提供访问,才能让 Prometheus 监控到。

七、安装Prometheus Operator

所有文件都在 manifests 目录下执行。

1、创建 namespace

1$ kubectl apply -f 00namespace-namespace.yaml

2、安装 Operator

1$ kubectl apply -f operator/

查看 Pod,等 pod 创建起来在进行下一步

1$ kubectl get pods -n monitoring
2
3NAME                                   READY   STATUS    RESTARTS
4prometheus-operator-5d6f6f5d68-mb88p   1/1     Running   0  

3、安装其它组件

1kubectl apply -f adapter/
2kubectl apply -f alertmanager/
3kubectl apply -f node-exporter/
4kubectl apply -f kube-state-metrics/
5kubectl apply -f grafana/
6kubectl apply -f prometheus/
7kubectl apply -f serviceMonitor/

查看 Pod 状态

 1$ kubectl get pods -n monitoring
 2
 3NAME                                   READY   STATUS    RESTARTS
 4alertmanager-main-0                    2/2     Running   0          
 5alertmanager-main-1                    2/2     Running   0         
 6alertmanager-main-2                    2/2     Running   0         
 7grafana-b6bd6d987-2kr8w                1/1     Running   0
 8kube-state-metrics-6f7cd8cf48-ftkjw    4/4     Running   0          
 9node-exporter-4jt26                    2/2     Running   0  
10node-exporter-h88mw                    2/2     Running   0          
11node-exporter-mf7rr                    2/2     Running   0 
12prometheus-adapter-df8b6c6f-jfd8m      1/1     Running   0          
13prometheus-k8s-0                       3/3     Running   0  
14prometheus-k8s-1                       3/3     Running   0  
15prometheus-operator-5d6f6f5d68-mb88p   1/1     Running   0  

八、查看 Prometheus & Grafana

1、查看 Prometheus

打开地址: http://192.168.2.11:32101 查看 Prometheus 采集的目标,看其各个采集服务状态有木有错误。

2、查看 Grafana

打开地址: http://192.168.2.11:32102 查看 Grafana 图表,看其 Kubernetes 集群是否能正常显示。

  • 默认用户名:admin
  • 默认密码:admin

可以看到各种仪表盘


  !版权声明:本博客内容均为原创,每篇博文作为知识积累,写博不易,转载请注明出处。