Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker 单节点kubernetes集群的HPA实现_Docker_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Kubernetes_Google Cloud Platform_Google Kubernetes Engine - Fatal编程技术网 elasticsearch,kubernetes,google-cloud-platform,google-kubernetes-engine,Docker,elasticsearch,Kubernetes,Google Cloud Platform,Google Kubernetes Engine" /> elasticsearch,kubernetes,google-cloud-platform,google-kubernetes-engine,Docker,elasticsearch,Kubernetes,Google Cloud Platform,Google Kubernetes Engine" />

Docker 单节点kubernetes集群的HPA实现

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

我正在GKE上运行Kubernetes群集。运行单片应用程序,现在迁移到微服务,以便两者在集群上并行运行

单片应用程序是一个简单的python应用程序,占用大约200Mb的内存

K8s集群是简单的单节点集群GKE,具有
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,这将使逐出变得优雅


关于亲和力,我不确定它是否符合您试图实现的上述目标。然而,在这方面有一个答案。

对于
亲和性/反亲和性
,我建议阅读