如何创建alb入口,以便仅“ /”将重定向到显示service-1中静态文件的服务。所有其他路径都应重定向到服务2。它将托管这样的内容
spec:
rules:
- host: a.abc.com
http:
paths:
- path: /
backend:
serviceName: service-1
servicePort: 80
- path: /v1
backend:
serviceName: service-2/v1
servicePort: 9090
我知道我不能在service-2/v1
上使用serviceName
,但是我想将/v1
映射到service-2:9090/v1
。
我正在service-1(nginx)
中托管一些静态文件,这些文件要显示在/
上,然后/v1
和/admin
在我的另一项服务中(即{{1} }和service-2/v1
)。
答案 0 :(得分:1)
服务名称和任何其他资源可能不包含here中所述的/
和%
,如果您要部署它,它将显示以下错误:
metadata.name: Invalid value: "demo/v1": a DNS-1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character (e.g. 'example.com', regex used for validation is '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*')
因此,除了可以在单个Ingress
定义中指定多个路径之外,还必须考虑更改服务名称:
spec:
rules:
- host: a.abc.com
http:
paths:
- path: /
backend:
serviceName: service-1
servicePort: 80
- path: /v1
backend:
serviceName: service-v1
servicePort: 9090
- path: /admin #additional path
backend:
serviceName: service-admin #service name pointing to /admin
servicePort: 9091 #port it will be accessible on