Je pense avoir un cas d'utilisation intéressant, donc j'aimerais entendre les conseils des personnes plus expérimentées. J'ai mon App ("ads") qui fonctionne dans Kubernetes sans aucun problème. Il tourne sur le port 9000. Il a des arguments qui ont son nom d'instance (serverName
) et dans la liste des serveurs, il référence également tous les autres serveurs (servers
) afin de les exécuter en mode compagnon (companion mode
) requis pour des raisons de performance. Veuillez noter que ce n'est PAS un SERVEUR WEB et que les simples répliques ne fonctionneront PAS pour ce que nous devons accomplir, qui est d'avoir plusieurs serveurs ADS fonctionnant en mode compagnon, où le serveur principal envoie les données en cache à un autre serveur afin que ce serveur dispose également des données récentes et puisse prendre le relais en cas de défaillance.
Extrait du premier fichier YAML de l'ADS :
- Dans serverName
, nous spécifions le nom de l'instance du serveur - Dans l'argument servers
, nous spécifions l'adresse régulière du serveur ADS avec son port.
args:
....
"-serverName", "ads"
"-servers", "{ { ads , ads-test:9000 }, { ads2 , ads-test2:9000}"]
ports:
- containerPort: 9000
..................
kind: Service
metadata:
name: ads-test
spec:
type: ClusterIP
ports:
- protocol: TCP
port: 9000
selector:
app: ads-test
Ainsi, dans la liste des arguments, nous spécifions le Service à travers lequel nous devrions accéder à cette instance ADS en utilisant la connexion TCP (et non la connexion HTTP) avec ads-test:9000. Étant donné que c'est une application conteneurisée, je ne savais pas quoi d'autre je pourrais spécifier comme adresse de serveur à part "NomDuService:port", car le développement de cette application ne prévoyait pas une application conteneurisée.
Par conséquent, le deuxième fichier YAML devrait être différent seulement avec les informations de serverName
. Et j'ai ajouté un Service supplémentaire ads-test2
args:
....
"-serverName", "ads2"
"-servers", "{ { ads , ads-test:9000 }, { ads2 , ads-test2:9000}"]
ports:
- containerPort: 9000
..................
kind: Service
metadata:
name: ads-test2
spec:
type: ClusterIP
ports:
- protocol: TCP
port: 9000
selector:
app: ads-test2
Étant donné qu'il s'agit en réalité de la même App, mais avec seulement un argument différent dans sa configuration (serverName
), je me demandais s'il y avait un moyen de simplifier ceci et d'utiliser un seul Service afin d'accéder aux deux serveurs ADS, mais d'avoir cette configuration dans l'argument server
qui active en fait ce type de mode compagnon
nécessaire pour des raisons de performance pour l'utilisation de différents serveurs mais pour avoir des informations à jour sur les deux serveurs.
Merci