0

我为我们的 kubernetes 部署了 kong 入口控制器,我们正在使用它来路由我们的微服务。

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

没有任何文件可以帮助我解决这个问题。

4

1 回答 1

2

假设我们专注于:

管理 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:配置:管理员收听

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

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

旁注!

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


专注于通过以下方式公开此 API Service

  • 编辑Service:kong-proxy并添加:
  - name: api
    protocol: TCP
    port: 8444 
    targetPort: 8444
  • 编辑Deploymentkong-ingress
        - name: KONG_ADMIN_LISTEN
          value: 0.0.0.0:8444 ssl # <-- from 127.0.0.1

重要的!

上述编辑会将您的 API 暴露给外部来源(假设与您的最后一个问题与 GKE 的内部 lb 没有任何联系)。请参阅 Kong 的文档以获取有关此问题的支持:


其他资源:

于 2021-04-12T08:10:08.973 回答