如何使用 kong k8 ingress 公开 kong admin api? 管理 API

问题描述

我为我们的 kubernetes 部署了 kong ingress 控制器,我们用它来路由我们的微服务。

现在我想公开我的管理 API 以使用其他功能获取监控统计信息。请有人可以帮助我。

没有任何文档对我有帮助

解决方法

假设我们专注于:

管理 API

这是 Kong 公开其管理 API 的端口。因此,在生产中,此端口应设置防火墙以防止未经授权的访问。

  • 8001 提供 Kong 的 Admin API,您可以使用它通过 HTTP 操作 Kong。见admin_listen
  • 8444 提供相同的 Kong Admin API,但使用 HTTPS。请参阅 admin_listen 和 ssl 后缀。

-- Docs.konghq.com: 2.3.X: Configuration: Admin listen

从 Kubernetes/GKE 的角度来看,您可以通过以下任一方式访问此端口:

  • $ kubectl port-forward deployment/ingress-kong -n kong 8444:8444
    • 此选项将允许您从您的主机查询 https://localhost:8444
  • Service
    • 修改Kong Ingress的Service
    • 修改Kong Ingress的Deployment

附注!

您也可以使用 Ingress 资源公开它,但您需要创建一个指向 ServiceAdmin API,修改 Deployment 并应用 {{ 1}} 指向此 Ingress

的资源

专注于使用 Service 公开此 API:

  • 编辑 ServiceService 并添加:
kong-proxy
  • 编辑 - name: api protocol: TCP port: 8444 targetPort: 8444 Deployment
kong-ingress

重要提示!

以上编辑会将您的 API 公开给外部来源(假设您的最后一个问题与 GKE 的内部 lb 无关)。请参阅 Kong 的文档以获取有关此事的支持:


其他资源: