我似乎找不到这个问题的答案,但是HPA和ReplicaSet之间的关系是什么?据我所知,我们定义了一个Deployment对象,它定义了创建RS的副本,RS负责监督我们的Pod并进行向上和向下扩展。HPA在这幅图景中处于什么位置?它是否包裹在Deployment对象上?当您在Deployment对象的清单中定义副本的数量时,我有点困惑。谢谢你!
zc0qhyus1#
当我们创建一个部署时,它会创建一个副本集和pod的数量(我们在replicas中给出)。部署控制RS,RS控制吊舱。现在,HPA是另一个抽象,它给予部署说明,并通过RS确保Pod完成相应的扩展。关于K8S:Horizontal Pod Autoscaler根据观察到的CPU利用率(或者,在自定义指标支持下,根据其他一些应用程序提供的指标)自动缩放复制控制器、部署、副本集或有状态集中的Pod数量。请注意,水平Pod自动缩放不适用于无法缩放的对象,例如DaemonSets。简要概述如下:基本上都是关于控制器的。每个k8s对象都有一个控制器,当创建部署对象时,相应的控制器创建rs和相关的pod,rs控制pod,部署控制rs。另一方面,当hpa控制器看到在任何时刻pod的数量高于/低于预期时,它就会与部署进行对话。阅读更多k8s doc
replicas
dzjeubhm2#
确认@joe-bowbeer在其他答案的评论中所说的话。https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#migrating-deployments-and-statefulsets-to-horizontal-autoscaling 说,如果你使用的是HPA,你应该从Deployment中删除spec.replicas:启用HPA时,建议从其清单中删除Deployment和/或StatefulSet的spec.replicas的值。如果没有这样做,任何时候应用对该对象的更改,例如通过kubectl apply -f deployment.yaml,这将指示Kubernetes将当前Pod的数量扩展到spec.replicas键的值。这可能是不期望的,并且当HPA激活时可能是麻烦的。
Deployment
spec.replicas
2条答案
按热度按时间zc0qhyus1#
当我们创建一个部署时,它会创建一个副本集和pod的数量(我们在
replicas
中给出)。部署控制RS,RS控制吊舱。现在,HPA是另一个抽象,它给予部署说明,并通过RS确保Pod完成相应的扩展。关于K8S:Horizontal Pod Autoscaler根据观察到的CPU利用率(或者,在自定义指标支持下,根据其他一些应用程序提供的指标)自动缩放复制控制器、部署、副本集或有状态集中的Pod数量。请注意,水平Pod自动缩放不适用于无法缩放的对象,例如DaemonSets。
简要概述如下:基本上都是关于控制器的。每个k8s对象都有一个控制器,当创建部署对象时,相应的控制器创建rs和相关的pod,rs控制pod,部署控制rs。另一方面,当hpa控制器看到在任何时刻pod的数量高于/低于预期时,它就会与部署进行对话。
阅读更多k8s doc
dzjeubhm2#
确认@joe-bowbeer在其他答案的评论中所说的话。
https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#migrating-deployments-and-statefulsets-to-horizontal-autoscaling 说,如果你使用的是HPA,你应该从
Deployment
中删除spec.replicas
:启用HPA时,建议从其清单中删除Deployment和/或StatefulSet的spec.replicas的值。如果没有这样做,任何时候应用对该对象的更改,例如通过kubectl apply -f deployment.yaml,这将指示Kubernetes将当前Pod的数量扩展到spec.replicas键的值。这可能是不期望的,并且当HPA激活时可能是麻烦的。