[英]HPA Implementation on single node kubernetes cluster
我正在GKE上运行Kubernetes集群。 运行整体应用程序,现在迁移到微服务,因此两者都在集群上并行运行。
整体应用程序是简单的python应用程序,占用200Mb
的内存。
K8s群集是具有15Gb memory and 4vCPU
简单单节点群集GKE。
现在,我正在考虑将HPA用于我的微服务和整体应用程序。
在单节点上,我还安装了Graylog堆栈,其中包括( elasticsearch, mongoDb, Graylog
pod)。 由命名空间Devops
。
在另一个名称空间监视中,正在运行Grafana, Prometheus, Alert manager
。
还有ingress controller and cert-manager
正在运行。
现在,在默认名称空间中,还有另一个Elasticsearch
用程序使用, Redis, Rabbitmq
正在运行。 这些都是单个pod,Type statefulsets
或带有卷的deployment
。
现在,我正在考虑将HPA应用于微服务和应用程序。
有人可以建议如何在GKE上添加节点池和自动扩展。 当我在池中添加节点并从GCP控制台删除旧节点时,整个集群将重新启动,并且服务会停顿一会儿。
另外,我正在考虑使用affinity/anti-affinity
因此有人可以建议使用基础架构并实施HPA。
从你的问题的措辞,我怀疑你想你当前的工作负载迁移到新池不中断。
由于这个动作代表一个自愿中断 ,您可以通过定义开始PodDisruptionBudget
来控制, 可以在此自愿中断操作被驱逐豆荚数量 :
PDB限制了由于自愿中断而同时关闭的已复制应用程序的Pod数量。
PDB中的设置取决于您的应用程序和您的业务需求,有关要应用的值的参考,可以选中此 。
此后,您可以drain
计划您的应用程序的节点,因为它会受到预算的“保护” ,并且drain
使用Eviction API而不是直接删除Pod,这将使逐出更为顺畅。
关于Affinity
,我不确定它是否适合您要实现的上述目标。 但是, 注释中对此特殊问题有一个答案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.