监控部署

kube-state-metric部署

wget https://github.com/kubernetes/kube-state-metrics/archive/refs/tags/v2.9.2.tar.gz -k
cd /root/k8s-install/kube-state-metric/kube-state-metrics-2.9.2/examples/standard

执行apply之前,最好修改镜像源地址
镜像地址修改:
修改前:- image: registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.9.2
修改后:image: docker.io/bitnami/kube-state-metrics:latest

[root@k8s-master standard]# ls -lhtr
total 20K
-rw-rw-r--. 1 root root  447 May 31  2023 service.yaml
-rw-rw-r--. 1 root root  270 May 31  2023 service-account.yaml
-rw-rw-r--. 1 root root 2.0K May 31  2023 cluster-role.yaml
-rw-rw-r--. 1 root root  418 May 31  2023 cluster-role-binding.yaml
-rw-rw-r--. 1 root root 1.5K Apr 15 08:26 deployment.yaml
[root@k8s-master standard]# kubectl apply -f ./
[root@k8s-master standard]# cat deployment.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app.kubernetes.io/component: exporter
    app.kubernetes.io/name: kube-state-metrics
    app.kubernetes.io/version: 2.9.2
  name: kube-state-metrics
  namespace: kube-system
spec:
  replicas: 1
  selector:
    matchLabels:
      app.kubernetes.io/name: kube-state-metrics
  template:
    metadata:
      labels:
        app.kubernetes.io/component: exporter
        app.kubernetes.io/name: kube-state-metrics
        app.kubernetes.io/version: 2.9.2
    spec:
      automountServiceAccountToken: true
      containers:
      - image: docker.io/bitnami/kube-state-metrics:latest
        livenessProbe:
          httpGet:
            path: /healthz
            port: 8080
          initialDelaySeconds: 5
          timeoutSeconds: 5
        name: kube-state-metrics
        ports:
        - containerPort: 8080
          name: http-metrics
        - containerPort: 8081
          name: telemetry
        readinessProbe:
          httpGet:
            path: /
            port: 8081
          initialDelaySeconds: 5
          timeoutSeconds: 5
        securityContext:
          allowPrivilegeEscalation: false
          capabilities:
            drop:
            - ALL
          readOnlyRootFilesystem: true
          runAsNonRoot: true
          runAsUser: 65534
          seccompProfile:
            type: RuntimeDefault
      nodeSelector:
        kubernetes.io/os: linux
      serviceAccountName: kube-state-metrics

metric-server安装部署:

kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml

Prometheus安装部署

安装指导:
https://github.com/techiescamp/kubernetes-prometheus?tab=readme-ov-file

[root@k8s-master kubernetes-prometheus-master]# cat prometheus-deployment.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: prometheus-deployment
  namespace: monitoring
  labels:
    app: prometheus-server
spec:
  replicas: 1
  selector:
    matchLabels:
      app: prometheus-server
  template:
    metadata:
      labels:
        app: prometheus-server
    spec:
      containers:
        - name: prometheus
          image: prom/prometheus
          args:
            - "--config.file=/etc/prometheus/prometheus.yml"
            - "--storage.tsdb.path=/prometheus/"
          ports:
            - containerPort: 9090
          volumeMounts:
            - name: prometheus-config-volume
              mountPath: /etc/prometheus/
            - name: prometheus-storage-volume
              mountPath: /prometheus/
      -- 配置Prometheus到指定节点
      nodeName: k8s-node2
      volumes:
        - name: prometheus-config-volume
          configMap:
            defaultMode: 420
            name: prometheus-server-conf
  --配置Prometheus使用本地磁盘存放监控数据
        - name: prometheus-storage-volume
          hostPath:
            path: /root/prometheus
            type: ""
          

nodeexporter安装

指导
https://github.com/bibinwilson/kubernetes-node-exporter/blob/main/README.md

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