Metrics Server部署

下载地址   wget https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.6/components.yaml


以下 yaml是直接可以使用的

vim  components.yaml

---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
   name: system:aggregated-metrics-reader
   labels:
     rbac.authorization.k8s.io/aggregate-to-view: "true"
     rbac.authorization.k8s.io/aggregate-to-edit: "true"
     rbac.authorization.k8s.io/aggregate-to-admin: "true"
rules:
- apiGroups: ["metrics.k8s.io"]
   resources: ["pods", "nodes"]
   verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
   name: metrics-server:system:auth-delegator
roleRef:
   apiGroup: rbac.authorization.k8s.io
   kind: ClusterRole
   name: system:auth-delegator
subjects:
- kind: ServiceAccount
   name: metrics-server
   namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
   name: metrics-server-auth-reader
   namespace: kube-system
roleRef:
   apiGroup: rbac.authorization.k8s.io
   kind: Role
   name: extension-apiserver-authentication-reader
subjects:
- kind: ServiceAccount
   name: metrics-server
   namespace: kube-system

---
apiVersion: apiregistration.k8s.io/v1beta1
kind: APIService
metadata:
   name: v1beta1.metrics.k8s.io
spec:
   service:
     name: metrics-server
     namespace: kube-system
   group: metrics.k8s.io
   version: v1beta1
   insecureSkipTLSVerify: true
   groupPriorityMinimum: 100
   versionPriority: 100
---
apiVersion: v1
kind: ServiceAccount
metadata:
   name: metrics-server
   namespace: kube-system
---
apiVersion: apps/v1
kind: Deployment
metadata:
   name: metrics-server
   namespace: kube-system
   labels:
     k8s-app: metrics-server
spec:
   selector:
     matchLabels:
       k8s-app: metrics-server
   template:
     metadata:
       name: metrics-server
       labels:
         k8s-app: metrics-server
     spec:
       serviceAccountName: metrics-server
       volumes:

      # mount in tmp so we can safely use from-scratch images and/or read-only containers
       - name: tmp-dir
         emptyDir: {}
       containers:
       - name: metrics-server
         image: registry.aliyuncs.com/google_containers/metrics-server-amd64:v0.3.6
         imagePullPolicy: IfNotPresent
         args:
           - --cert-dir=/tmp
           - --secure-port=4443
           - /metrics-serve
           - --kubelet-preferred-address-types=InternalIP
           - --kubelet-insecure-tls
         ports:
         - name: main-port
           containerPort: 4443
           protocol: TCP
         securityContext:
           readOnlyRootFilesystem: true
           runAsNonRoot: true
           runAsUser: 1000
         volumeMounts:
         - name: tmp-dir
           mountPath: /tmp
       nodeSelector:
         kubernetes.io/os: linux
         kubernetes.io/arch: "amd64"
---
apiVersion: v1
kind: Service
metadata:
   name: metrics-server
   namespace: kube-system
   labels:
     kubernetes.io/name: "Metrics-server"
     kubernetes.io/cluster-service: "true"
spec:
   selector:
     k8s-app: metrics-server
   ports:
   - port: 443

    protocol: TCP
     targetPort: main-port
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
   name: system:metrics-server
rules:
- apiGroups:
   - ""
   resources:
   - pods
   - nodes
   - nodes/stats
   - namespaces
   - configmaps
   verbs:
   - get
   - list
   - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
   name: system:metrics-server
roleRef:
   apiGroup: rbac.authorization.k8s.io
   kind: ClusterRole
   name: system:metrics-server
subjects:
- kind: ServiceAccount
   name: metrics-server
   namespace: kube-system


部署Metrics

kubectl apply  -f   components.yaml

验证是否部署成功

kubectl get pods -n kube-system

监控集群资源利用率

kubectl get apiservice

查看节点资源使用率

kubectl top node

posted @ 2021-12-28 17:48  彭荣俭  阅读(324)  评论(0编辑  收藏  举报