0
点赞
收藏
分享

微信扫一扫

03-夜莺监控k8s

ZGtheGreat 2021-09-27 阅读 60

1. 准备

1.1 cadvisor

cadvisor:
    image: harbocto.xxx.com.cn/public/cadvisor:v0.24.1
    container_name: monitoring_cadvisor
    restart: unless-stopped
    volumes:
      - /:/rootfs:ro
      - /var/run:/var/run:rw
      - /sys:/sys:ro
      - /var/lib/docker/:/var/lib/docker:ro
    ports:
      - "4194:8080"

1.2 文件下载

  • github 地址
    https://github.com/n9e/k8s-mon

  • 安装文件
    下载合适版本到服务器,下载得到 k8s-mon-2.2.0.zip 文件,解压缩得到k8s-mon-2.2.0目录。

1.3 metrics

  • 修改为本地镜像(非必须)
    下载公共镜像:quay.io/coreos/kube-state-metrics:v1.9.7
    上传本地镜像仓库:harbocto.xxx.com.cn/kubernetes/kube-state-metrics:v1.9.7
    修改配置文件:修改 k8s-mon-2.2.0/k8s-config/kube-stats-metrics/deployment.yaml文件
 - image: harbocto.xxx.com.cn/kubernetes/kube-state-metrics:v1.9.7
  • 启动服务
[root@DoM01 k8s-mon-2.2.0]# kubectl apply -f k8s-config/kube-stats-metrics
  • 查看容器
[root@DoM01 kube-stats-metrics]# kubectl get pod -n kube-system
NAME                                  READY   STATUS        RESTARTS   AGE
……
kube-state-metrics-6497487656-mpgqs   1/1     Running       0          21s
……

2. 安装夜莺k8s客户端

2.1 准备

  • 修改为本地镜像

公共源使用阿里云镜像:registry.cn-beijing.aliyuncs.com/n9e/k8s-mon:v2.2.0
上传本地仓库:harbocto.xxx.com.cn/kubernetes/k8s-mon:v2.2.0
同步修改daemonset 和deployment yaml文件中的image字段

  • 创建 namespace
# kubectl create ns kube-admin
  • 证书文件
kubectl create secret generic etcd-certs --from-file=/etc/kubernetes/pki/etcd/healthcheck-client.crt --from-file=/etc/kubernetes/pki/etcd/healthcheck-client.key --from-file=/etc/kubernetes/pki/etcd/ca.crt -n kube-admin

2.2 修改配置文件

  • 查看要修改处
[root@DoM01 k8s-config]# grep N9E_NID *
configMap_daemonset.yaml:    n9e_nid_label_name: "N9E_NID"
configMap_deployment.yaml:    n9e_nid_label_name: "N9E_NID"
daemonSet.yaml:        N9E_NID: "5"
deployment.yaml:        N9E_NID: "5"
  • 查看实际 N9E_NID

  • 修改配置文件
[root@DoM01 k8s-config]# grep N9E_NID *
configMap_daemonset.yaml:    n9e_nid_label_name: "N9E_NID"
configMap_deployment.yaml:    n9e_nid_label_name: "N9E_NID"
daemonSet.yaml:        N9E_NID: "11"
deployment.yaml:        N9E_NID: "11"
  • 启动服务
[root@DoM01 k8s-mon-2.2.0]# kubectl apply -f k8s-config
configmap/k8s-mon-daemonset created
configmap/k8s-mon-deployment created
daemonset.apps/k8s-mon-daemonset created
deployment.apps/k8s-mon-deployment created
serviceaccount/k8s-mon created
clusterrole.rbac.authorization.k8s.io/k8s-mon created
clusterrolebinding.rbac.authorization.k8s.io/k8s-mon created
  • 查看结果
[root@DoM01 k8s-mon-2.2.0]# kubectl get pod -n kube-admin
NAME                                  READY   STATUS    RESTARTS   AGE
k8s-mon-daemonset-2whf2               1/1     Running   0          5s
k8s-mon-daemonset-5dx2l               1/1     Running   0          5s
k8s-mon-daemonset-d4hts               1/1     Running   0          5s
k8s-mon-daemonset-m9p7v               1/1     Running   0          5s
k8s-mon-daemonset-ncqv4               1/1     Running   0          5s
k8s-mon-deployment-794b57b759-85bgb   1/1     Running   0          5s
  • 夜莺查看结果

3. 服务接入夜莺

需要给服务打个标签,如在yml文件中metadata.labels字段添加如 N9E_NID: "11"。值11 是我们在步骤 "2.2"中看到的

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: server
  namespace: "{{ .Values.global.namespace }}"
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: server
        N9E_NID: "11"

举报

相关推荐

0 条评论