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. P>
4 Réponses :
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
J'ai essayé cette solution et ça échoue. Vérifiez le nouveau doc pour nginx. KubeNettes.github.io/ingress-nginx/examples/rewrite
Je vais essayer de décrire les objets dont vous avez besoin en mots juste. p>
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. P>
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). p>
Lorsque vous dites "ça ne se produit pas", ce serait bien si vous pouviez fournir des détails sur votre configuration. P>
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). P>
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 code> 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 code> vers le port avant de port 80 sur un POD de contrôleur NGinx sur un port local de votre machine. p>
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