为什么HPA扩容比较慢
最近遇到业务活动期间遇到突发流量,由于pod资源使用飙升导致业务可用性降低的问题。这里面导致业务不可用的原因有很多,其中一个直接原因是流量来临时候资源使用飙升,而HPA没有及时的进行扩容。 这篇文章就是针对这个问题进行研究,主要从这三方面进行阐述:
- 扩容有多慢
- 为什么扩容慢
- 有什么解决方案
最近遇到业务活动期间遇到突发流量,由于pod资源使用飙升导致业务可用性降低的问题。这里面导致业务不可用的原因有很多,其中一个直接原因是流量来临时候资源使用飙升,而HPA没有及时的进行扩容。 这篇文章就是针对这个问题进行研究,主要从这三方面进行阐述:
我平时喜欢用yaml进行部署应用,最近使用kubectl apply发现一个问题。我使用kubectl rollout restart重启应用,kubectl会在spec.template.metadata.annotations
添加kubectl.kubernetes.io/restartedAt: <current time>
。然后我再更新yaml文件进行kubectl apply后,并没有将annotation里kubectl.kubernetes.io/restartedAt: "2022-07-26T11:44:32+08:00"
删除掉。
首先感谢karmada社区提供的kubeCon票,并在现场遇到了zhen chang、hongcai Ren、Wei jiang等karmada的核心贡献和维护者。
往年参加技术大会,如雁过无痕,没有留下深刻印象,没有收到收获。这次强迫自己记录一下,加深映像总结收获。
由于对在离线混部感兴趣,所以听的分享基本都跟这个有关系。
更新:kubecon china 2023的所有视频录像已经出来了,YouTube地址,微信公众号文章
PPT地址:https://kccncosschn2023.sched.com/?iframe=no
istioCon china 2023 PPT:https://istioconchina2023.sched.com/ https://github.com/cloudnativeto/academy/tree/master/istiocon-china-2023
karmada是一个kubernetes多集群管理系统,它可以保持原有使用apiserver的方式,将资源分布到多个集群中。提供了跨云多集群多模式管理、多策略的多集群调度、应用的跨集群故障转移、全局统一资源视图、多集群的服务发现和FederatedHPA能力。它的设计思路继承了集群联邦v2,目前是cncf的sandbox开源项目。
使用kubebuilder来开发vpa相关的operator,这个operator会watch集群里的所有的vpa创建和删除和更新,controller-runtime提供了predictate来过滤调不需要的事件,使用predicate.GenerationChangedPredicate过滤掉vpa更新status。但是却发现vpa的status更新(由vpa-recommender更新推荐值)也触发了Reconcile。
遇到奇怪的现象:spark生成的job pod大概率都调度到同一节点,即不同的job的pod都会调度到同一节点,pod过于集中在某个节点上,出现调度不均衡现象。节点没有任何污点,节点资源空闲程度差不多。job没有任何nodeSelector
、nodeAffinity
、nodeName
、PodTopologySpread
。