Docker swarm dan node load balancing

Halo semuanya, kami menggunakan Docker Swarm dalam produksi dan kami dihadapkan pada masalah menyeimbangkan container dan memuat lintas node di cluster. Saya ingin memberi tahu Anda kesulitan apa yang kami temui dan membagikan solusi kami.

1) Deskripsi masalah

, . , docker swarm. . php-fpm, . .

. DB1 β€” MySQL , Docker Swarm, . β€” Web 1 , , . , , . β€” . 

. Swarm β€” .

, Web 1 , . , , , . Web1, . Docker Swarm . . 

, Web 1 master , web2 β€” worker. master , , . , . Web 2 , cloud , , . , . 

:   (Web 2) , (Web 2) . , , Docker Swarm.

, Web 2 ,   Swarm. , β€” master (Web 1). , , Web 2. 

β€” Web 1 Docker Swarm , . , , . Web 2 , , :

docker service update  --force 

, . 

, deploy , , . , php-fpm, , php-fpm () , . , , deploy . 

, β€” deploy php-fpm , Swarm . , , β€”   php-fpm - .

Docker, : , Docker Swarm placement, label . , . Docker Docker Swarm . placement , .

, php-fpm Docker Swarm Web 2. , php-fpm , , php-fpm , . Web 2 Web1, php-fpm , - . Web 2 php-fpm, , Web 1. , php-fpm, , . .

Web 2 . ci , Web 2 , . , . Docker Swarm. - , Swarm (Web 2) . 

2)

, . , , , , . , , , . , , , docker service update --force , . 

- Swarm Manager. Swarm Manager β€” bash-, ssh, . cron . .

, cron swarm_provisioner.sh, . swarm_provisioner.sh , ssh root . . , root, swarm_provisioner.sh, root SSH_COMMAND docker ps. cron file:

SHELL=/bin/bash

*/1 * * * * /swarm_provisioner.sh "web-group" "edphp-fpm" "-p 22"

, cron swarm_provisioner.sh

, .

β€” label. , , . β€” , . 

β€” , , . ed, - php-fpm. 

β€” ssh, label . , docker service update --force

, , docker swarm . , , - .

swarm-manager:
 image: swarm-manager:latest
 volumes:
   - /var/run/docker.sock:/var/run/docker.sock:ro
   - /swarm-keys:/root/.ssh
 deploy:
   replicas: 1
   update_config:
     parallelism: 1
     delay: 1s
     order: start-first
   restart_policy:
     condition: on-failure
   placement:
     constraints:
       - node.role==manager

3)

, . . ,  ssh docker api, , , .

.




All Articles