Nik*_*raj 9 namespaces kubernetes
我为不同的环境创建了两个不同的命名空间.一个是devops-qa,另一个是devops-dev.我在不同的命名空间中创建了两个入口.因此,当在devops-qa命名空间中创建qa env的入口时,在qa的入口内写入的规则工作正常.意味着我可以访问qa env的网页.我将在devops-dev命名空间中创建dev env的入口,我将能够访问dev env的网页,但无法访问qa的网页.当我删除dev ingress然后再次我将能够访问qa env网站
以下是dev和qa env的ingree.
Dev Ingress
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: "nginx"
name: cafe-ingress-dev
namespace: devops-dev
spec:
tls:
- hosts:
- cafe-dev.example.com
secretName: default-token-drk6n
rules:
- host: cafe-dev.example.com
http:
paths:
- path: /
backend:
serviceName: miqpdev-svc
servicePort: 80
Run Code Online (Sandbox Code Playgroud)
QA Ingress
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: "nginx"
name: cafe-ingress-qa
namespace: devops-qa
spec:
tls:
- hosts:
- cafe-qa.example.com
secretName: default-token-jdnqf
rules:
- host: cafe-qa.example.com
http:
paths:
- path: /greentea
backend:
serviceName: greentea-svc
servicePort: 80
- path: /blackcoffee
backend:
serviceName: blackcoffee-svc
servicePort: 80
Run Code Online (Sandbox Code Playgroud)
入口文件中提到的令牌是每个命名空间.并且nginx入口控制器在QA命名空间中运行如何运行入口并且能够获得在dev和qa env中部署的所有网站?
我实际上解决了我的问题。我做的一切正确。但是我唯一没有做的就是在Route53中用相同的IP映射主机名。我没有使用主机名访问该网站,而是通过IP访问它。现在从主机名访问网站后,我可以访问它了:)
看来您在这里发帖并得到了答案。解决方案是为每个命名空间部署不同的 Ingress。然而,部署 2 个 Ingress 会使事情变得复杂,因为一个实例必须在非标准端口(例如 8080、8443)上运行。
我认为使用 DNS 可以更好地解决这个问题。创建 CNAME 记录cafe-qa.example.com并cafe-dev.example.com都指向cafe.example.com. 相应地更新每个 Ingress 清单。使用 DNS 在某种程度上是分离开发/QA/生产环境的标准方法。
| 归档时间: |
|
| 查看次数: |
14235 次 |
| 最近记录: |