美文网首页
K8S部署metrics-server

K8S部署metrics-server

作者: 无味wy | 来源:发表于2023-03-13 11:23 被阅读0次

在新版的K8S中,系统资源的采集均使用Metrics-Server服务,可以通过Metrics-Server服务采集节点和Pod的内存、磁盘、CPU和网络的使用率等信息。

下载地址

wget https://github.com/kubernetes-sigs/metrics-server/archive/v0.3.6.tar.gz

开始部署

tar xf metrics-server-0.3.6.tar.gz

cd metrics-server-0.3.6/deploy/1.8+/

#文件里面的镜像是无法直接拉去的 可以先自己拉去一下官方可用的镜像 k8s.gcr.io/metrics-server-amd64:v0.3.6
crictl pull mirrorgooglecontainers/metrics-server-amd64:v0.3.6
(docker pull mirrorgooglecontainers/metrics-server-amd64:v0.3.6)

#修改metrics-server-deployment文件
 vim metrics-server-deployment.yaml 
---
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 和 imagePullPolicy
        # image: k8s.gcr.io/metrics-server-amd64:v0.3.6
        image: mirrorgooglecontainers/metrics-server-amd64:v0.3.6
        imagePullPolicy: IfNotPresent
        # 新增command配置
        command:
        - /metrics-server
        - --kubelet-insecure-tls
        - --kubelet-preferred-address-types=InternalDNS,InternalIP,ExternalDNS,ExternalIP,Hostname
        volumeMounts:
        - name: tmp-dir
          mountPath: /tmp
        # 新增resources配置
        resources:
          limits:
            cpu: 300m
            memory: 200Mi
          requests:
            cpu: 200m
            memory: 100Mi

修改其他文件

sed -i 's#rbac.authorization.k8s.io/v1beta1#rbac.authorization.k8s.io/v1#' auth-reader.yaml

sed -i 's#rbac.authorization.k8s.io/v1beta1#rbac.authorization.k8s.io/v1#' auth-delegator.yaml

sed -i 's#apiregistration.k8s.io/v1beta1#apiregistration.k8s.io/v1#' metrics-apiservice.yaml

#如不修改可能会报错
unable to recognize "auth-delegator.yaml": no matches for kind "ClusterRoleBinding" in version "rbac.authorization.k8s.io/v1beta1"
unable to recognize "auth-reader.yaml": no matches for kind "RoleBinding" in version "rbac.authorization.k8s.io/v1beta1"
unable to recognize "metrics-apiservice.yaml": no matches for kind "APIService" in version "apiregistration.k8s.io/v1beta1"

#报错的原因是因为资源文件的版本定义过期

执行命令启动

 kubectl apply -f .

#启动完成后就可以使用命令查看资源信息

[root@node1 1.8+]# kubectl top nodes
NAME    CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
node1   127m         6%     1546Mi          54%       
node2   40m          4%     744Mi           39%       
node3   36m          3%     711Mi           37% 

[root@node1 1.8+]# kubectl top pod -n kube-system
NAME                               CPU(cores)   MEMORY(bytes)   
coredns-74586cf9b6-ffm8l           2m           18Mi            
coredns-74586cf9b6-j49nz           2m           19Mi            
etcd-node1                         16m          128Mi           
kube-apiserver-node1               50m          429Mi           
kube-controller-manager-node1      16m          76Mi            
kube-proxy-4wvm2                   3m           19Mi            
kube-proxy-mnmnt                   6m           27Mi            
kube-proxy-x4ppv                   3m           19Mi            
kube-scheduler-node1               3m           28Mi            
metrics-server-897d6dc87-nl8br     1m           11Mi            
tigera-operator-5fb55776df-zlpsj   3m           36Mi

相关文章

网友评论

      本文标题:K8S部署metrics-server

      本文链接:https://www.haomeiwen.com/subject/izkcrdtx.html