侧边栏壁纸
博主头像
一揽芳华 博主等级

行动起来,活在当下

  • 累计撰写 265 篇文章
  • 累计创建 24 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

8.3.etcd监控

芳华是个男孩!
2024-10-14 / 0 评论 / 0 点赞 / 8 阅读 / 0 字
广告 广告

title: 8.3.etcd监控
order: 45

icon: lightbulb

一、环境

主机名

IP地址

系统

说明

k8s

192.168.11.65

Ubuntu 20.04

k8s版本:v1.23.10 单机版本

准备环境

使用kube-prometheus-stack安装好prometheus,并对整个K8S集群做好监控。

二、etcd监控

1、获取etcd证书

etcd 证书
对于 etcd 集群一般情况下,为了安全都会开启 https 证书认证的方式,所以要想让 Prometheus 访问到 etcd 集群的监控数据,就需要提供相应的证书校验

证书路径:

 vim /etc/kubernetes/manifests/kube-apiserver.yaml

得到

    - --etcd-cafile=/etc/ssl/etcd/ssl/ca.pem
    - --etcd-certfile=/etc/ssl/etcd/ssl/node-k8s.pem
    - --etcd-keyfile=/etc/ssl/etcd/ssl/node-k8s-key.pem
    - --etcd-servers=https://192.168.11.65:2379

可以看到是跟计算机名有关系的。

通过curl检查

curl -k --cacert /etc/ssl/etcd/ssl/ca.pem --cert /etc/ssl/etcd/ssl/node-k8s.pem --key /etc/ssl/etcd/ssl/node-k8s-key.pem https://localhost:2379/metrics

说明etcd 自带metrics(监控样本数据)

2、创建secret(保密字典)

pem文件根据实际修改

kubectl -n monitoring create secret generic etcd-certs \
--from-file=/etc/ssl/etcd/ssl/ca.pem \
--from-file=/etc/ssl/etcd/ssl/node-k8s.pem \
--from-file=/etc/ssl/etcd/ssl/node-k8s-key.pem

检查

kubectl -n monitoring get secret etcd-certs -oyaml

3、kube-prometheus-stack开启etcd监控

修改配置文件

  • 开启etcd监控
vim kube-prometheus-stack/values.yaml

修改如下:

kubeEtcd:
  enabled: true

  endpoints:
  #因为我们的etcd安装到宿主机上的,所以要指定宿主机ip,ip根据实际修改。
  - 192.168.11.65

  service:
    enabled: true
    #注,我的etcd端口为2379,根据实际修改
    port: 2379
    targetPort: 2379 

  serviceMonitor:
    enabled: true
    #https请求
    scheme: https
    insecureSkipVerify: true
    serverName: ""
    #指定证路径
    caFile: "/etc/prometheus/secrets/etcd-certs/ca.pem"
    certFile: "/etc/prometheus/secrets/etcd-certs/node-k8s.pem"
    keyFile: "/etc/prometheus/secrets/etcd-certs/node-k8s-key.pem"


  prometheusSpec:
    #把secret挂载到prometheus的pod里面
    volumes:
    - name: cert-vol
      secret: 
        secretName: etcd-certs
    volumeMounts:
    - name: cert-vol
      mountPath: "/etc/prometheus/secrets/etcd-certs"
      readOnly: true

更新配置

删除服务prometheus-kube-prometheus-kube-etcd

kubectl delete svc prometheus-kube-prometheus-kube-etcd -n kube-system

在执行更新

helm upgrade prometheus -n monitoring kube-prometheus-stack

检查

更新完成后,在 Prometheus 的 Pod 中检查 etcd 证书是否挂载成功

root@k8s:~# kubectl get pod -n monitoring
NAME                                                     READY   STATUS    RESTARTS        AGE
prometheus-prometheus-kube-prometheus-prometheus-0       2/2     Running   0               53s

进入pod,检查

#进入pod
kubectl exec -it prometheus-prometheus-kube-prometheus-prometheus-0 -n monitoring -- sh

#查看
ls /etc/prometheus/secrets/etcd-certs/  

ca.pem            node-k8s-key.pem  node-k8s.pem  #没有问题

4、配置访问地址

因为prometheus重启过,所以之前的9090映射关闭了

kubectl port-forward --address=0.0.0.0 svc/prometheus-kube-prometheus-prometheus -n monitoring 9090:9090 &

kubectl port-forward --address=0.0.0.0 svc/prometheus-grafana -n monitoring 3000:80 &

5、检查

http://192.168.11.65:9090/targets?search=

http://192.168.11.65:3000/dashboards

6、碰到的问题

更新配置时报错如下:

helm upgrade prometheus -n monitoring kube-prometheus-stack

解决:

删除报错的service

kubectl delete svc prometheus-kube-prometheus-kube-etcd -n kube-system

三、我的微信

如果碰到问题,可以随时加我微信,谢谢

0
广告 广告

评论区