Docker 单节点kubernetes集群的HPA实现
我正在GKE上运行Kubernetes群集。运行单片应用程序,现在迁移到微服务,以便两者在集群上并行运行 单片应用程序是一个简单的python应用程序,占用大约200Mb的内存 K8s集群是简单的单节点集群GKE,具有Docker 单节点kubernetes集群的HPA实现,docker,
elasticsearch,kubernetes,google-cloud-platform,google-kubernetes-engine,Docker,
elasticsearch,Kubernetes,Google Cloud Platform,Google Kubernetes Engine,我正在GKE上运行Kubernetes群集。运行单片应用程序,现在迁移到微服务,以便两者在集群上并行运行 单片应用程序是一个简单的python应用程序,占用大约200Mb的内存 K8s集群是简单的单节点集群GKE,具有15Gb内存和4vCPU 现在我正在考虑将HPA应用于我的微服务和单片应用程序 在单个节点上,我还安装了Graylog堆栈,其中包括(elasticsearch、mongoDb、Graylogpod)。按命名空间Devops指定 在另一个名称空间监视中,Grafana、Promet
15Gb内存和4vCPU
现在我正在考虑将HPA应用于我的微服务和单片应用程序
在单个节点上,我还安装了Graylog堆栈,其中包括(elasticsearch、mongoDb、Graylog
pod)。按命名空间Devops
指定
在另一个名称空间监视中,Grafana、Prometheus和Alert manager正在运行
还有入口控制器和证书管理器运行
现在在默认名称空间中有另一个Elasticsearch
供应用程序使用,Redis,Rabbitmq
正在运行。这些都是单吊舱,类型为statefulset
或deployment
,带有卷
现在我正在考虑将HPA应用于微服务和应用程序
有人能建议如何在GKE上添加节点池和自动缩放吗。当我在池中添加节点并从GCP控制台中删除旧节点时,整个集群重新启动,服务停止一段时间
另外,我正在考虑使用亲和性/反亲和性
,以便有人建议使用Device infrastructure并实施HPA。根据您问题中的措辞,我怀疑您希望在不中断的情况下将当前工作负载移动到新的池中
由于此操作表示自愿中断,您可以从定义PodDisruptionBudget
开始:
PDB限制了由于自愿中断而同时关闭的复制应用程序的POD数量
PDB中的设置取决于您的应用程序和业务需要,有关要应用的值的参考,您可以查看
接下来,您可以drain
调度应用程序所在的节点,因为它将受到预算的“保护”,并且drain
使用而不是直接删除POD,这将使逐出变得优雅
关于亲和力,我不确定它是否符合您试图实现的上述目标。然而,在这方面有一个答案。对于亲和性/反亲和性
,我建议阅读