24-k8s的附件组件-Metrics-server组件与hpa资源pod水平伸缩

这篇具有很好参考价值的文章主要介绍了24-k8s的附件组件-Metrics-server组件与hpa资源pod水平伸缩。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、概述

        Metrics-Server组件目的:获取集群中pod、节点等负载信息;

        hpa资源目的:通过metrics-server获取的pod负载信息,自动伸缩创建pod;

24-k8s的附件组件-Metrics-server组件与hpa资源pod水平伸缩,k8s系列,kubernetes,linux,容器,云原生

参考链接:

资源指标管道 | Kubernetes

https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/metrics-server

GitHub - kubernetes-sigs/metrics-server: Scalable and efficient source of container resource metrics for Kubernetes built-in autoscaling pipelines.

二、安装部署Metrics-Server组件

        就是给k8s集群安装top命令的意思;

1,下载Metrics-Server资源清单

· 第一种方式:github下载

[root@k8s231 metricsserver]# wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/high-availability-1.21+.yaml

· 第二种方式:本地上传安装包

百度云盘;

链接:https://pan.baidu.com/s/1axn44_AsbHQxIMw9nuNVMw?pwd=jtqb 
提取码:jtqb

2,编辑Metrics-Server的资源清单

[root@k8s231 metricsserver]# vim high-availability-1.21+.yaml

    spec:
      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
          - labelSelector:
              matchLabels:
                k8s-app: metrics-server
            namespaces:
            - kube-system
            topologyKey: kubernetes.io/hostname
      containers:
      - args:
        #启动允许使用不安全的证书
        - --kubelet-insecure-tls
        - --cert-dir=/tmp
        - --secure-port=10250
        - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
        - --kubelet-use-node-status-port
        - --metric-resolution=15s
        #image: registry.k8s.io/metrics-server/metrics-server:v0.7.0
        image: registry.aliyuncs.com/google_containers/metrics-server:v0.6.3

24-k8s的附件组件-Metrics-server组件与hpa资源pod水平伸缩,k8s系列,kubernetes,linux,容器,云原生

3,创建Metrics-Server资源

[root@k8s231 metricsserver]# kubectl apply -f high-availability-1.21+.yaml

4,验证Metrics-Server是否成功安装

· 查看pod

[root@k8s231 metricsserver]# kubectl get pods -A 

24-k8s的附件组件-Metrics-server组件与hpa资源pod水平伸缩,k8s系列,kubernetes,linux,容器,云原生

· 使用top命令测试是否管用

查节点的top值

[root@k8s231 metricsserver]# kubectl top node

24-k8s的附件组件-Metrics-server组件与hpa资源pod水平伸缩,k8s系列,kubernetes,linux,容器,云原生

查看pod的top值

[root@k8s231 metricsserver]# kubectl top  pods -A

24-k8s的附件组件-Metrics-server组件与hpa资源pod水平伸缩,k8s系列,kubernetes,linux,容器,云原生

三、hpa资源实现pod水平伸缩(自动扩缩容)

        1,当资源使用超一定的范围,会自动扩容,但是扩容数量不会超过最大pod数量;

        2,扩容时无延迟,只要监控资源使用超过阔值,则会直接创建pod;

        3,当资源使用率恢复到阔值以下时,需要等待一段时间才会释放,大概时5分钟;

1,编辑deployment资源

[root@k8s231 hpa]# cat deploy.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: dm-hpa
spec:
  replicas: 1
  selector:
    matchLabels:
      k8s: xinjizhiwa
  template:
    metadata:
      labels:
        k8s: xinjizhiwa
    spec:
      containers:
      - name: c1
        image: centos:7
        command:
        - tail
        - -f
        - /etc/hosts
        resources:
          requests:
            cpu: "50m"
          limits:
            cpu: "150m"

2,编写hpa资源清单

[root@k8s231 hpa]# cat hpa.yaml 
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
  name: hpa-tools
spec:
  #指定pod最大的数量是多少(自动扩容的上限)
  maxReplicas: 10
  #指定pod最小的pod数量是多少(自动缩容的下限)
  minReplicas: 2
  #弹性伸缩引用的目标是谁?
  scaleTargetRef:
    #目标资源的api
    apiVersion: "apps/v1"
    #目标资源的类型kind
    kind: Deployment
    #目标资源的名称metadata-name是什么
    name: dm-hpa
  #使用cpu阈值(使用到达多少,开始扩容、缩容)
  #95%
  targetCPUUtilizationPercentage: 95

3,创建hpa和deploy资源

[root@k8s231 hpa]# kubectl apply -f  .

4,查看hpa资源

[root@k8s231 hpa]# kubectl get hpa -o wide

24-k8s的附件组件-Metrics-server组件与hpa资源pod水平伸缩,k8s系列,kubernetes,linux,容器,云原生

到这里,就已经实现了自动扩缩容的pod副本了;

至此,咱们的metrics-server组件和hpa资源,就学习完毕了;

四、压测测试

1,进入pod,安装stress工具

· 进入pod容器

[root@k8s231 hpa]# kubectl exec dm-hpa-5bb4dd448d-ks2rt -it -- sh

· 安装aili源和epel源

sh-4.2# yum -y install wget

sh-4.2# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

sh-4.2# wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo

· 安装压测工具

sh-4.2#  yum -y install stress

2,开始使用命令压测pod

sh-4.2# stress --cpu 8 --io 4 --vm 2 --vm-bytes 128M --timeout 20m

3,查看hpa资源的负载情况

[root@k8s231 ~]# kubectl get hpa -o wide

