【发布时间】:2022-01-08 08:29:22
【问题描述】:
我对@987654325@ 还很陌生,刚刚将我的第一个集群部署到IBM Cloud。当我创建集群时,我得到了一个专用的入口子域,我将在本文的范围内将其称为<long-k8subdomain>.cloud。现在,这个子域适用于我的应用程序。例如:<long-k8subdomain>.cloud/ping 在我的浏览器/curl 上工作得很好——我得到了预期的 JSON 响应。但是,如果我将此子域添加到域提供商的 DNS 设置中的 CNAME 记录(我使用了 Bluehost 和 IBM 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/ 正确路由。我还阅读了一些关于默认后端的内容,但我还没有深入研究。任何帮助都将不胜感激,因为我已经花了几个小时试图解决这个问题。
我使用过的一些来源:
- https://cloud.ibm.com/docs/containers?topic=containers-cs_network_planning
- https://cloud.ibm.com/docs/containers?topic=containers-ingress-types
- https://cloud.ibm.com/docs/containers?topic=containers-comm-ingress-annotations#annotations
注意:我之所以有第二个注释是因为出于某种原因,没有该标头的请求没有被直接路由。所以这是我调试过程的一部分,我最终离开了它,因为我不确定那个注释是否能解决这个问题,所以我暂时离开了。
【问题讨论】:
-
您好 Andrew,感谢您的回复,但是我的应用托管在 Kubernetes 集群中。
标签: kubernetes dns ibm-cloud kubernetes-ingress nginx-ingress