将动态命令注入部署
Inject dynamically commands into a deployment
当您拥有 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 中如何处理这种极端情况下的自动扩展。
尤其是事件驱动的系统,一定要有用例,这是我能想到的最接近的了。
这个问题更多的是关于如何在 Kubernetes 中扩展某些服务的选项。我认为最好的模式是 Kubernetes Operator。本质上,这将管理您的 nsqd 应用程序的生命周期。有几个运算符工具可以用来创建你的 nsqd 运算符:
横向扩展运算符的一个很好的例子是 Srimzi,它是 Kubernetes 的 Kafka 运算符。
您还可以在 Operator Hub.
中找到其他知名运算符
当您拥有 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 中如何处理这种极端情况下的自动扩展。
尤其是事件驱动的系统,一定要有用例,这是我能想到的最接近的了。
这个问题更多的是关于如何在 Kubernetes 中扩展某些服务的选项。我认为最好的模式是 Kubernetes Operator。本质上,这将管理您的 nsqd 应用程序的生命周期。有几个运算符工具可以用来创建你的 nsqd 运算符:
横向扩展运算符的一个很好的例子是 Srimzi,它是 Kubernetes 的 Kafka 运算符。
您还可以在 Operator Hub.
中找到其他知名运算符