如何将有状态集的第一个副本调度到特定节点
How to schedule the first replica of a statefulset to a specific node
我有一个带有多个副本的 StatefulSet,例如两个区域中的 3 个和多个 kubernetes 节点。
我想将 FIRST 个副本放在所选区域中,其余的放在其他区域中。
- mysts-0-0 < main_zone
- mysts-0-1 < back_zone
- mysts-0-2 < back_zone
为什么是第一个?每个 pod 都是一个数据库实例。它们之间配置了复制。默认情况下第一个节点是主节点。
所以我希望能够影响第一个节点的安装位置。
这在 StatefulSet
中不受支持,因为每个副本的 Pod 模板都是相同的。
您可以通过编写自定义调度程序来实现此目的。如需灵感,请参阅这篇文章,了解 CockroachDB 的自定义调度程序:A Custom Kubernetes Scheduler to Orchestrate Highly Available Applications
我有一个带有多个副本的 StatefulSet,例如两个区域中的 3 个和多个 kubernetes 节点。
我想将 FIRST 个副本放在所选区域中,其余的放在其他区域中。
- mysts-0-0 < main_zone
- mysts-0-1 < back_zone
- mysts-0-2 < back_zone
为什么是第一个?每个 pod 都是一个数据库实例。它们之间配置了复制。默认情况下第一个节点是主节点。
所以我希望能够影响第一个节点的安装位置。
这在 StatefulSet
中不受支持,因为每个副本的 Pod 模板都是相同的。
您可以通过编写自定义调度程序来实现此目的。如需灵感,请参阅这篇文章,了解 CockroachDB 的自定义调度程序:A Custom Kubernetes Scheduler to Orchestrate Highly Available Applications