【问题标题】:How to collect all ip's of pods by specific name filter如何通过特定名称过滤器收集所有 pod 的 ip
【发布时间】:2019-09-03 15:07:45
【问题描述】:

我有一些遗留应用程序,部署在集群环境中。当其中一个应用程序节点收到调用时,它会从某个配置文件中获取部署应用程序的所有应用程序节点的静态列表。

当收集到所有 ip 时,它会通过 jmx 与每个应用程序节点进行通信。

当前的目标是迁移到 k8s,因此在这种情况下,应用程序 pod 列表是动态的,可以按原样存储。需要实现诸如服务发现之类的东西。

目前的想法是实现一些简单的休息服务,它将在单独的 pod 中运行,其主要目的是始终返回一些应用程序 pod 的 ips(入口点)列表,这些应用程序 pod 被某些谓词过滤。

所以我有几个问题:

  1. 这是正确的工作方式吗?还有其他选择吗? (不更改旧代码)
  2. 有没有现成的解决方案?如果没有,我如何在我的 rest 服务中获取有关所需 pod 的信息?

【问题讨论】:

    标签: docker kubernetes deployment


    【解决方案1】:

    使用范围选择器定义服务,以便包含所有特殊的 pod,然后您可以列出所有请求 apiservice 的端点 IP。
    您可以使用该命令检查它是否正常工作。

    kubectl 获取端点

    之后是如何在您的 pod 中执行此命令。那是另一个故事。 这个链接解释了这个问题 https://kubernetes.io/docs/tasks/administer-cluster/access-cluster-api/#accessing-the-api-from-a-pod

    【讨论】:

      【解决方案2】:

      看起来您正在运行一个集群应用程序,所以您可能需要一个 Headless Service 和一个 StatefulSet

      有了这个,您将能够使用简单的 DNS(如 replicas-[0-9].namespace.svc)访问您的副本,而无需从端点查询中提取 IP 地址。

      【讨论】:

      • 不太明白StatefulSet是怎么关联的?我的应用程序是无状态的
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-27
      • 1970-01-01
      • 2016-07-25
      • 2022-08-15
      • 2022-11-17
      • 1970-01-01
      • 2022-07-20
      相关资源
      最近更新 更多