问题描述
在我的入口配置中,我更改了默认后端。
spec:
defaultBackend:
service:
name: navigation-service
port:
number: 80
当我描述入口时,我得到了
Name: ingress-Nginx
Namespace: default
Address: 127.0.0.1
Default backend: navigation-service:80 (10.1.173.59:80)
我尝试通过本地主机访问它,但得到了 404。但是,当我 curl 10.1.173.59 时,我得到了静态页面。所以我的导航服务没问题,默认支持有问题吗?即使我尝试
- pathType: Prefix
path: /
backend:
service:
name: navigation-service
port:
number: 80
我遇到了 500 错误。 我做错了什么?
编辑:通过 NodePort 工作,但我需要通过入口访问它。
apiVersion: apps/v1
kind: Deployment
Metadata:
name: navigation-deployment
spec:
selector:
matchLabels:
app: navigation-deployment
template:
Metadata:
labels:
app: navigation-deployment
spec:
containers:
- name: Nginx
image: Nginx:1.13.3-alpine
ports:
- containerPort: 80
volumeMounts:
- mountPath: /usr/share/Nginx/html/index.html
name: Nginx-html
- mountPath: /etc/Nginx/conf.d/default.conf
name: Nginx-default
volumes:
- name: Nginx-html
hostPath:
path: /home/x/navigation/index.html
- name: Nginx-default
hostPath:
path: /home/x/navigation/default.conf
apiVersion: v1
kind: Service
Metadata:
name: navigation-service
spec:
type: ClusterIP
selector:
app: navigation-deployment
ports:
- name: "http"
port: 80
targetPort: 80
解决方法
如果有人遇到这个问题,那么你需要使用 args 运行入口控制器 - --default-backend-service=namespace/service_name