zoukankan      html  css  js  c++  java
  • 【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文件原有的内容如下所示。

     1 ---
     2 apiVersion: v1
     3 kind: ServiceAccount
     4 metadata:
     5   name: metrics-server
     6   namespace: kube-system
     7 ---
     8 apiVersion: apps/v1
     9 kind: Deployment
    10 metadata:
    11   name: metrics-server
    12   namespace: kube-system
    13   labels:
    14     k8s-app: metrics-server
    15 spec:
    16   selector:
    17     matchLabels:
    18       k8s-app: metrics-server
    19   template:
    20     metadata:
    21       name: metrics-server
    22       labels:
    23         k8s-app: metrics-server
    24     spec:
    25       serviceAccountName: metrics-server
    26       volumes:
    27       # mount in tmp so we can safely use from-scratch images and/or read-only containers
    28       - name: tmp-dir
    29         emptyDir: {}
    30       containers:
    31       - name: metrics-server
    32         image: k8s.gcr.io/metrics-server-amd64:v0.3.6
    33         imagePullPolicy: Always
    34         volumeMounts:
    35         - name: tmp-dir
    36           mountPath: /tmp

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

     1 ---
     2 apiVersion: v1
     3 kind: ServiceAccount
     4 metadata:
     5   name: metrics-server
     6   namespace: kube-system
     7 ---
     8 apiVersion: apps/v1
     9 kind: Deployment
    10 metadata:
    11   name: metrics-server
    12   namespace: kube-system
    13   labels:
    14     k8s-app: metrics-server
    15 spec:
    16   selector:
    17     matchLabels:
    18       k8s-app: metrics-server
    19   template:
    20     metadata:
    21       name: metrics-server
    22       labels:
    23         k8s-app: metrics-server
    24     spec:
    25       serviceAccountName: metrics-server
    26       volumes:
    27       # mount in tmp so we can safely use from-scratch images and/or read-only containers
    28       - name: tmp-dir
    29         emptyDir: {}
    30       containers:
    31       - name: metrics-server
    32         # 修改image 和 imagePullPolicy
    33         image: mirrorgooglecontainers/metrics-server-amd64:v0.3.6
    34         imagePullPolicy: IfNotPresent
    35         # 新增command配置
    36         command:
    37         - /metrics-server
    38         - --kubelet-insecure-tls
    39         - --kubelet-preferred-address-types=InternalDNS,InternalIP,ExternalDNS,ExternalIP,Hostname
    40         volumeMounts:
    41         - name: tmp-dir
    42           mountPath: /tmp
    43         # 新增resources配置
    44         resources:
    45           limits:
    46             cpu: 300m
    47             memory: 200Mi
    48           requests:
    49             cpu: 200m
    50             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信息,如下所示。

    1 [root@binghe101 ~]# kubectl top node
    2 NAME        CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
    3 binghe101   141m         7%     1113Mi          65%       
    4 binghe102   62m          3%     549Mi           32% 
    5 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时,少走弯路。

  • 相关阅读:
    【转】漫谈linux文件IO--io流程讲的很清楚
    iostat命令
    【转】ATA Secure Erase
    同步IO和异步IO
    fio2.1.10--README
    【转】地址空间、内核空间、IO地址空间
    博客收藏--sailing的博客
    Cosmos OpenSSD架构分析--HOST interface(未完)
    nginx 过滤zip 类型的文件
    freeswitch GUI界面(portal)
  • 原文地址:https://www.cnblogs.com/sandshell/p/13637585.html
Copyright © 2011-2022 走看看