K8S哲学 - 资源调度 HPA (horizontal pod autoScaler-sync-period)

本文主要是介绍K8S哲学 - 资源调度 HPA (horizontal pod autoScaler-sync-period),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

kubectl exec:

kubectl exec -it pod-name -c container-name -- /bin/sh

kubectl run 

 

通过一个 deployment来 演示

apiVersion: apps/v1
kind: Deployment
metadata:name: deploylabels: app: deploy
spec: replicas: 1selector: matchLabels:app: deploy-podtemplate:metadata:name: deploy-podlabels:app: deploy-podspec:containers:- name: deploy-conimage: nginxcommand: ["/bin/sh"]args: ["-c", "while true;do wget -q -O http:127.0.0.1 > /dev/null;  done"]livenessProbe:# startupProbe:# readinessProbe:httpGet:path: /index.htmlport: 80successThreshold: 1failureThreshold: 3periodSeconds: 3timeoutSeconds: 5env: -  name: ARGSvalue: hhhhhresources:requests:cpu: 100mmemory: 128Milimits:cpu: 200mmemory: 128MivolumeMounts:# - name: my-volumes#   mountPath: /app- name: my-volumes2mountPath: /app2volumes: - name: my-volumes2hostPath:path: /app2# volumeClaimTemplates:# - metadata: #     name: my-volumes#   spec: #     accessModes: ['ReadWriteOnce']#     resources:#         requests: #           storage: '200Mi'

最小2个node 最大5个

 spec.containers[0].resources 

requests: min

limits: max

执行:

kubectl autoscale deploy deploy --cpu-percent=20 --min=2 --max=5 

my-deploy 创建 HPA

kubectl top 查看  pod 或 node 的占用指标 (metrics) 

表示 pod一旦创建 ,就一直 死循环请求 nginx页面,造成 cpu 升高,让 hpa 自动扩展 pod

数量

超过所限制的 100m 后自动 扩展 pod1 数量

当 cpu 降低后 ,hpa 会将 pod 数量维持在最 低的数量

 kubectl exec -it pod-name  -c container-name --/bin/bash 执行这个 pod里面的容器  curl 127.0.0.1查看nginx

但是 如果对 该pod 直接 执行 curl 则无法访问

原因是:

创建一个 service.yaml

重点是kind:service里面  selector 没有 matchLabels 直接写 labels

要和上面的 pod模版里面的 labels 对应上,这样可以 通过 service 实现服务发现

直接 访问 service 的ip 就可访问 pod的 服务,而不用关心pod的ip地址,流量可能打到 任何和 service 绑定的 pod 上面。

类式docker 的 【routing mesh 】思想,

apiVersion: v1
kind: Service
metadata:name: deploy-servicelabels:app: deploy-service
spec: ports: - port: 80targetPort: 80name: deploy-service-podselector: app: deploy-podtype: NodePort

查看 service 与之关联的 pod

这里我用的 是minikube 可以,将 minikube内部ip 和 主机ip 打通

minikube service service-name 

现在 通过 一个死循环的方式 一直 请求这个 servive,让pod的 cpu升高 ,

这篇关于K8S哲学 - 资源调度 HPA (horizontal pod autoScaler-sync-period)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

k8s按需创建PV和使用PVC详解

《k8s按需创建PV和使用PVC详解》Kubernetes中,PV和PVC用于管理持久存储,StorageClass实现动态PV分配,PVC声明存储需求并绑定PV,通过kubectl验证状态,注意回收... 目录1.按需创建 PV(使用 StorageClass)创建 StorageClass2.创建 PV

k8s中实现mysql主备过程详解

《k8s中实现mysql主备过程详解》文章讲解了在K8s中使用StatefulSet部署MySQL主备架构,包含NFS安装、storageClass配置、MySQL部署及同步检查步骤,确保主备数据一致... 目录一、k8s中实现mysql主备1.1 环境信息1.2 部署nfs-provisioner1.2.

k8s admin用户生成token方式

《k8sadmin用户生成token方式》用户使用Kubernetes1.28创建admin命名空间并部署,通过ClusterRoleBinding为jenkins用户授权集群级权限,生成并获取其t... 目录k8s admin用户生成token创建一个admin的命名空间查看k8s namespace 的

k8s搭建nfs共享存储实践

《k8s搭建nfs共享存储实践》本文介绍NFS服务端搭建与客户端配置,涵盖安装工具、目录设置及服务启动,随后讲解K8S中NFS动态存储部署,包括创建命名空间、ServiceAccount、RBAC权限... 目录1. NFS搭建1.1 部署NFS服务端1.1.1 下载nfs-utils和rpcbind1.1

k8s容器放开锁内存限制问题

《k8s容器放开锁内存限制问题》nccl-test容器运行mpirun时因NCCL_BUFFSIZE过大导致OOM,需通过修改docker服务配置文件,将LimitMEMLOCK设为infinity并... 目录问题问题确认放开容器max locked memory限制总结参考:https://Access

通过配置nginx访问服务器静态资源的过程

《通过配置nginx访问服务器静态资源的过程》文章介绍了图片存储路径设置、Nginx服务器配置及通过http://192.168.206.170:8007/a.png访问图片的方法,涵盖图片管理与服务... 目录1.图片存储路径2.nginx配置3.访问图片方式总结1.图片存储路径2.nginx配置

Go语言使用sync.Mutex实现资源加锁

《Go语言使用sync.Mutex实现资源加锁》数据共享是一把双刃剑,Go语言为我们提供了sync.Mutex,一种最基础也是最常用的加锁方式,用于保证在任意时刻只有一个goroutine能访问共享... 目录一、什么是 Mutex二、为什么需要加锁三、实战案例:并发安全的计数器1. 未加锁示例(存在竞态)

Java中的xxl-job调度器线程池工作机制

《Java中的xxl-job调度器线程池工作机制》xxl-job通过快慢线程池分离短时与长时任务,动态降级超时任务至慢池,结合异步触发和资源隔离机制,提升高频调度的性能与稳定性,支撑高并发场景下的可靠... 目录⚙️ 一、调度器线程池的核心设计 二、线程池的工作流程 三、线程池配置参数与优化 四、总结:线程

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手

C++中RAII资源获取即初始化

《C++中RAII资源获取即初始化》RAII通过构造/析构自动管理资源生命周期,确保安全释放,本文就来介绍一下C++中的RAII技术及其应用,具有一定的参考价值,感兴趣的可以了解一下... 目录一、核心原理与机制二、标准库中的RAII实现三、自定义RAII类设计原则四、常见应用场景1. 内存管理2. 文件操