首页 > 解决方案 > kubernetes - 通过 REST-Call 列出所有命名空间的入口

问题描述

我想为每个命名空间列出 kubernets 集群上的所有入口 URL。

我知道有可能:

  1. kubectl -> kubectl 获取入口
  2. 众多客户端,例如 python:https ://github.com/kubernetes-client/python/blob/master/kubernetes/docs/ExtensionsV1beta1Api.md#list_ingress_for_all_namespaces

对于我目前的情况,一个简单的 REST-Call 将是最好的解决方案,但我找不到任何指向正确方向的文档。是否有 REST-Endpoint 可以访问 kubernets 集群上的上述信息?

提前致谢。

标签: restkuberneteskubernetes-ingress

解决方案


是的,您可以调用 API 服务器检索所有入口规则:https://kubernetes/apis/extensions/v1beta1/ingresses

此 url 可以在您的集群环境中使用。从外部调用它时,将其替换为一些公共 IP/域。

您将需要使用承载令牌进行身份验证。该令牌通常安装在您的 Pod 中/var/run/secrets/kubernetes.io/serviceaccount/token(也有一些例外,例如 terraform kubernetes 后端默认不安装此令牌)。要获取令牌以供外部使用,您可以使用以下命令将其导出:

TOKEN=$(kubectl describe secret $(kubectl get secrets \
     | grep ^default | cut -f1 -d ' ') | grep -E '^token' | cut -f2 -d':' | tr -d " ")

这里有更多信息(不是关于入口,而是其他 REST API 调用):https ://stackoverflow.com/a/50797128/9423721


推荐阅读