web-dev-qa-db-fra.com

Entrée différente dans un espace de noms différent dans kubernetes

J'ai créé deux espaces de noms différents pour un environnement différent. l'un est devops-qa et l'autre est devops-dev. J'ai créé deux entrées dans des espaces de noms différents. Ainsi, lors de la création d'une entrée de qa env dans un espace de noms devops-qa, les règles écrites à l'intérieur de l'entrée de qa fonctionnent correctement. Signifie que je peux accéder à la page Web de qa env. Dès que je créerai l'entrée de dev env dans l'espace de noms devops-dev, je pourrai accéder à la page Web de dev env mais je ne pourrai pas accéder à la page Web de qa. Et quand je supprime l’influence, je pourrai à nouveau accéder au site Web de qa env.

Vous trouverez ci-dessous l'ingree de dev et de qa env.

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

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

Le jeton mentionné dans le fichier d'entrée est de chaque espace de noms. Et le contrôleur d’introduction de nginx s’exécute dans l’espace de noms QAComment puis-je exécuter à la fois l’intrusion et pouvoir obtenir tous les sites Web déployés dans les env. Dev et qa env?

5
Nikit Swaraj

J'ai en fait résolu mon problème. J'ai tout fait correctement. Mais la seule chose que je n'ai pas faite est de mapper le nom d'hôte avec la même adresse IP dans Route53. Et au lieu d’accéder au site Web avec nom d’hôte, j’y accédais depuis IP. Maintenant, après avoir accédé au site Web à partir de hostname, j'ai pu y accéder :) 

3
Nikit Swaraj

On dirait que vous avez posté ici et obtenu votre réponse . La solution consiste à déployer une entrée différente pour chaque espace de noms. Cependant, le déploiement de 2 entrées complique les choses, car une instance doit être exécutée sur un port non standard (par exemple, 8080, 8443).

Je pense que cela est mieux résolu en utilisant DNS. Créez les enregistrements CNAME cafe-qa.example.com et cafe-dev.example.com qui pointent tous deux vers cafe.example.com. Mettez à jour chaque manifeste d'entrée en conséquence. L'utilisation de DNS est en quelque sorte le moyen standard de séparer les environnements Dev/QA/Prod.

1
Eugene Chow