【问题标题】:Kubernetes Ingress not forwarding routesKubernetes Ingress 不转发路由
【发布时间】:2022-01-08 08:29:22
【问题描述】:

我对@9​​87654325@ 还很陌生,刚刚将我的第一个集群部署到IBM Cloud。当我创建集群时,我得到了一个专用的入口子域,我将在本文的范围内将其称为<long-k8subdomain>.cloud。现在,这个子域适用于我的应用程序。例如:<long-k8subdomain>.cloud/ping 在我的浏览器/curl 上工作得很好——我得到了预期的 JSON 响应。但是,如果我将此子域添加到域提供商的 DNS 设置中的 CNAME 记录(我使用了 BluehostIBM Cloud's Internet Services),我会从所有路由中收到 404 响应。然而,这个响应是默认的nginx 404 响应(它在“404 Not Found”下显示“nginx”)。我相信这意味着这意味着正在到达入口负载均衡器,但请求没有被正确路由。我正在使用Kubernetes version 1.20.12_1561 on VPC gen 2,这是我的 ingress-config.yaml 文件:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: my-ingress-resource
  annotations:
    kubernetes.io/ingress.class: "public-iks-k8s-nginx"
    nginx.ingress.kubernetes.io/configuration-snippet: |
      more_set_headers "Host: <long-k8subdomain>.cloud";
spec:
  rules:
  - host: <long-k8subdomain>.cloud
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: my-service-name
            port:
              number: 80

我很确定这个问题是由于注释造成的。也许我使用了错误的或者我没有足够的。理想情况下,我想要这样的东西: api..com/ 正确路由。我还阅读了一些关于默认后端的内容,但我还没有深入研究。任何帮助都将不胜感激,因为我已经花了几个小时试图解决这个问题。

我使用过的一些来源:

注意:我之所以有第二个注释是因为出于某种原因,没有该标头的请求没有被直接路由。所以这是我调试过程的一部分,我最终离开了它,因为我不确定那个注释是否能解决这个问题,所以我暂时离开了。

【问题讨论】:

标签: kubernetes dns ibm-cloud kubernetes-ingress nginx-ingress


【解决方案1】:

为了让 NGINX 入口控制器将针对您自己域的 CNAME 记录的请求路由到服务而不是 IBM Cloud 服务,您需要在入口中使用host 标识您的域的规则。

例如,如果您的域的 DNS 条目是 api.example.com,则将资源 YAML 更改为:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: my-ingress-resource
  annotations:
    kubernetes.io/ingress.class: "public-iks-k8s-nginx"
spec:
  rules:
  - host: api.example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: my-service-name
            port:
              number: 80

您不需要第二个注释即可。

如果您希望两个主机都工作,那么您可以添加第二条规则,而不是替换现有规则中的主机。

【讨论】:

  • 是的!非常感谢。现在一切正常
猜你喜欢
  • 2021-07-31
  • 2020-03-13
  • 1970-01-01
  • 2021-05-15
  • 1970-01-01
  • 1970-01-01
  • 2019-05-03
  • 1970-01-01
相关资源
最近更新 更多