本文介绍了是否必须为入口(GCE)提供defaultBackend?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如果省略defaultBackend
部分,GKE上的Inress似乎返回503,但是我找不到任何支持它的文档。但是一旦我删除它,该入口上的所有服务都会返回503 Server Error
。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
spec:
#defaultBackend:
# service:
# name: test-nginx
# port:
# number: 80
rules:
- host: test.example.com
http:
paths:
- path: /*
pathType: ImplementationSpecific
backend:
service:
name: test-nginx
port:
number: 80
- host: test2.example.com
http:
paths:
- path: /*
pathType: ImplementationSpecific
backend:
service:
name: test2
port:
number: 80
推荐答案
我想帮助您解决有关defaultBackend
和您描述中提到的行为的问题。
definitiondefaultBackend
通常在入口控制器中配置defaultBackend
,以服务于与spec
中的path
不匹配的任何请求。
defaultBackend
通常是入口控制器的配置选项,未在入口资源中指定。如果没有主机或路径与Inress对象中的HTTP请求匹配,则通信将路由到您的默认后端。
由于没有主机或路径与HTTP请求匹配,它会在您删除defaultBackend
时尝试访问defaultBackend
,请求会向您发送错误503。
如果要避免使用defaultBackend
,请确保HTTP请求与主机或路径匹配
如果您想了解有关此主题的更多信息,我想与您分享参考资料Kubernetes Documentation > Concepts > Services, Load Balancing, and Networking > Ingress
在本参考中有一些有关如何在defaultBackend
旅途愉快。
这篇关于是否必须为入口(GCE)提供defaultBackend?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!