0
votes

Comment implémenter plusieurs services dans un contrôleur d'entrée? On leur a donné dans Docs n'est pas compréhensible

J'ai créé un service et chaque service crée un nouvel équilibreur de chargement, je ne souhaite pas créer un nouvel équilibreur de charge pour chaque service. Pour cela, j'ai trouvé le contrôleur d'entrée de la solution, mais cela ne se produit pas.


0 commentaires

4 Réponses :



0
votes
 apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: ingress
      annotations:
        kubernetes.io/ingress.class: "nginx"
        certmanager.k8s.io/cluster-issuer: wordpress-prod
        nginx.ingress.kubernetes.io/rewrite-target: /
    spec:
      tls:
      - hosts:
        - test.test.com
        secretName: prod
      rules:
      - host: test.test.com
        http:
          paths:
          - path: /service-1
            backend:
              serviceName: service-1
              servicePort: 80
          - path: /service-2
            backend:
              serviceName: service-2
              servicePort: 5000
Sharing here documentation for ingress to target multiple services you can redirect to multi-service.Using this you can access services like 
  https://test.test.com/service-1
  
  https://test.test.com/service-2

1 commentaires

J'ai essayé cette solution et ça échoue. Vérifiez le nouveau doc ​​pour nginx. KubeNettes.github.io/ingress-nginx/examples/rewrite



3
votes

Je vais essayer de décrire les objets dont vous avez besoin en mots juste.

Vous n'avez pas besoin de créer un équilibreur de charge pour chaque service. Lorsque vous utilisez un contrôleur d'entrée (comme NGinx), le contrôleur d'entrée lui-même sera l'équilibreur de charge de type. Tous vos autres services doivent être quelque chose comme le type de clusterip.

Ensuite, vous pouvez décider comment relier vos services de clusterip avec le NGinx Lockbalancer: Créez une entrée pour chaque service ou une entrée qui expose chaque service basé sur une règle (comme des chemins tels que les émissions de @ Harsh-Manvar dans le poteau ci-dessus).

Lorsque vous dites "ça ne se produit pas", ce serait bien si vous pouviez fournir des détails sur votre configuration.

Pour que le contrôleur d'entrée Nginx fonctionne, il doit être défini comme un type de service NODEPORT ou LOADBALANNER. Les exemples fournis dans la documentation NGinx utilisent des produits de production. Toutefois, Wharbalancer ne fonctionne que lorsque votre cluster prend en charge cet objet (cela signifie s'exécuter dans la plupart des fournisseurs de cloud tels que AWS / GCP / AZURE / NumériqueOcean ou de nouvelles versions de Minikube). D'autre part, NODEPORT exposera le contrôleur d'entrée sur le nœud KubeNettes où il s'exécute (lors de l'utilisation de Minikube, cela signifie généralement une machine virtuelle qui doit ensuite être transmise pour être accessible).

Utiliser une entrée dans un environnement local, vous pouvez regarder Minikube. Tout ce dont vous avez besoin est d'exécuter Minikube Addons Activer l'entrée et il déploiera un contrôleur Nginx pour vous. Ensuite, tout ce que vous avez à faire est de définir une entrée et, selon votre configuration, vous devrez peut-être utiliser kubectl ports-transfert vers le port avant de port 80 sur un POD de contrôleur NGinx sur un port local de votre machine.


0 commentaires

0
votes

Après la documentation suivante, vous devriez faire ce qui suit. Plus d'informations: kubettes.github.com

rewrite.bar.com/something rewrites to rewrite.bar.com/
rewrite.bar.com/something/ rewrites to rewrite.bar.com/
rewrite.bar.com/something/new rewrites to rewrite.bar.com/new


0 commentaires