1

当你有一个 StatefulSet 或一个 Deployment 时,你通常有办法提供将在创建 pod 的容器时输入的命令。

当部署使用 HPA 自动缩放时,是否有可能将更多参数注入到命令数组中,或者如果它缩小,则删除某些参数?

例如,如果您想允许 nsqlookupd 横向扩展(另一个部署),那么您必须将其新的 pod IP 注册到 nsqAdmin pod 的命令列表中。

command:
   - /nsqd
   - -data-path
   - /data
   - -lookupd-tcp-address
   - nsqlookupd-0.nsqlookupd:4160
   - -lookupd-tcp-address
   - nsqlookupd-1.nsqlookupd:4160
   - -lookupd-tcp-address
   - nsqlookupd-2.nsqlookupd:4160
    ...

这种情况是假设的,因为您需要达到大量的队列,我想需要扩展到超过 3 个 nsqlookupd-s(NSQ 的队列发现 svc),因此对于中等负载,固定数量的 looupd-s 就可以了. 即便如此,我想知道在极端情况下如何在 Kubernetes 中处理这种类型的自动扩展。

尤其是事件驱动的系统,肯定有用例,这是我能想到的最接近的。

4

1 回答 1

2

这个问题更多的是关于如何在 Kubernetes 中扩展某些服务的选项。我认为最好的模式是拥有一个Kubernetes Operator。本质上,这将管理您的 nsqd 应用程序的生命周期。您可以使用多种运算符工具来创建 nsqd 运算符:

Srimzi 是Kubernetes的 Kafka 运算符,一个很好的横向扩展运算符示例。

您还可以在Operator Hub中找到其他知名运营商。

于 2020-06-21T04:38:22.880 回答