问题描述
我为我们的 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
- 修改Kong Ingress的
附注!
您也可以使用 Ingress
资源公开它,但您需要创建一个指向 Service
的 Admin API
,修改 Deployment
并应用 {{ 1}} 指向此 Ingress
专注于使用 Service
公开此 API:
- 编辑
Service
:Service
并添加:
kong-proxy
- 编辑
- name: api protocol: TCP port: 8444 targetPort: 8444
:Deployment
kong-ingress
重要提示!
以上编辑会将您的 API 公开给外部来源(假设您的最后一个问题与 GKE 的内部 lb 无关)。请参阅 Kong 的文档以获取有关此事的支持:
其他资源: