• 【K8S】K8S部署Metrics-Server服务


    写在前面

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

    读者可参考《【K8S】基于单Master节点安装K8S集群》一文搭建单Master节点的K8S集群。

    说的具体点:新版K8S资源使用情况的度量(如容器的 CPU 和内存使用)可以通过 Metrics API 获取。

    注意:

    • Metrics API 只可以查询当前的度量数据,并不保存历史数据
    • Metrics API URI 为 /apis/metrics.k8s.io/,在 k8s.io/metrics维护
    • 必须部署 metrics-server 才能使用该 API,metrics-server 通过调用 Kubelet Summary API 获取数据

    部署Metrics-Server服务

    1.下载并解压Metrics-Server

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

    2.修改Metrics-Server配置文件

    cd metrics-server-0.3.6/deploy/1.8+/
    vim metrics-server-deployment.yaml
    

    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: k8s.gcr.io/metrics-server-amd64:v0.3.6
            imagePullPolicy: Always
            volumeMounts:
            - name: tmp-dir
              mountPath: /tmp
    

    修改后的文件内容如下所示。

    ---
    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: 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
    

    修改完metrics-server-deployment.yaml文件后保存退出。

    3.安装Metrics-Server

    执行如下命令安装Metrics-Server。

    kubectl apply -f metrics-server-0.3.6/deploy/1.8+/
    

    4.查看node信息

    安装完Metrics-Server之后,查看node信息,如下所示。

    [root@binghe101 ~]# kubectl top node
    NAME        CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
    binghe101   141m         7%     1113Mi          65%       
    binghe102   62m          3%     549Mi           32% 
    binghe103   100m         5%     832Mi           48%
    

    可以看到,使用Metrics-Server收集到节点信息,说明Metrics-Server安装成功。

    注意事项

    下载Metrics-Server安装文件之后,一定要修改metrics-server-deployment.yaml文件,在使用kubectl top node命令查看node信息时,会报如下错误。

    error: metrics not available yet
    

    写在最后

    如果觉得文章对你有点帮助,请微信搜索并关注「 冰河技术 」微信公众号,跟冰河学习各种编程技术。

    最后附上K8S最全知识图谱链接:

    https://www.processon.com/view/link/5ac64532e4b00dc8a02f05eb?spm=a2c4e.10696291.0.0.6ec019a4bYSFIw#map

    祝大家在学习K8S时,少走弯路。

  • 相关阅读:
    【python】10分钟教你用python打造贪吃蛇超详细教程
    盘点下那些年我们用过的编程工具IDE都有哪些
    帝国竞争算法(imperialist competitive algorithm, ICA )详解+Java代码实现
    10分钟教你使用Picgo+GitHub+ jsDelivr搭建CDN加速免费图床
    10分钟了解代码命名规范(Java、Python)
    什么是算法?从枚举到贪心再到启发式(下)-终于有人把邻域搜索讲清了!
    番茄路径优化系统介绍-专注于算法与路径优化VRP
    什么是算法?从枚举到贪心再到启发式(上)
    10分钟教你用Python打造学生成绩管理系统
    10分钟教你用Python中的Matplotlib绘制多图并合并展示
  • 原文地址:https://www.cnblogs.com/binghe001/p/12821804.html
Copyright © 2020-2023  润新知