J'ai une poignée de microservices dockerisés, chacun écoute des demandes HTTP sur un certain port et j'ai ces déploiements formalisés comme des fichiers KubeNettes YAML P>
Cependant, je ne peux pas comprendre une stratégie de travail pour exposer mes déploiements sur les interwebs (en termes de services Kubettes) P>
Chaque déploiement a plusieurs réplosses, et donc je suppose que chaque déploiement doit avoir un service d'équilibreur de charge correspondant pour l'exposer à l'extérieur p>
Maintenant, je ne peux pas comprendre une stratégie pour exposer ces microservices à Internet ... Voici ce que je pense: P>
Tout le cluster est exposé sur un nom de domaine et les services sont des sous-domaines forts> p>
Chaque service est exposé sur la même adresse IP / domaine, mais chacun obtient son propre port fort> p>
Chaque service est exposé sur sa propre adresse IP / domaine? strong> p>
Peut-être que je conceptualise ce faux? Une carte de grappe entier peut-elle cluster une carte IP / domaine? P>
Quel est le moyen le plus simple d'exposer un tas de microservies à Kubettes? D'autre part, quel est le moyen le plus robuste / idéal d'exposer des microservices en production? Ai-je besoin d'une stratégie différente pour le développement local à Minikube? (J'allais juste modifier Merci pour tout conseil, acclamations p>
k8s.mydomain.com code> li>
auth-server.k8s.mydomain.com code> li>
profil-server.k8s.mydomain.com code> li>
question-board.k8s.mydomaine.com code> li>
k8s.mydomain.com code> à nouveau li>
k8s.mydomain.com:8000 code> mapper vers
auth-serveur-workbalancer code> li>
k8s.mydomain.com:8001 Code> Maps vers
Profil-Server-Lockbalancer Code> Li>
ul> li>
/ etc / hosts code> beaucoup) p>
3 Réponses :
La première méthode est typiquement le format que tout le monde suit, c'est-à-dire que chaque microservice obtient son propre sous-domaine. Vous pouvez obtenir la même chose à l'aide d'une entrée Kubettes (par exemple Nginx Ingressing https://kubernet.github.io/ ingress-nginx / ) p>
Ils n'ont pas besoin de ne pas être dans le même domaine également, c'est-à-dire que vous pouvez avoir les deux La deuxième méthode ne permet pas d'accabler, car vous disposeriez d'un nombre limité de ports disponibles et d'exécuter sur des ports non standard fournit avec ses propres problèmes. p> *. Exemple.com code> et
*. Exemple2.com code> P> P>
Utilisez une entrée: p>
https://kubernet.io/docs/ Concepts / services-Networking / Ingress / # Types d'Ingresses P>
Avec une entrée, vous pouvez affecter des sous-domaines à différents services, ou vous pouvez servir tous les services sous différentes racines de contexte avec une réécriture de l'URL. P>
Je ne suggère pas d'exposer des services en utilisant différents ports. Les ports non standard ont d'autres problèmes. P>
Je pense que la première option est de loin le meilleur.
Votre Vous pouvez lire plus À ce sujet sur KubeNettes Docs concernant INGRESS et Hébergement virtuel basé sur le nom . P> Vous pouvez aussi Utilisez de nombreux contrôleurs d'entrée Selon l'endroit où vous finirez par définir votre cluster . Vous avez mentionné que vous allez tester cela sur Minikube, donc je pense INGRESS NGINX A > sera un bon choix ici. P> Si vous envisagez de gérer votre trafic, vous pouvez envisager ISTIO A>. P> Voici un bon guide HTTP (S) Equilibrage de la charge avec entrée et une autre une fois Configuration des noms de domaine avec adresses IP statiques . P> p> Inlauche code> pourrait ressembler à ceci: p>
Merci beaucoup, à la suite de vos conseils, j'ai réussi à créer cette entrée à la fois localement à Minikube (a dû permettre à un addon d'entrée qui navère avec Minikube), puis sur Azure (a dû utiliser la barre pour installer Nginx-Ingress)) -- à votre santé!