Kubernetes学习笔记八:Metrics Server和HPA

2023-12-24 12:30

本文主要是介绍Kubernetes学习笔记八:Metrics Server和HPA,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

部署metrics server

metrics-server release github地址

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

kubectl apply -f components.yaml

遇到问题:Failed to pull image “k8s.gcr.io/metrics-server-amd64:v0.3.6”: rpc error: code = Unknown desc = Error response from daemon: Get “https://k8s.gcr.io/v2/”: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
无法拉取镜像。
在这里插入图片描述
一开始我使用的版本是scofield/metrics-server:v0.3.6,v0.3.6无法拉取镜像,然后改成v0.3.7就可以了。

- name: metrics-serverimage: scofield/metrics-server:v0.3.7imagePullPolicy: IfNotPresentargs:- --cert-dir=/tmp- --secure-port=4443- /metrics-server- --kubelet-insecure-tls- --kubelet-preferred-address-types=InternalIP

在这里插入图片描述
在这里插入图片描述
kubectl get pods -n kube-system|grep metrics
kubectl top nodes
在这里插入图片描述
查看metrics-server的日志,有以下报错:
Failed to make webhook authorizer request: the server could not find the requested resource
在这里插入图片描述
参考:k8s-v1.22安装metrics-server

在github/metrics server有提到metrics server支持的k8s版本,我使用的是1.23版本,需要使用0.4以上的版本,而我当前使用的是0.3+的版本。在网上找了一遍,将使用的镜像修改为phperall/metrics-server:v0.4.1

在这里插入图片描述
修改yaml文件后执行以下命令:
docker pull phperall/metrics-server:v0.4.1
kubectl apply -f components.yaml
在这里插入图片描述
换成0.4+镜像后日志打印正常。
在这里插入图片描述
可能还会遇到以下问题:
在这里插入图片描述
解决方案:
关于本地k8s部署metrics-server的no such host问题

使用效果:
kubectl top pods -n kube-system --sort-by=‘cpu’
根据cpu的使用对Pod进行排序

kubectl top nodes
查看Node的资源使用情况
在这里插入图片描述

HPA

定义Deployment和Service。定义resources.requests.cpu是关键。

apiVersion: v1
kind: Service
metadata:name: myngx
spec:ports:- name: myngxport: 3080targetPort: 80selector:app: myngx
---
apiVersion: apps/v1
kind: Deployment
metadata:name: myngx
spec:replicas: 10strategy:rollingUpdate:maxSurge: 40%maxUnavailable: 40%type: RollingUpdateselector:matchLabels:app: myngxtemplate:metadata:labels:app: myngxspec:containers:- image: nginx:1.7.9name: myngxports:- containerPort: 80resources:requests:cpu: 30m

kubectl autoscale deployment myngx --min=1 --max=40 --cpu-percent=20
kubectl get hpa
在这里插入图片描述
yum install httpd-tools -y
安装ab测试软件

watch -n 0.5 kubectl get pods
每隔0.5秒监控pod的变化

ab -c 5000 -n 50000 http://10.99.174.166:3080/
每次并发5000个请求,一共50000个请求。
在这里插入图片描述
kubectl top nodes
查看节点的CPU和内存使用情况。
在这里插入图片描述
在CPU使用增加时,Pod会自动扩容。CPU使用减少时,Pod会自动缩容。
在这里插入图片描述

这篇关于Kubernetes学习笔记八:Metrics Server和HPA的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/531781

相关文章

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

SQL Server 查询数据库及数据文件大小的方法

《SQLServer查询数据库及数据文件大小的方法》文章介绍了查询数据库大小的SQL方法及存储过程实现,涵盖当前数据库、所有数据库的总大小及文件明细,本文结合实例代码给大家介绍的非常详细,感兴趣的... 目录1. 直接使用SQL1.1 查询当前数据库大小1.2 查询所有数据库的大小1.3 查询每个数据库的详

Spring Boot 整合 SSE(Server-Sent Events)实战案例(全网最全)

《SpringBoot整合SSE(Server-SentEvents)实战案例(全网最全)》本文通过实战案例讲解SpringBoot整合SSE技术,涵盖实现原理、代码配置、异常处理及前端交互,... 目录Spring Boot 整合 SSE(Server-Sent Events)1、简述SSE与其他技术的对

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

SQL Server 中的 WITH (NOLOCK) 示例详解

《SQLServer中的WITH(NOLOCK)示例详解》SQLServer中的WITH(NOLOCK)是一种表提示,等同于READUNCOMMITTED隔离级别,允许查询在不获取共享锁的情... 目录SQL Server 中的 WITH (NOLOCK) 详解一、WITH (NOLOCK) 的本质二、工作

SQL Server安装时候没有中文选项的解决方法

《SQLServer安装时候没有中文选项的解决方法》用户安装SQLServer时界面全英文,无中文选项,通过修改安装设置中的国家或地区为中文中国,重启安装程序后界面恢复中文,解决了问题,对SQLSe... 你是不是在安装SQL Server时候发现安装界面和别人不同,并且无论如何都没有中文选项?这个问题也

SQL server数据库如何下载和安装

《SQLserver数据库如何下载和安装》本文指导如何下载安装SQLServer2022评估版及SSMS工具,涵盖安装配置、连接字符串设置、C#连接数据库方法和安全注意事项,如混合验证、参数化查... 目录第一步:打开官网下载对应文件第二步:程序安装配置第三部:安装工具SQL Server Manageme

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.