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

相关文章

一份LLM资源清单围观技术大佬的日常;手把手教你在美国搭建「百万卡」AI数据中心;为啥大模型做不好简单的数学计算? | ShowMeAI日报

👀日报&周刊合集 | 🎡ShowMeAI官网 | 🧡 点赞关注评论拜托啦! 1. 为啥大模型做不好简单的数学计算?从大模型高考数学成绩不及格说起 司南评测体系 OpenCompass 选取 7 个大模型 (6 个开源模型+ GPT-4o),组织参与了 2024 年高考「新课标I卷」的语文、数学、英语考试,然后由经验丰富的判卷老师评判得分。 结果如上图所

加载资源文件失败

背景         自己以前装了一个海康的深度学习算法平台,试用期是一个月,过了一个月之后,因为没有有效注册码或者加密狗的支持了导致无法使用,于是打算卸载掉,在卸载一个软件的时候,无论是使用控制面板还是软件自带的卸载功能,总是卸载不掉,提示“加载资源文件失败”。该软体主要包括以下两部分: 用自带卸载功能卸载的时候分别提示如下:     用控制面板卸载的时候反应很慢,最后也是提示这个

Linux系统稳定性的奥秘:探究其背后的机制与哲学

在计算机操作系统的世界里,Linux以其卓越的稳定性和可靠性著称,成为服务器、嵌入式系统乃至个人电脑用户的首选。那么,是什么造就了Linux如此之高的稳定性呢?本文将深入解析Linux系统稳定性的几个关键因素,揭示其背后的技术哲学与实践。 1. 开源协作的力量Linux是一个开源项目,意味着任何人都可以查看、修改和贡献其源代码。这种开放性吸引了全球成千上万的开发者参与到内核的维护与优化中,形成了

OSG学习:LOD、数据分页、动态调度

LOD(level of detail):是指根据物体模型的结点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。在OSG的场景结点组织结构中,专门提供了场景结点osg::LOD来表达不同的细节层次模型。其中,osg::LOD结点作为父节点,每个子节点作为一个细节层次,设置不同的视域,在不同的视域下显示相应的子节点。 数据分页:在城市

云原生容器技术入门:Docker、K8s技术的基本原理和用途

🐇明明跟你说过:个人主页 🏅个人专栏:《未来已来:云原生之旅》🏅 🔖行路有良友,便是天堂🔖 目录 一、容器技术概述 1、什么是容器技术 2、容器技术的历史与发展 3、容器技术与虚拟机的比较 4、容器技术在云原生中的作用 二、Docker基础 1、Docker简介 2、Docker架构 3、Docker与工作原理 三、Kubernetes(k8s)基础 1、

红队内网攻防渗透:内网渗透之内网对抗:横向移动篇Kerberos委派安全RBCD资源Operators组成员HTLMRelay结合

基于资源的约束委派(RBCD)是在Windows Server 2012中新加入的功能,与传统的约束委派相比,它不再需要域管理员权限去设置相关属性。RBCD把设置委派的权限赋予了机器自身,既机器自己可以决定谁可以被委派来控制我。也就是说机器自身可以直接在自己账户上配置msDS-AllowedToActOnBehalfOfOtherIdentity属性来设置RBCD。 所以核心就是谁或什么权限能修改

CloudStack基本概念-Zone,Pod,Cluster,Host

ZonePodClusterHost Zone Zone(资源域)是CloudStack部署中第二大的组织单元。Zone一般对应一个数据中心,虽然一个数据中心也可以有多个Zone。 把基础设施组织进Zone的一个好处就是可以提供物理隔离和冗余。 例如每个Zone可以有自己的电源供应和网络线路,并且zone之间可以远远地隔离开(虽然不是必须的) 一个zone包括:

client-go删除job同时删除job关联的pod

问题描述 client-go使用以下方式删除job时,并不会把其关联的pod删除,从而导致这些pod成为了孤儿(orphan): err := clientSet.BatchV1().Jobs(namespace).Delete(name, &metav1.DeleteOptions{}) 在删除job的时候将job关联的pod也删除的方法: propagationPolicy := m

按顺序加载外部资源js css

cmmon.js /*** 公共js文件* 内置参数说明:* locationUrl:硬盘路径(开发模式使用)* ytRootUrl:系统根目录,引入该js文件后可直接使用* initJq:自定义jq文件的目录,如果需要引用不同的jq文件,请修改目录。* initCssUrl:初始化css文件容器,如果需要新增或修改引入的c

k8s集群master故障恢复笔记

剔除故障节点 kubectl drain master故障节点 kubectl delete node master故障节点 kubeadm reset rm -rf /etc/kubernetes/manifests mkdir -p /etc/kubernetes/pki/etcd/ 从master其他节点拷 scp /etc/kubernetes/pki/ca.crt ca.k