如何在 Kubernetes Ingress 中为两个服务配置 Path?
How can I configure Path for two services in Kubernetes Ingress?
我有以下入口配置但是当我调用 www.domain.com/api
它总是打开我的 UI 服务而不是 API 如果我在 api,例如www.domain.com/api/v1/projects
.
我该如何解决?
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress
spec:
tls:
- secretName: tls
backend:
serviceName: ui
servicePort: 5003
rules:
- host: www.domain.com
http:
paths:
- path: /
backend:
serviceName: ui
servicePort: 5003
- path: /api
backend:
serviceName: api
servicePort: 5000
这是我解决这个问题的方法。我希望这可以帮助其他人。
谢谢@aleks!!
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: kronus
spec:
tls:
- secretName: tls
backend:
serviceName: ui
servicePort: 5003
rules:
- host: domain.com
http:
paths:
- path: /api
backend:
serviceName: api
servicePort: 5000
- path: /api/*
backend:
serviceName: api
servicePort: 5000
- host: www.domain.com
http:
paths:
- path: /api
backend:
serviceName: api
servicePort: 5000
- path: /api/*
backend:
serviceName: api
servicePort: 5000
我有以下入口配置但是当我调用 www.domain.com/api
它总是打开我的 UI 服务而不是 API 如果我在 api,例如www.domain.com/api/v1/projects
.
我该如何解决?
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress
spec:
tls:
- secretName: tls
backend:
serviceName: ui
servicePort: 5003
rules:
- host: www.domain.com
http:
paths:
- path: /
backend:
serviceName: ui
servicePort: 5003
- path: /api
backend:
serviceName: api
servicePort: 5000
这是我解决这个问题的方法。我希望这可以帮助其他人。
谢谢@aleks!!
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: kronus
spec:
tls:
- secretName: tls
backend:
serviceName: ui
servicePort: 5003
rules:
- host: domain.com
http:
paths:
- path: /api
backend:
serviceName: api
servicePort: 5000
- path: /api/*
backend:
serviceName: api
servicePort: 5000
- host: www.domain.com
http:
paths:
- path: /api
backend:
serviceName: api
servicePort: 5000
- path: /api/*
backend:
serviceName: api
servicePort: 5000