繁体   English   中英

单节点kubernetes集群上的HPA实现

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM