kong admin-api 未启用,但“kong manager”尝试使用 8444 访问“/services”

问题描述 投票:0回答:1

我有 EKS 1.27 并尝试通过 Helm Chart 2.31.0 安装 Kong。 我需要网关和管理器,不需要其他任何东西。 启用外部 Postgres。 管理器入口和代理入口已启用。 SSL 卸载 ALB 级别;所以“证书:”未启用。

helm upgrade --install kong -n kong . \
  --set env.database="postgres" \
  --set env.pg_host="****" \
  --set env.pg_port="5432" \
  --set env.pg_user="****" \
  --set env.pg_password="****" \
  --set env.pg_database="****" \
  --set env.pg_ssl="on" \
  --set env.pg_ssl_verify="off"

安装后我看到 kong pod 正在运行并且迁移已成功完成。

Manager UI 上只能访问默认页面(概述);问题是

/services
/routes
/consumers
等无法访问。

当我检查页面时,我看到 Manager 正在尝试使用 8444 访问 /services。

我的values.yaml 文件位于此处

问题不在于admin-api的存在;问题是 Kong Manager 中的一个元素通过不存在的端口将浏览器连接重定向到后端。

相关入口如下:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
meta.helm.sh/release-name: kong
meta.helm.sh/release-namespace: kong
generation: 1
labels:
app.kubernetes.io/instance: kong
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: kong
app.kubernetes.io/version: "3.4"
helm.sh/chart: kong-2.31.0
name: kong-kong-manager
namespace: kong
spec:
ingressClassName: nginx
rules:
- host: kong.myawesomedomain.com
  http:
  paths:
  - backend:
    service:
    name: kong-kong-manager
    port:
    number: 8002
    path: /
    pathType: ImplementationSpecific
    status:
    loadBalancer:
    ingress:
  - ip: 172.54.54.54

admin-api 是一个不同的 api,在需要的情况下它有自己的入口。

我希望“Kong Manager Dashboard”只能访问现有后端服务(而不是不存在的服务)以及其入口配置中定义的端口。

尽管未启用 admin api,您能否告诉我 8444 从哪里来?为什么 Kong Manager 尝试使用 8444 访问“/services”?请提出解决方法并指出我缺少什么......

感谢与问候

kubernetes api-gateway kong kong-ingress
1个回答
0
投票

解决方案是admin api必须通过ingress暴露; 这里。管理器使用 admin api 入口地址。

如果 admin api 没有通过 ingress 公开,管理器会尝试使用 8444 访问 admin api,这是没有意义的。

© www.soinside.com 2019 - 2024. All rights reserved.