logo
01.01.2020 17:24
1
Ahoj,

jedna vec se mi nedari vygooglit :)

Teoreticka situace:

4 servery, 1 sluzba ... nahodim ji o velikosti 4, tj na kazdym serveru bude 1 container.

Pridam server, a pustim docker service scale sluzba=5 - cimz docilim ze se mi pusti i na 5. serveru.

Mno a ted ten problem - server 5 je rekneme X-krat vykonejsi nez ty prvni 4 servery ... tedy z hlediska rozlozeni zateze je pro me nesmysl to rozdelovat 1/5 random.

Je nejaky parametr/nastaveni kterym dokazu dockeru rict aby sluzbu zvetsil ne na 5 ale trebas na 7 containeru, s tim ze to nerozlozi na vsechny, ale ty zbyly (nebo vyssi %) da na ten vykonejsi stroj ?

Snad jsem to popsal pochopitelne :)

H.
01.01.2020 19:25
2
Obávám se že Docker Swarm nic takového nemá. Existuje to v Kubernetes (když jsem to řešil nebylo to v AWS a GCE). Zřejmě budeš muset použít HAProxy nebo Traefik, kde se dá nastavit jednotlivým nodům priorita. Když to naskriptuješ se service discovery, nebude s tím nejspíš ani moc práce, ty priority teoreticky můžeš vrazit někam do metadat k jednotlivým Swarm nodům.
01.01.2020 19:28
3
Kubernates se chci obloukem vyhnout :D

Skoda :( jeste mam dotaz na SO, tak uvidime jestli to nekdo neresil tam, i kdyz mam obavy ze ta odpoved je jasna ... a pak to holt poresim na ty urovni vyse :(
01.01.2020 21:11
4
jak už zaznělo, docker swarm to neumí, jedná se o vlastnost, která se odborně nazývá resource pool a load balancing. Swarm ale není vhodný pro produkci z více důvodů.

Pokud nechceš Kubernetes, lze použít Apache Mesos, DCOS od Mesosphere (to je ale možná overkill), openshift od Redhatu, Ranger (což je převlečený kubernetes) atd. Dnes to již dobře umí containery od AWS, Azure, GCE. Pak samozřejmě se to již naučily virtualizačni nástroje jako VMware (s vSphere).

Tihle všechny nástroje ti umožní na jeden server automaticky deploynout více instancí a na balanceru mít pořád něco jako random nebo round robin.

Záleží co tam máš za služby, weight balancing umí haproxy, nginx i varnish, to můžeš použít i s docker swarm.
02.01.2020 02:26
5
@TomášX: Myslíš spíš Rancher, ne? A není to převlečený Kubernetes. Rancher je nástroj pro správu kubernetových clusterů. RancherOS je container-optimised OS - osobně doporučuji jít cestou Rancheru.

@gransy: Nevím, proč se chceš vyhnout Kubernetes. Myslím, že to celkem hravě vyřeší tvůj problém. Každopádně místo k8s se zkus poohlédnout po k3s, což je odlehčená verze. Od Rancheru existuje k3os, který ti celý setup clusteru usnadní. Kdybys chtěl, rád poskytnu nějaké konzultace.
02.01.2020 02:38
6
Původně odeslal Pavel Janků
@TomášX: Myslíš spíš Ramcher, ne? A není to převlečený Kubernetes. Rancher je nástroj pro správu kubernetových clusterů. RangerOS je container-optimised OS - osobně doporučuji jít cestou Rangeru.

@gransy: Nevím, proč se chceš vyhnout Kubernetes. Myslím, že to celkem hravě vyřeší tvůj problém. Každopádně místo k8s se zkus poohlédnout po k3s, což je odlehčená verze. Od Rancheru existuje k3os, který ti celý setup clusteru usnadní. Kdybys chtěl, rád poskytnu nějaké konzultace.
Protoze mam to reseni uz v provozu pres rok, a vicemene jsem narazil na tuhle vec, kterou by bylo fajn vyresit, ale pokud reseni nema, umim si to poresit jinak .... Co se tyce Kubernates, tak me v tom reseni kde to pouzivam prijde jako jit s tankem na komara ... navic bych se to musel zas cely ucit, cemuz nevim jestli mam zrovna ochotu se venovat :))