kubernetes - 在 Kubernetes 上部署可扩展的应用程序,这要求每个副本 Pod 具有不同的参数

标签 kubernetes kubernetes-helm statefulset

我试图了解如何在 Kubernetes 上部署应用程序,该应用程序要求同一部署的每个 Pod 在启动命令中使用不同的参数。

我有一个在 Kubernetes 上运行 Spark 的应用程序,需要在启动时生成执行器 Pod。问题是应用程序的每个 Pod 都需要使用自己的端口和 Spark 应用程序名称生成自己的执行器。

我已经阅读了有状态集并搜索了文档,但没有找到问题的解决方案。由于每个 Pod 都需要使用不同的端口,因此如果我理解正确的话,我需要在服务中声明该端口,并直接在 args 中作为参数传递给 pod 命令。

有没有一种方法可以在不使用多个部署(我需要创建的每个 Pod 一个)的情况下获得此信息?因为这是我能想到的唯一解决方案,但部署后无法扩展。 我使用 Helm 来部署应用程序,因此我可以根据需要轻松创建尽可能多的部署和/或服务,但我希望找到一个可以在运行时扩展的解决方案(如果可能的话)。

最佳答案

我认为您无法拥有一个从不同规范创建 POD 的部署。您无法在 Kubernetes 中使用它,Helm 也无济于事(因为 Helm 只是 Kubernetes 配置的模板管理器)。

你可以做的就是将每个 Pod 指定为单独的配置(如果是单个 Pod,则不一定需要 Deployment)并让 Helm 来管理它。

关于kubernetes - 在 Kubernetes 上部署可扩展的应用程序,这要求每个副本 Pod 具有不同的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57635810/

相关文章:

kubernetes - 通过入口服务将来自 kubernetes pod 的 http 请求发送到 Minikube 中的另一个 pod

kubernetes - 如何将Configmap添加到StatefulSet中的特定Pod?

kubernetes - ConfigMap 挂载在 Persistent Volume Claims 上

kubernetes - 以编程方式覆盖 Helm 子图中的值

kubernetes - 在 helm 版本 2.14.1 中的 helm 图表中包含系统用户名

kubernetes - 如何将单个不同的 Secret 安装到 StatefulSet 管理的每个 Pod 中?

elasticsearch - Open Distro for Elasticsearch:重设默认管理员密码

amazon-ec2 - 在 aws 上使用弹性 IP 地址公开 kubernetes 服务

kubernetes - kubernetes 如何保证kube proxy 和kubelet 的可靠性?