首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向GKE集群添加新的节点池

向GKE集群添加新的节点池
EN

Stack Overflow用户
提问于 2020-01-06 07:15:11
回答 2查看 665关注 0票数 0

我正在运行单节点GKE集群,配置为4vCPU & 16 GB内存。现在,我计划再添加一个节点池1 vCPU和3.75GB内存。

现在,在一个节点上,我正在运行load,比如Elasticsearch、Redis、Rabbitmq,其中有状态集具有磁盘附加。

我没有在Pod配置中添加任何亲和力和反亲和力。如果我将添加新节点,可能会有一些豆荚调度到新节点。而我只是计划在新的豆荚上运行无状态的豆荚。

我是否可以停止在新节点上调度ES、Redis或RabbitMQ,而不添加关联或任何不想重新启动(Touch) pod或服务的内容。ES,Redis,RabbitMQ应该只能停留在老节点上。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-06 07:48:57

nodeSelectorkubectl patch可能是解决方案。

使用新标签

首先,必须使用以下命令使用以下标签statefullnode=true对运行状态的工作负载的节点进行标记:

kubectl label nodes <node-name> statefullnode=true

然后,必须使用kubectl patch修补在此节点上运行的每个部署。

代码语言:javascript
复制
kubectl patch deployments nginx-deployment -p '{"spec": {"template": {"spec": {"nodeSelector": {"statefullnode": "true"}}}}}'

使用节点名

如果您不想标记您的节点,您可以简单地使用节点名称作为nodeSelector的标签。例如,如果您的节点名为my,则运行:

代码语言:javascript
复制
kubectl patch deployments nginx-deployment -p '{"spec": {"template": {"spec": {"nodeSelector": {"kubernetes.io/hostname": "my-gke-node"}}}}}'

运行kubectl get nodes以获取群集节点的名称。

票数 2
EN

Stack Overflow用户

发布于 2020-01-06 07:43:48

你需要的是圣徒。“它们允许节点排斥一组豆荚”(更详细的信息在这里:https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ )

从上面的链接(假设node1是新节点)在您的示例中:

kubectl taint nodes node1 key=value:NoSchedule --这意味着,除非有匹配的公差,否则任何吊舱都无法在node1上调度。(而且您现有的吊舱没有匹配的公差)。

在您想要在新节点上调度的一个新豆荚中,您将应用以下内容:

代码语言:javascript
复制
tolerations:
- key: "key"
  operator: "Equal"
  value: "value"
  effect: "NoSchedule"

因此,旧的豆荚将不能调度到这个新节点,只有新的豆荚,只有当你应用公差,才能在新的节点上调度。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59608060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档