【发布时间】:2020-11-26 11:24:59
【问题描述】:
我有一个有 5 个副本的 statefulset。这意味着我有名为 pod-0 .. pod-4 的 pod。
我想创建 2 个服务。
-
仅将请求路由到 pod-0 的服务(这是我的编辑服务器):我知道我可以通过服务选择器中的“statefulset.kubernetes.io/pod-name=pod-0”来实现这一点。这很好。
-
将请求路由到除 pod-0 之外的所有剩余节点的服务(即使应用程序扩展并添加更多实例,这些新实例也需要映射到此服务):我无法实现这一点。
关于如何实现第二次服务的任何想法??
由于它是通过 1 个有状态清单文件部署的,所有 pod 都具有相同的标签。
【问题讨论】:
-
workaround 会以某种方式帮助您吗?主要思想是额外添加标签以在将来与服务等一起使用它们(即使重新声明了 pod)
-
嗨@Vitalii。谢谢(你的)信息 。我遵循了这种方法。 1. 创建角色+角色绑定+服务账号,拥有标签更新权限。 2. 在我使用 Docker 文件 [CMD] 执行的脚本结束时,我安装了 kubectl,然后执行 kubectl label pod ${HOSTNAME} pod-type=${POD_TYPE} --server=kubernetes.default --token= $(cat /var/run/secrets/kubernetes.io/serviceaccount/token) --certificate-authority=/var/run/secrets/kubernetes.io/serviceaccount/ca.crt -n ${POD_NAMESPACE} 以上环境变量我我正在传递状态集。它达到了我的目的。
-
很高兴听到这个消息。请发表您的评论作为未来研究人员的答案
标签: kubernetes kubernetes-statefulset