Kubernetes (十七) 资源监控

本文介绍了如何在Kubernetes集群中配置MetricsServer和dashboard资源,以及如何使用HorizontalPodAutoscaler(HPA)自动调整工作负载。步骤包括下载镜像、修改配置文件、设置Helm部署和资源限制,以及实战演练HPA的自动扩缩功能。
摘要由CSDN通过智能技术生成

一. 资源监控                                                                                                             

二. metrics-server资源下载配置                                                                         

     官网:资源下载:https://github.com/kubernetes-incubator/metrics-server      

 wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml

      1. 将文件中所需要的镜像路径修改下载并上传到仓库      vim.components.yaml

 docker pull bitnami/metrics-server:0.6.2
 docker tag bitnami/metrics-server:0.6.2 reg.westos.org/library/metrics-server:0.6.2
 docker push reg.westos.org/library/metrics-server:0.6.2

           2.  添加这个选项

           3.  应用文件后查看是否成功

   部署时可能遇到的错误  

三.dashboard资源下载配置                                                                                          

    官方网址:https://github.com/kubernetes/dashboard                       

wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml

              1. 将文件中所需要镜像下载并上传到仓库     vim recommended.yaml

docker pull  kubernetesui/metrics-scraper:v1.0.8
docker tag kubernetesui/metrics-scraper:v1.0.8 reg.westos.org/kubernetesui/metrics-scraper:v1.0.8
docker push reg.westos.org/kubernetesui/metrics-scraper:v1.0.8

docker pull kubernetesui/dashboard:v2.7.0

docker tag  kubernetesui/dashboard:v2.7.0 reg.westos.org/kubernetesui/dashboard:v2.7.0
 docker push reg.westos.org/kubernetesui/dashboard:v2.7.0

                2. 应用文件查看是否成功

           

四.hpa工作原理                                                                                                            

HorizontalPodAutoscaler 演练 | KubernetesHorizontalPodAutoscaler(简称 HPA ) 自动更新工作负载资源(例如 Deployment 或者 StatefulSet), 目的是自动扩缩工作负载以满足需求。水平扩缩意味着对增加的负载的响应是部署更多的 Pod。 这与“垂直(Vertical)”扩缩不同,对于 Kubernetes, 垂直扩缩意味着将更多资源(例如:内存或 CPU)分配给已经为工作负载运行的 Pod。如果负载减少,并且 Pod 的数量高于配置的最小值, HorizontalPodAutoscaler 会指示工作负载资源(Deployment、StatefulSet 或其他类似资源)缩减。本文档将引导你完成启用 HorizontalPodAutoscaler 以自动管理示例 Web 应用程序的扩缩的示例。 此示例工作负载是运行一些 PHP 代码的 Apache httpd。准备开始 你必须拥有一个 Kubernetes 的集群,同时你必须配置 kubectl 命令行工具与你的集群通信。 建议在至少有两个不作为控制平面主机的节点的集群上运行本教程。 如果你还没有集群,你可以通过 Minikube 构建一个你自己的集群,或者你可以使用下面的 Kubernetes 练习环境之一:Killercoda 玩转 Kubernetes 你的 Kubernetes 服务器版本必须不低于版本 1.23. 要获知版本信息,请输入 kubectl version. 如果你运行的是旧版本的 Kubernetes,请参阅该版本的文档版本 (可用的文档版本)。按照本演练进行操作,你需要一个部署并配置了 Metrics Server 的集群。 Kubernetes Metrics Server 从集群中的 kubelets 收集资源指标, 并通过 Kubernetes API 公开这些指标, 使用 APIService 添加代表指标读数的新资源。icon-default.png?t=N7T8https://kubernetes.io/zh-cn/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/

                 1. 下载并上传镜像到私有仓库

              2.创建编辑文件       vim hpa.yaml

apiVersion: apps/v1

kind: Deployment

metadata:

  name: php-apache

spec:

  selector:

    matchLabels:

      run: php-apache

  replicas: 1

  template:

    metadata:

      labels:

        run: php-apache

    spec:

      containers:

      - name: php-apache

        image: hpa-example

        ports:

        - containerPort: 80

        resources:

          limits:

            cpu: 500m

          requests:

            cpu: 200m

---

apiVersion: v1

kind: Service

metadata:

  name: php-apache

  labels:

    run: php-apache

spec:

  ports:

  - port: 80

  selector:

    run: php-apache

               3. 创建hpa动态弹缩

kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10

             4. 增加负载  不断给CPU施压

kubectl run -i --tty load-generator --rm --image=busybox --restart=Never -- /bin/sh -c "while sleep 0.01; do wget -q -O- http://php-apache; done"

   触发hpa扩容pod  此时查看到已经拉伸到8个pod  

      pod负载上升

                  5. 停止施压 

             ctrl+c  

         此时发现占有CUP会下降

       此时看到仍然没有缩容因为有冷却五分钟

              到时间后在查看已经缩容为1个

     实验完成直接删除pod即可

  多项量度指标          

           修改文件,增加内存指标               

kubectl get hpa php-apache -o yaml > hpa-v2.yaml

  • 19
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Grafana 是一个开源的数据可视化工具,可以用于监控和分析各种不同类型的数据源。它支持集成多个数据源,并提供丰富的图表和仪表盘功能,使用户可以实时监控和可视化数据。 对于监控 Docker 和 Kubernetes,Grafana 提供了强大的功能和插件。它可以通过收集和分析来自 Docker 容器Kubernetes 集群的监控指标,包括 CPU 使用率、内存使用率、网络通信等等。通过使用适配器和插件,可以将这些监控数据与 Grafana 进行集成,并生成可视化的图表和仪表盘。这使得用户可以更好地了解 Docker 和 Kubernetes 中的资源使用情况,从而对集群进行更好的管理和优化。 在监控 Docker 中,可以使用 Prometheus 这样的监控工具来收集 Docker 容器的指标数据,并将其显示在 Grafana 的仪表盘中。例如,可以通过 Prometheus 收集每个 Docker 容器的 CPU 和内存使用率,并使用 Grafana 生成相应的图表来实时监控这些数据。 在监控 Kubernetes 中,Grafana 支持集成多个数据源,如 Prometheus、InfluxDB 等,这些数据源可以采集 Kubernetes 集群的各种监控指标,如 Pod 状态、资源使用率、调度情况等。通过配置相应的数据源和仪表盘,可以实时展示 Kubernetes 集群的健康状态和性能指标。 总之,Grafana 提供了一个灵活且可定制的监控平台,可以与 Docker 和 Kubernetes 集成,实时监控和可视化其关键性能指标和健康状态。用户可以通过配置仪表盘,了解集群的资源使用情况、性能瓶颈和故障情况,从而更好地管理和优化这些容器化和集群化的应用环境。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值