J'ai rencontré un problème d'évolutivité lors de l'essai du cluster kubernetes. Pour simplifier la topologie de mon ordinateur de test, le type NodePort est utilisé pour exposer le service individuel en externe. Le baremetal pour héberger le noeud et le maître est un RHEL 7 avec 24 CPU et 32G RAM; Je n'ai pas encore d'équilibreur de charge dédié, ni de fournisseur de cloud comme infrastructure. Un extrait de la définition du service ressemble ci-dessousÉvolutivité du proxy-kube
"spec": {
"ports": [{
"port": 10443,
"targetPort": 10443,
"protocol": "TCP",
"nodePort": 30443
} ],
"type": "NodePort",
Grâce à cette façon, l'application peut être accessible via https://[node_machine]:30443/[a_service]
tel service est seulement soutenu par un Pod. Idéalement, je voudrais avoir plusieurs services déployés sur le même nœud (mais en utilisant différents NodePort), et en cours d'exécution simultanément. Les choses fonctionnaient bien jusqu'à ce qu'il devienne évident que pour une charge de travail similaire, augmenter le nombre de services déployés (donc les pods backend) fait que les applications se dégradent en performance. De façon surprenante, en décomposant le temps de chargement du service, j'ai remarqué une dégradation dramatique du 'temps de connexion' qui semble indiquer qu'il y a un ralentissement quelque part dans la couche 'réseau'. Veuillez noter que la charge n'est pas assez élevée pour conduire une grande partie du CPU sur le nœud pour le moment. J'ai lu sur le shortcomings dans le document, mais je ne sais pas si ce que je frappe est exactement la limitation de la Kube-proxy/Service décrit là-bas.
Les questions sont les suivantes:
Y at-il suggéré sur la façon de le rendre plus évolutif? C'est à dire. être capable de supporter plus de services/Pods sans scarifier les performances des applications? Le type NodePort est le moyen le plus simple de configurer l'adresse publique pour nos services, mais y a-t-il des limites à l'évolutivité ou aux performances si tous les services et modules sont configurés de cette façon?
Y aurait-il une différence si nous changions le type en LoadBalancer? "type": "LoadBalancer"
En outre, existe-t-il un avantage d'avoir un LoadBalancer ou un proxy inverse dédié pour améliorer l'évolutivité, par ex. HAProxy ou similaire, qui achemine le trafic des Pods externes (ou Services)? J'ai remarqué qu'il y a du travail pour Nginx darkgaro/kubernetes-reverseproxy - malheureusement le document semble incomplet et il n'y a pas d'exemple concret. Dans certains des autres sujets, les gens ont parlé de Vulcan - est-ce l'outil LB recommandé pour les kubernetes?
Votre recommandation et aide sont très appréciées!
Bienvenue dans Stack Overflow! J'ai remarqué que vous aviez de la difficulté à formater votre question dans le style que vous souhaitiez. Je l'ai corrigé pour la syntaxe markdown utilisée ici. Vous trouverez peut-être utile de lire un peu plus sur la [mise en forme mise en page utilisée] (http://stackoverflow.com/help/formatting). –