【问题标题】:Kubernetes Java Spring microservices - generating a unique identifier for each container/service replicaKubernetes Java Spring 微服务 - 为每个容器/服务副本生成唯一标识符
【发布时间】:2019-06-14 01:04:07
【问题描述】:

我正在使用 Java Spring MVC 中的微服务。使用 Kubernetes,包含此微服务应用程序逻辑的 pod 可以根据传入的负载进行扩展/复制。简而言之,我的应用程序可以运行 2 个或更多副本。

我需要一个特定的标识符机制来描述包含应用程序的特定 pod 副本/容器。我正在考虑在运行时生成一个随机数作为描述符并将其作为标识符存储到容器中。但我想知道是否有更好的方法,考虑到我正在使用 Spring、TomCat 和 Kubernetes,我希望这个技术堆栈中的一些可以为我做这样的事情?

【问题讨论】:

    标签: java spring tomcat kubernetes microservices


    【解决方案1】:

    Kubernetes 可以做到这一点。每个 Pod 都有一个唯一的名称,您可以将其作为主机名或通过环境变量进行访问。如果您使用标准部署资源,但如果 Pod 死亡并重新创建,这可能会发生变化。听起来你想要一个 StatefulSet,其中 Pod 被分配了唯一的序号索引并在重新创建时保留这些索引 - https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-identity

    【讨论】:

    • 谢谢;非常有帮助!澄清一下,如果这个名称在 pod 死掉/重新创建后更改,对我来说并不重要,只要我可以在运行时访问它并且在应用程序的整个生命周期中都不会更改。所以我使用默认部署资源是安全的吗?
    • 是的,它是安全的,尽管这是一个有争议的领域,因为建议往往是尽量避免它stackoverflow.com/a/52363224/9705485
    猜你喜欢
    • 2018-10-25
    • 2021-07-07
    • 1970-01-01
    • 2019-02-20
    • 2021-06-18
    • 2018-07-28
    • 2020-08-03
    • 2021-05-24
    • 1970-01-01
    相关资源
    最近更新 更多