You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kubernetes特定命名空间部署Kong并通过Ingress路由至服务

解决方案

从你提供的Admin API响应能看到,Kong已经成功识别并创建了对应quick-links-service的Service资源,问题核心在于Ingress路由的生效验证和本地访问的端口转发配置,按以下步骤调整即可:

1. 确认Ingress资源状态

先检查Ingress是否被Kong正确处理:

kubectl get ingress quick-links-ingress -n default

输出中ADDRESS字段应被Kong的Ingress Controller填充,同时可通过Admin API查看路由是否生成:

curl http://localhost:8001/routes

若路由存在,说明Ingress配置已被正确解析。

2. 转发Kong的代理端口

你当前仅转发了Admin端口(8001),但实际处理用户请求的是Kong的代理端口(8000),需额外转发该端口:

# 同时转发代理端口和Admin端口
kubectl port-forward kong-kong-b7f7889d-mwlf9 -n kong 8000:8000 8001:8001

3. 本地访问服务

因为Ingress配置了host: kong.example,本地访问时需要在/etc/hosts(Linux/macOS)或C:\Windows\System32\drivers\etc\hosts(Windows)中添加映射:

127.0.0.1 kong.example

之后即可通过以下URL访问quick-links-service:

curl http://kong.example:8000/quick-links

由于你配置了konghq.com/strip-path: 'true',Kong会自动去掉/quick-links前缀后转发到服务的根路径。

4. 可选:调整Ingress简化本地测试

如果不想修改hosts文件,可去掉Ingress中的host字段,让Kong匹配所有主机:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: quick-links-ingress
  annotations:
    konghq.com/strip-path: 'true'
spec:
  ingressClassName: kong
  rules:
    - http:
        paths:
          - path: /quick-links
            pathType: Prefix
            backend:
              service:
                name: quick-links-service
                port:
                  number: 3000

更新Ingress后,直接通过本地地址访问:

curl http://localhost:8000/quick-links

内容的提问来源于stack exchange,提问作者confusedWarrior

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 20:42:43