我有在GKE上运行的单节点kubenertes集群。所有负载都在由名称分隔的单个节点上运行。
现在我想实现自动缩放。我是否可以将mircoservices扩展到新节点,但一个Pod仅在运行我的主节点。
我在想什么
主节点:以1个Pod可用性运行所有内容(Redis,Elasticsearch)
按比例放大的节点:仅按比例放大无状态微服务的副本
所以我有什么方法可以使用node auto scaeler
或使用affinity
来实现。
问题是,现在我正在具有statefulsets
并按卷支持的单个节点上运行Graylog,elasticsearch和redis和Rabbitmq,我必须重新部署一切编辑yaml文件,以便向所有人添加affinity
。 / p>
答案 0 :(得分:1)
我不确定我是否正确理解了您的问题,但是如果我这样理解,则您可能会尝试使用污点和公差(节点相似性)。污渍和容忍度共同作用,以确保未将豆荚安排在不适当的节点上。所有详细信息都可以在文档here中找到。
答案 1 :(得分:1)
假设您遇到的问题是绑定到StatefulSet的持久卷只能从一个节点访问,则可以使用nodeAffinity字段来约束StatefulSet Pod的调度位置。如文档中所述:
PV可以指定节点相似性来定义限制什么的约束 可以从中访问该卷的节点。使用PV的吊舱只会 安排到由节点相似性选择的节点上。