24-k8s的附件组件-Metrics-server组件与hpa资源pod水平伸缩,k8s系列,kubernetes,linux,容器,云原生

24-k8s的附件组件-Metrics-server组件与hpa资源pod水平伸缩,k8s系列,kubernetes,linux,容器,云原生

可以看到:

1,我们创建的deploy资源只有一个副本;

2,我们创建的hpa资源之后,设置最小值是2,最大值是10 ;

3,我们在查看pod,可以看见,pod变成了2个;

4,我们进入容器,开始压测,将负载压测到超过95%;

5,再次查看pod,发现变成了3个,自动创建了一个;

6,关闭压测,5分钟后,pod有回归到了2个;

7,至此,hpa的pod自动伸缩,测试完毕;文章来源地址https://www.toymoban.com/news/detail-831535.html

到了这里,关于24-k8s的附件组件-Metrics-server组件与hpa资源pod水平伸缩的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • k8s(1.28)使用Helm安装metrics-server

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 提示:这里可以添加本文要记录的大概内容: metrics-server安装后,可以查看集群的node和pod的CPU和Memory占用情况,非常有用。 提示:以下是本篇文章正文内容,下面案例可供参考 官网地址:https://github

    2024年02月19日
    浏览(21)
  • k8s中top指令使用前提:正确安装metrics-server

    k8s中top指令使用前提:正确安装metrics-server

     参考引用项目:https://www.cnblogs.com/lfl17718347843/p/14283796.html      Kubernetes Metrics Server 是 Cluster 的核心监控数据的聚合器,kubeadm 默认是不部署的。        确认metrics-server能否被使用的三个前提(验证以及修改方法https://cnblogs.com/lfl17718347843/p/14283796.html): 安装地址: 修改

    2024年01月16日
    浏览(12)
  • K8S--安装metrics-server,解决error: Metrics API not available问题

    K8S--安装metrics-server,解决error: Metrics API not available问题

    原文网址:K8S--安装metrics-server,解决error: Metrics API not available问题-CSDN博客 本文介绍K8S通过安装metrics-server来解决error: Metrics API not available问题的方法。 Metrics Server采用了Kubernetes Metrics API的标准,它使用HTTP接口来暴露度量指标数据,通过轮询来收集这些数据,然后将其存储在

    2024年02月22日
    浏览(14)
  • rancher和k8s接口地址,Kubernetes监控体系,cAdvisor和kube-state-metrics 与 metrics-server

    rancher和k8s接口地址,Kubernetes监控体系,cAdvisor和kube-state-metrics 与 metrics-server

    为了能够提前发现kubernetes集群的问题以及方便快捷的查询容器的各类参数,比如,某个pod的内存使用异常高企 等等这样的异常状态(虽然kubernetes有自动重启或者驱逐等等保护措施,但万一没有配置或者失效了呢),容器的内存使用量限制,过去10秒容器CPU的平均负载等等容

    2024年01月23日
    浏览(9)
  • K8S系统监控:使用Metrics Server和Prometheus

    K8S系统监控:使用Metrics Server和Prometheus

    Kubernetes 也提供了类似的linux top的命令,就是 kubectl top,不过默认情况下这个命令不会生效,必须要安装一个插件 Metrics Server 才可以。 Metrics Server 是一个专门用来收集 Kubernetes 核心资源指标(metrics)的工具,它定时从所有节点的 kubelet 里采集信息,但是对集群的整体性能影

    2024年02月16日
    浏览(20)
  • 夜莺(Flashcat)V6监控(五):夜莺监控k8s组件(下)---使用kube-state-metrics监控K8s对象

    夜莺(Flashcat)V6监控(五):夜莺监控k8s组件(下)---使用kube-state-metrics监控K8s对象

    目录 (一)前言 (二)categraf作为Daemonset的方式去运行监控k8s组件  (1)1.24版本以下的k8s集群部署方法: ①创建autu.yaml绑定权限 ②Daemonset部署categraf采集监控kubelet,kube-proxy ③测试数据是否采集成功  (2)1.24版本以上的k8s集群部署方法: ①创建secret token 绑定sa账号 ③测试认证 ④Daemo

    2024年02月09日
    浏览(8)
  • k8s--基础--24.3--efk--安装efk组件

    k8s--基础--24.3--efk--安装efk组件

    下面的步骤在k8s集群的master1节点操作 创建一个名称空间,将EFK组件安装到该名称空间中。 名称空间:kube-logging 内容 通过上面步骤已经创建了一个名称空间kube-logging,在这个名称空间下去安装日志收集组件efk 我们将部署一个3节点的Elasticsearch集群,我们使用3个Elasticsearch P

    2024年02月14日
    浏览(12)
  • [kubernetes]安装metrics-server

    metrics server为Kubernetes自动伸缩提供一个容器资源度量源。metrics-server 从 kubelet 中获取资源指标,并通过 Metrics API 在 Kubernetes API 服务器中公开它们,以供 HPA 和 VPA 使用。 之前已经用k8s的二进制文件搭建了一套集群环境,搭建步骤见:二进制部署k8s集群-基于containerd。现需要在

    2024年02月10日
    浏览(9)
  • kube-state-metrics暴露k8s中的监控指标

    kube-state-metrics 是一个用于从 Kubernetes 集群中生成各种资源对象状态指标的工具。 通过Deployment等配置完成安装 https://github.com/kubernetes/kube-state-metrics/tree/main/examples/standard 根据官方给定的配置添加至k8s上 注意需要RBAC授权 启动项 要使 kube-state-metrics 暴露更多的节点和 Pod 指标,可

    2024年02月14日
    浏览(12)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包