Metrics 部署

在新版的 Kubernetes 中,系统资源的采集使用 Metrics-server,可以通过 Metrics 采集节点和 Pod 的内存、磁盘、CPU 和网络的使用率。

将 Master01 节点的 front-proxy-ca.crt 复制到所有 Node 节点

for i in k8s-node01 k8s-node02; \
do scp /etc/kubernetes/pki/front-proxy-ca.crt root@$i:/etc/kubernetes/pki/front-proxy-ca.crt; \
done

在 Master01 节点安装 metrics server

(Optional)如果没有下载 k8s-ha-install,先从 gitee 上克隆它:

git clone https://gitee.com/zhang993632987/k8s-ha-install.git -b manual-installation-v1.27.x

安装 metrics server:

cd /root/k8s-ha-install/metrics-server
comp.yaml存在一点问题,需要先修复才能正常使用

在分支中 manual-installation-v1.27.x 中的文件配置存在一点问题,需要修改后才能正常安装。下面展示了修改相关的片段,并用“#” 将修改的部分标示了出来:

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    k8s-app: metrics-server
  name: metrics-server
  namespace: kube-system
spec:
  selector:
    matchLabels:
      k8s-app: metrics-server
  strategy:
    rollingUpdate:
      maxUnavailable: 0
  template:
    metadata:
      labels:
        k8s-app: metrics-server
    spec:
      containers:
      - args:
        - --cert-dir=/tmp
        - --secure-port=4443
        - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
        - --kubelet-use-node-status-port
        - --metric-resolution=15s
        - --kubelet-insecure-tls
        - --requestheader-client-ca-file=/etc/kubernetes/pki/front-proxy-ca.crt             # change to front-proxy-ca.crt
        - --requestheader-username-headers=X-Remote-User
        - --requestheader-group-headers=X-Remote-Group
        - --requestheader-extra-headers-prefix=X-Remote-Extra-
        image: registry.cn-beijing.aliyuncs.com/dotbalo/metrics-server:v0.6.3
        imagePullPolicy: IfNotPresent
        livenessProbe:
          failureThreshold: 3
          httpGet:
            path: /livez
            port: https
            scheme: HTTPS
          periodSeconds: 10
        name: metrics-server
        ports:
        - containerPort: 4443
          name: https
          protocol: TCP
        readinessProbe:
          failureThreshold: 3
          httpGet:
            path: /readyz
            port: https
            scheme: HTTPS
          initialDelaySeconds: 20
          periodSeconds: 10
        resources:
          requests:
            cpu: 100m
            memory: 200Mi
        securityContext:
          allowPrivilegeEscalation: false
          readOnlyRootFilesystem: true
          runAsNonRoot: true
          runAsUser: 1000
        volumeMounts:
        - mountPath: /tmp
          name: tmp-dir
        - mountPath: /etc/kubernetes/pki             # 删除/front-proxy-ca.pem 
          name: pki
      nodeSelector:
        kubernetes.io/os: linux
      priorityClassName: system-cluster-critical
      serviceAccountName: metrics-server
      volumes:
      - emptyDir: {}
        name: tmp-dir
      - hostPath:
          path: /etc/kubernetes/pki                 # 删除/front-proxy-ca.pem 
        name: pki
kubectl create -f comp.yaml

检查安装情况

查看 metrics-server Pod 状态:

待 Pod 变成 1/1 Running 后,等待几分钟,即可查看节点和 Pod 资源的使用率:

最后更新于

这有帮助吗?