【问题标题】:How to make http call to an application running inside a kubernetes pod from outside?如何从外部对运行在 kubernetes pod 内的应用程序进行 http 调用?
【发布时间】:2019-05-29 09:21:13
【问题描述】:

我正在尝试编写一个接受以下参数的实用程序 -

  1. kubernetes 服务名称
  2. spring boot 执行器端点名称(例如 /actuator/loggers)

此实用程序应调用此服务的所有 pod 上的端点。

目前我正在通过服务名称获取所有pod的名称并遍历它们并通过运行来满足要求-

`kubectl exec $pod -- curl http:\\localhost:8081\actuator\loggers`

虽然它有效,但我正在寻找一种解决方案,我不必在 pod 上执行“exec”,因为我不确定运行此实用程序的用户可能拥有的权限。有什么方法可以对单个 pod 进行 http 调用?

【问题讨论】:

    标签: spring-boot kubernetes spring-boot-actuator kubernetes-pod


    【解决方案1】:

    我会在 kubernetes 集群中运行这个实用程序,并将这个实用程序公开给需要数据的开发人员。这样,您只需公开此实用程序,而不是公开所有 pod 以允许 http 调用。我认为这种方式要简单得多。

    有多种方法可以将 Kubernetes Pod 暴露到集群外部,但我推荐 using Ingress,它使用 nginx 代理将来自外部的流量路由到您的 pod。

    【讨论】:

    • 这是否意味着我需要使用某种代理机制来公开此实用程序?您能否提供一些参考或示例?
    • Kubernetes 具有将 pod 暴露到集群外部的内置方法。您可以在集群中的 Pod 中运行您的实用程序,并使用其中一种机制将其暴露给外部。我将使用文档链接更新答案。
    猜你喜欢
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-08
    • 2021-11-28
    • 1970-01-01
    相关资源
    最近更新 更多