Kubernetes AKS-入口后端404错误



我在azure上使用aks。当我试图请求我的服务时,我有404。

入口:

Name:             portal-deployment2
Namespace:        portal-api
Address:          10.226.16.4
Default backend:  default-http-backend:80 (<none>)
TLS:
portal-certificate terminates portal.example.com
Rules:
Host                                      Path  Backends
----                                      ----  --------
portal.example.com
/   portal-deployment2:80 (10.226.16.48:9999)
Annotations:
certmanager.k8s.io/acme-challenge-type:  http01
certmanager.k8s.io/cluster-issuer:       letsencrypt-prod
kuberentes.io/tls-acme:                  true
kubernetes.io/ingress.class:             nginx
Events:
Type    Reason  Age   From                      Message
----    ------  ----  ----                      -------
Normal  CREATE  11m   nginx-ingress-controller  Ingress portal-api/portal-deployment2
Normal  UPDATE  10m   nginx-ingress-controller  Ingress portal-api/portal-deployment2

服务:

Name:              portal-deployment2
Namespace:         portal-api
Labels:            app.kubernetes.io/instance=portal
app.kubernetes.io/managed-by=Helm
app.kubernetes.io/name=deployment2
app.kubernetes.io/version=1.16.0
helm.sh/chart=deployment2-0.1.0
Annotations:       <none>
Selector:          app.kubernetes.io/instance=portal,app.kubernetes.io/name=deployment2
Type:              ClusterIP
IP:                10.0.187.224
Port:              http  80/TCP
TargetPort:        9999/TCP
Endpoints:         10.226.16.48:9999
Session Affinity:  None
Events:            <none>

当我使用nginx控制器bash:时

bash-5.0$ curl 10.226.16.48:9999
{"timestamp":"2020-03-24T09:39:34.545+0000","status":404,"error":"Not Found","message":"No message available","path":"/"}
bash-5.0$ curl 10.0.187.224
{"timestamp":"2020-03-24T09:39:43.565+0000","status":404,"error":"Not Found","message":"No message available","path":"/"}
bash-5.0$ curl -k portal.example.com
default backend - 404

看起来nginx控制器无法处理路线并将我重定向到适当的POD

阅读SO帖子后,我认为问题可能与portal.example.com 相关的DNS条目有关

由于用户显示卷曲POD/服务IP会返回预期结果,但当尝试使用DNS名称时,我认为portal.example.com的DNS解析不会返回用户期望的IP。

,这不起作用的原因有很多

1( DNS条目不是由第三方服务自动管理的,例如:外部DNS2( DNS条目没有手动添加到DNS区域(example.com(3( DNS条目没有在用户的机器/etc/host文件上正确覆盖。

需要注意的是,portal.example.com需要解析到NGINX入口控制器Kubernetes服务IP 的服务IP

希望这有助于澄清潜在问题。

最新更新