我有一个带有k8s的单个主机集群,我想为每个命名空间配置一个Ingress来创建分离的环境:一个用于生产,一个用于开发。 我还采用了2个不同的域。 当我部署生产入口时没有问题,但是当我部署第二个入口时,开发环境无法访问,使用port-forward一切都很好。
2个入口配置:
开发
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
ingress.bluemix.net/redirect-to-https: "True"
name: dev-ingress
namespace: dev
spec:
rules:
- host: '*.dev.cloud'
http:
paths:
- backend:
serviceName: web-service
servicePort: 80
path: /
tls:
- hosts:
- '*.dev.cloud'
secretName: dev-cert
生产
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
ingress.bluemix.net/redirect-to-https: "True"
name: prod-ingress
spec:
rules:
- host: '*.prod.cloud'
http:
paths:
- backend:
serviceName: web-service
servicePort: 80
path: /
- host: "k8s-host"
http:
paths:
- path: /path/to/api
backend:
serviceName: web-api
servicePort: 3000
tls:
- hosts:
- '*.prod.cloud'
secretName: prod-cert
- hosts:
- "k8s-host"
secretName: k8s-host-cert
我还编辑了两个域的CNAME记录,以便重定向到k8s主机。
我期望来自该域之一的子域的请求将被重定向到与该域匹配的入口。
例如:
https://abc.dev.cloud -> dev-ingress
https://abc.prod.cloud -> prod-ingress