我有两个名为dev
和stage
的命名空间
在两个名称空间中,我都有类似的设置。在这两个名称空间中,我都有称为frontend的服务。
我想为此建立一个入口。我使用以下配置在两个名称空间中设置了入口:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: my-ingress
spec:
rules:
- host: dev.myapp.io
http:
paths:
- backend:
serviceName: frontend
servicePort: 80
在该阶段,只需将主机更改为stage.myapp.io
。它不适用于名称空间之一。
我的方法正确吗?或者我需要在另一个名称空间(也许是Kube系统)中设置入口,并在同一入口中指向路径?
PS:如果我更改服务名称并将其保留为其他名称,则2个入口工作正常,但我想使用相同的名称空间设置服务,因为这简化了我的其他部署。
答案 0 :(得分:1)
您应该在Ingress中包含名称空间注释。考虑到这一点,您的yaml文件应如下所示:
开发:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: my-ingress-dev
namespace: dev
spec:
rules:
- host: dev.myapp.io
http:
paths:
- backend:
serviceName: frontend
servicePort: 80
阶段:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: my-ingress-stage
namespace: stage
spec:
rules:
- host: stage.myapp.io
http:
paths:
- backend:
serviceName: frontend
servicePort: 80