
±¾ÎĽ«ÒÔ¶àÖ÷»úÍøÂç»·¾³Îª»ù´¡£¬Ì½ÌÖÈçºÎÀûÓÃÄÚÖñàÅŹ¤¾ß Docker
Swarm ģʽ¶Ô¸÷Ö÷»úÉϵÄÈÝÆ÷¼ÓÒÔ¹ÜÀí¡£
Docker Engine ¨C Swarm ģʽ
ÔÚ¶ą̀Ö÷»úÖ®ÉÏÔËÐÐ MySQL ÈÝÆ÷ÓµÓÐÒ»¶¨³Ì¶ÈµÄ¸´ÔÓÐÔ£¬¶ø¾ßÌåˮƽÔòÈ¡¾öÓÚÄúËùÑ¡ÔñµÄ¼¯Èº¼¼Êõ¡£
ÔÚ³¢ÊÔÀûÓÃÈÝÆ÷¼Ó¶àÖ÷»úÍøÂçÔËÐÐ MySQL ֮ǰ£¬ÎÒÃÇÊ×ÏÈÐèÒªÀí½â¾µÏñµÄÆðЧÔÀí¡¢¸÷×ÊÔ´µÄ·ÖÅ䷽ʽ(°üÀ¨´ÅÅÌ¡¢ÄÚ´æÓë
CPU)¡¢ÍøÂç(¸²¸ÇÍøÂçÇý¶¯ÒòËØ£¬Ä¬ÈÏÇé¿öϰüÀ¨ flannel Óë weave µÈ)ÒÔ¼°ÈÝ´í»úÖÆ(ÈÝÆ÷ÈçºÎʵÏÖÖØÐ¶¨Î»¡¢¹ÊÕÏ×ªÒÆÒÔ¼°¸ºÔؾùºâµÈ)¡£
ÕâÒ»Çж¼»á¸øÊý¾Ý¿âµÄÕûÌåÔËÐС¢Õý³£ÔËÐÐʱ¼äÒÔ¼°ÐÔÄܱíÏÖÔì³ÉÓ°Ïì¡£ÎÒÃǽ¨Òé´ó¼ÒʹÓñàÅŹ¤¾ß±£Ö¤
Docker ÒýÇæ¼¯ÈºÓµÓиü³öÉ«µÄ¿É¹ÜÀíÐÔÓë¿ÉÀ©Õ¹ÐÔ¡£×îÐ嵀 Docker Engine(°æ±¾Îª 1.12£¬·¢²¼ÓÚ
2016 Äê 7 Ô 14 ÈÕ)µ±Öаüº¬ÓÐ Swarm ģʽ£¬×¨ÃÅÓÃÓÚÒÔÔÉú·½Ê½¹ÜÀíÃûΪ Swarm µÄ
Docker Engine ¼¯Èº¡£
ÐèҪעÒâµÄÊÇ£¬Docker Engine Swarm ģʽÓë Docker
Swarm ÊÇÁ½¸ö²»Í¬µÄÏîÄ¿£¬¶þÕßËäÈ»¹¤×÷ÔÀíÀàËÆ£¬µ«È´ÓµÓв»Í¬µÄ°²×°²½Öè¡£
ÏÂÃæÎÒÃÇÀ´¿´¿´×ÅÊÖ½øÐÐ֮ǰ£¬Ê×ÏÈÐèÒªÍê³ÉµÄ×¼±¸¹¤×÷£º
±ØÐëÊ×ÏÈ´ò¿ªÒÔ϶˿ڣº
2377 (TCP) ¨C ¼¯Èº¹ÜÀí
7946 (TCP Óë UDP) ¨C ½ÚµãͨÐÅ
4789 (TCP Óë UDP) ¨C ¸²¸ÇÍøÂçÁ÷Á¿
½ÚµãÀàÐÍ·ÖΪ 2 ÖÖ£º
1.¹ÜÀí½Úµã - ¹ÜÀí½Úµã¸ºÔðÖ´ÐÐά»¤ Swarm ±ØÒª×´Ì¬Ëù±ØÐèµÄ±àÅÅÓ뼯Ⱥ¹ÜÀí¹¦ÄÜ¡£¹ÜÀí½Úµã»áÑ¡Ôñµ¥Ò»Ö÷¹ÜÀí·½Ö´ÐбàÅÅÈÎÎñ¡£
2.¹¤×÷½Úµã - ¹¤×÷½Úµã¸ºÔð´Ó¹ÜÀí½Úµã´¦½ÓÊÕ²¢Ö´Ðи÷ÏîÈÎÎñ¡£ÔÚĬÈÏÇé¿öÏ£¬¹ÜÀí½Úµã±¾ÉíͬʱҲ×÷Ϊ¹¤×÷½Úµã´æÔÚ£¬µ«´ó¼Ò¿ÉÒÔͨ¹ýÅäÖñ£Ö¤Æä½öÖ´ÐйÜÀíÈÎÎñ¡£
ÔÚ±¾ÎÄÖУ¬ÎÒÃǽ«Á¢×ãÓÚ 3 ̨ Docker Ö÷»ú(docker1¡¢docker2
Óë docker3)ÔÚ¸ºÔؾùºâ Galera Cluster Ö®Éϲ¿ÊðÓ¦ÓóÌÐòÈÝÆ÷£¬Í¬Ê±½«Æä½ÓÈëÒ»Ì׸²¸ÇÍøÂç¡£ÎÒÃǽ«ÀûÓÃ
Docker Engine Swarm ģʽ×÷Ϊ±àÅŹ¤¾ß¡£
¼¯Èº¹¹½¨
Ê×ÏÈÈÃÎÒÃǽ« Docker ½ÚµãÄÉÈë Swarm ¼¯Èºµ±ÖС£Swarm
ģʽҪÇóÀûÓÃÆæÊý̨¹ÜÀí½Úµã(µ±È»²»Ö¹Ò»Ì¨)ÒÔά³ÖÈÝ´íÄÜÁ¦¡£Òò´Ë£¬ÎÒÃÇÔÚÕâÀïÐèÒªÈÃÈý̨½ÚµãÈ«²¿×÷Ϊ¹ÜÀí½Úµã¡£ÐèҪעÒâµÄÊÇ£¬ÔÚĬÈÏÇé¿öÏ£¬¹ÜÀí½ÚµãͬʱÒà×÷Ϊ¹¤×÷½Úµã¡£
Ê×ÏÈÔÚ docker1 ÉÏ¶Ô Swarm ģʽ½øÐгõʼ»¯¡£Íê³ÉÖ®ºó£¬¸Ã½Úµã½«³ÉΪ¹ÜÀí½Úµã¼°µ±Ç°¹ÜÀí·½£º
[root@docker1]$ docker swarm init --advertise-addr 192.168.55.111 Swarm initialized: current node (6r22rd71wi59ejaeh7gmq3rge) is now a manager. To add a worker to this swarm, run the following command: docker swarm join \ --token SWMTKN-1-16kit6dksvrqilgptjg5pvu0tvo5qfs8uczjq458lf9mul41hc-dzvgu0h3qngfgihz4fv0855bo \ 192.168.55.111:2377 To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions. |
ÎÒÃÇ»¹ÐèÒª½«ÆäËüÁ½¸ö½ÚµãÌí¼ÓΪ¹ÜÀí½Úµã¡£Ê¹Óà join ÃüÁÕâÁ½Ì¨½Úµã×¢²áΪ¹ÜÀí½Úµã£º
[docker1]$ docker swarm join-token manager To add a manager to this swarm, run the following command: docker swarm join \ --token SWMTKN-1-16kit6dksvrqilgptjg5pvu0tvo5qfs8uczjq458lf9mul41hc-7fd1an5iucy4poa4g1bnav0pt \ 192.168.55.111:2377 |
ÔÚ docker2 Óë docker3 ÉÏ£¬ÔËÐÐÒÔÏÂÃüÁîÒÔ½øÐнڵã×¢²á£º
$ docker swarm join --token SWMTKN-1-16kit6dksvrqilgptjg5pvu0tvo5qfs8uczjq458lf9mul41hc-7fd1an5iucy4poa4g1bnav0pt
192.168.55.111:2377 |
ÑéÖ¤ÊÇ·ñÈ«²¿½Úµã¶¼ÒѾÕýÈ·Ìí¼Ó£º
[docker1]$ docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS 5w9kycb046p9aj6yk8l365esh docker3.local Ready Active Reachable 6r22rd71wi59ejaeh7gmq3rge * docker1.local Ready Active Leader awlh9cduvbdo58znra7uyuq1n docker2.local Ready Active Reachable |
µ½ÕâÀÎÒÃÇµÄ docker1.local ×÷ΪÖ÷¹ÜÀí½Úµã¡£
¸²¸ÇÍøÂç
ÒªÈò»Í¬Ö÷»úÖ®ÉϵÄÔËÐеÄÈÝÆ÷±Ë´ËʵÏÖ¶Ô½Ó£¬Î©Ò»µÄ·½Ê½¾ÍÊÇʹÓø²¸ÇÍøÂç¡£´ó¼Ò¿ÉÒÔ½«ÆäÊÓΪһÌ×¹¹½¨ÓÚÁíÒ»ÍøÂç(ÔÚ±¾Ê¾ÀýÖÐΪÎïÀíÖ÷»úÍøÂç)Ö®ÉϵÄÈÝÆ÷ÍøÂç¡£Docker
Swarm ģʽÌṩһÌ×ĬÈϸ²¸ÇÍøÂ磬Æä¸ºÔðÅäºÏ libnetwork Óë libkv ʵÏÖÒ»Ì×»ùÓÚ VxLAN
µÄ½â¾ö·½°¸¡£µ±È»£¬´ó¼ÒÒ²¿ÉÒÔÑ¡Ôñ Flannel¡¢Calico »òÕß Weave µÈÆäËü¸²¸ÇÍøÂçÇý¶¯·½°¸£¬µ«ÐèÒªÖ´ÐжîÍâµÄ°²×°²½Öè¡£
ÔÚ Docker Engine Swarm ģʽµ±ÖУ¬´ó¼Ò¿ÉÒÔµ¥´¿Á¢×ã¹ÜÀí½Úµã´´½¨Ò»Ì׸²¸ÇÍøÂ磬¶øÇÒÆä²»ÐèÒª
etcd¡¢consul »òÕß Zookeeper µÈ¶îÍâµÄ¼üÖµ´æ´¢»úÖÆ¡£
ÕâÌ× Swarm ½öΪ¼¯ÈºÄڵĸ÷½ÚµãÌṩ¸²¸ÇÍøÂç¡£µ±´ó¼Ò´´½¨Ò»ÏîÐèÒªÓõ½¸²¸ÇÍøÂçµÄ·þÎñʱ£¬¹ÜÀí½Úµã»á×Ô¶¯½«¸²¸ÇÍøÂçÑÓÉìÖÁÔËÐи÷þÎñÈÎÎñµÄ½Úµã´¦¡£

ÏÂÃæÈÃÎÒÃÇΪ¸÷ÈÝÆ÷´´½¨Ò»Ì׸²¸ÇÍøÂç¡£ÔÚÕâÀÎÒÃÇÐèÒª½« Percona
XtraDB ¼¯ÈºÓëÓ¦ÓóÌÐòÈÝÆ÷·Ö±ð²¿ÊðÔÚ¸÷ Docker Ö÷»úÖ®ÉÏ£¬ÓÃÒÔʵÏÖÈÝ´íÐÔ¡£ÕâЩÈÝÆ÷±ØÐëÔËÐÐÔÚͬһ¸²¸ÇÍøÂçµ±ÖУ¬´Ó¶øÈ·±£ÆäÄܹ»±Ë´ËͨÐÅ¡£
ÕâÀïÎÒÃǽ«ÍøÂçÃüÃûΪ¡°mynet¡±¡£´ó¼ÒÖ»ÄÜÔÚ¹ÜÀí½ÚµãÉÏÍê³ÉÕâÒ»´´½¨¹¤×÷£º
[docker1]$ docker network create --driver overlay mynet |
ÏÂÃæÀ´¿´ÎÒÃǵÄÏÖÓÐÍøÂ磺
[docker1]$ docker network ls NETWORK ID NAME DRIVER SCOPE 213ec94de6c9 bridge bridge local bac2a639e835 docker_gwbridge bridge local 5b3ba00f72c7 host host local 03wvlqw41e9g ingress overlay swarm 9iy6k0gqs35b mynet overlay swarm 12835e9e75b9 none null local |
ÏÖÔÚ Swarm µ±ÖÐÓµÓÐ 2 Ì׸²¸ÇÍøÂç¡£ÆäÖС°mynet¡±ÍøÂçÕýÊÇÎÒÃÇÔÚ²¿ÊðÈÝÆ÷ʱËù´´½¨µÄ³É¹û¡£¶ø¡°ingress¡±¸²¸ÇÍøÂçÔòΪĬÈÏÌṩ¡£Swarm
¹ÜÀí½Úµã»áÀûÓà ingress ¸ºÔؾùºâÒÔ½«·þÎñ¹«²¼ÖÁ¼¯ÈºÖ®Íâ¡£
ÀûÓ÷þÎñÓëÈÎÎñʵÏÖ²¿Êð
½ÓÏÂÀ´ÎÒÃǽ«Í¨¹ý·þÎñÓëÈÎÎñ½øÐÐ Galera ¼¯ÈºÈÝÆ÷²¿Êð¡£µ±´ó¼Ò´´½¨Ò»Ïî·þÎñʱ£¬ÐèÒªÖ¸¶¨Ê¹ÓÃÄÄÌ×ÈÝÆ÷¾µÏñ²¢ÔÚÈÝÆ÷ÄÚÖ´ÐÐÄÄЩÃüÁî¡£·þÎñÀàÐ͹²·ÖΪÁ½ÖÖ£º
¸´ÖÆ·þÎñ¡ª¡ª½«Ò»ÏµÁи´ÖÆÈÎÎñ·Ö·¢ÖÁ¸÷½Úµãµ±ÖУ¬¾ßÌåÈ¡¾öÓÚÄúËùÐèÒªµÄÉèÖÃ״̬£¬ÀýÈç¡°--replicas
3¡±¡£
È«¾Ö·þÎñ¡ª¡ªÊÊÓÃÓÚ¼¯ÈºÄÚÈ«²¿¿ÉÓýڵãÉϵķþÎñÈÎÎñ£¬ÀýÈç¡°--mode global¡±¡£Èç¹û´ó¼ÒÔÚ
Swarm ¼¯ÈºÖÐÉèÓÐ 7 ̨ Docker ½Úµã£¬ÔòÈ«²¿½ÚµãÖ®É϶¼½«´æÔÚ¶ÔÓ¦ÈÝÆ÷¡£
Docker Swarm ģʽÔÚ¹ÜÀí³Ö¾ÃÊý¾Ý´æ´¢·½Ã湦ÄÜÓÐÏÞ¡£µ±Ò»Ì¨½Úµã·¢Éú¹ÊÕÏʱ£¬¹ÜÀí½Úµã»áÈÆ¹ý¸÷Ïà¹ØÈÝÆ÷²¢´´½¨ÐÂÈÝÆ÷£¬ÓÃÓÚ¼ÌÐø±£³ÖÔÓÐÔËÐÐ״̬¡£ÓÉÓÚÈÝÆ÷ÔÚÏÂÏߺó»á±»¶ªÆú£¬Òò´ËÎÒÃÇ»áʧȥÆäÖеÄÈ«²¿Êý¾Ý·Ö¾í¡£ÐÒÔ˵ÄÊÇ£¬Galera
¼¯ÈºÔÊÐí¸÷ MySQL ÈÝÆ÷ÒÔ×Ô¶¯·½Ê½ÔÚ¼ÓÈëʱÀûÓÃ״̬/Êý¾Ý½ÓÊÜÅäÖá£
²¿Êð¼ü-Öµ´æ´¢
ÎÒÃÇÔÚÕâÀïʹÓÃµÄ docker ¾µÏñΪ Percona-Lab¡£ÕâÌ×¾µÏñÒªÇó¸÷
MySQL ÈÝÆ÷·ÃÎÊÒ»Ì×¼ü-Öµ´æ´¢(½öÖ§³Ö etcd)ÒÔʵÏÖ¼¯Èº³õʼ»¯ÓëÒýµ¼¹ý³ÌÖÐµÄ IP µØÖ··¢ÏÖ¡£¸÷ÈÝÆ÷½«ÔÚ
etcd µ±ÖÐËÑË÷ÆäËü IP µØÖ·£¬´Ó¶øÀûÓÃÕýÈ·µÄ wsrep_cluster_address Íê³É MySQL
Æô¶¯¡£·ñÔò£¬Ê×Ì×ÈÝÆ÷½«Ê¹Óà gcomm:// ×÷ΪÒýµ¼µØÖ·
Ê×ÏȲ¿ÊðÎÒÃÇµÄ etcd ·þÎñ¡£´ó¼Ò¿ÉÒÔµã»÷´Ë´¦»ñÈ¡ÎÒÃÇʹÓÃµÄ etcd
¾µÏñ¡£ÆäÒªÇóÎÒÃǸù¾ÝËùÐ貿ÊðµÄ etcd ½ÚµãÊýÁ¿Ê¹ÓÃÒ»Ìõ·¢ÏÖ URL¡£ÔÚÕâÖÖÇé¿öÏ£¬ÎÒÃÇÐèÒªÉèÖõ¥¶ÀµÄ
etcd ÈÝÆ÷£¬Æä¾ßÌåÃüÁîΪ£º
[docker1]$ curl -w "\n" 'https://discovery.etcd.io/new?size=1' https://discovery.etcd.io/a293d6cc552a66e68f4b5e52ef163d68 |
ÔÚ´ËÖ®ºó£¬Ê¹ÓÃÉú³ÉµÄ URL ×÷Ϊ¡°-discovery¡±Öµ£¬Í¬Ê±Îª
etcd ´´½¨¸Ã·þÎñ£º
[docker1]$ docker service create \ --name etcd \ --replicas 1 \ --network mynet \ -p 2379:2379 \ -p 2380:2380 \ -p 4001:4001 \ -p 7001:7001 \ elcolio/etcd:latest \ -name etcd \ -discovery=https://discovery.etcd.io/a293d6cc552a66e68f4b5e52ef163d68 |
µ½ÕâÀDocker Swarm ģʽ½«±àÅÅÆäÖÐһ̨ Docker Ö÷»úÉϵÄÈÝÆ÷²¿Êð¹¤×÷¡£
¼ìË÷etcd·þÎñÐéÄâIPµØÖ·¡£ÎÒÃÇÐèÒªÔÚÏÂÒ»²½²¿Êð¼¯ÈºÊ±Ê¹ÓôËIPµØÖ·£º
[docker1]$ docker service inspect etcd -f "{{ .Endpoint.VirtualIPs }}" [{03wvlqw41e9go8li34z2u1t4p 10.255.0.5/16} {9iy6k0gqs35bn541pr31mly59 10.0.0.2/24}] |
µ½ÕâÀÎÒÃǵļܹ¹ÈçÏÂͼËùʾ£º

²¿ÊðÊý¾Ý¿â¼¯Èº
ÀûÓÃÒÔÏÂÃüÁîΪ etcd Ö¸¶¨ÐéÄâ IP µØÖ·£¬ÓÃÓÚ²¿Êð Galera(Percona
XtraDB ¼¯Èº)ÈÝÆ÷£º
[docker1]$ docker service create \ --name mysql-galera \ --replicas 3 \ -p 3306:3306 \ --network mynet \ --env MYSQL_ROOT_PASSWORD=mypassword \ --env DISCOVERY_SERVICE=10.0.0.2:2379 \ --env XTRABACKUP_PASSWORD=mypassword \ --env CLUSTER_NAME=galera \ perconalab/percona-xtradb-cluster:5.6 |
Õû¸ö²¿ÊðÁ÷³ÌÐèÒªºÄ·ÑÒ»¶Îʱ¼ä£¬°üÀ¨½«¾µÏñÏÂÔØÖÁ¶ÔÓ¦µÄ¹¤×÷/¹ÜÀí½Úµã¡£´ó¼Ò¿ÉÒÔʹÓÃÒÔÏÂÃüÁîÑéÖ¤Æä²¿Êð״̬
[docker1]$ docker service ps mysql-galera ID NAME IMAGE 8wbyzwr2x5buxrhslvrlp2uy7 mysql-galera.1 perconalab/percona-xtradb-cluster:5.6 0xhddwx5jzgw8fxrpj2lhcqeq mysql-galera.2 perconalab/percona-xtradb-cluster:5.6 f2ma6enkb8xi26f9mo06oj2fh mysql-galera.3 perconalab/percona-xtradb-cluster:5.6
NODE DESIRED STATE CURRENT STATE ERROR
docker1.local Running Running 3 minutes ago
docker3.local Running Running 2 minutes ago
docker2.local Running Running 2 minutes ago
|
¿ÉÒÔ¿´µ½£¬mysql-galera ·þÎñĿǰÒѾ¿ªÊ¼ÔËÐС£ÏÂÃæÁгöÈ«²¿ÏÖÓзþÎñ£º
[docker1]$ docker service ls ID NAME REPLICAS IMAGE 1m9ygovv9zui mysql-galera 3/3 perconalab/percona-xtradb-cluster:5.6 au1w5qkez9d4 etcd 1/1 elcolio/etcd:latest
COMMAND
-name etcd -discovery=https://discovery.etcd.io/a293d6cc552a66e68f4b5e52ef163d68 |
Swarm ģʽ°üº¬Ò»ÏîÄÚ²¿ DNS ×é¼þ£¬Æä¸ºÔð×Ô¶¯Îª Swarm
ÖеÄÿÏî·þÎñ·ÖÅäÒ»Ìõ DNS Èë¿Ú¡£Òò´Ë£¬´ó¼Ò¿ÉÒÔʹÓø÷þÎñÃû³ÆÒÔ½âÎöÖÁ¶ÔÓ¦µÄÐéÄâ IP µØÖ·£º
[docker2]$ docker exec -it $(docker ps | grep etcd | awk {'print $1'}) ping mysql-galera PING mysql-galera (10.0.0.4): 56 data bytes 64 bytes from 10.0.0.4: seq=0 ttl=64 time=0.078 ms 64 bytes from 10.0.0.4: seq=1 ttl=64 time=0.179 ms |
»òÕßÖ±½ÓʹÓá°docker service inspect¡±ÃüÁî¼ìË÷¸ÃÐéÄâ
IP µØÖ·£º
[docker1]# docker service inspect mysql-galera -f "{{ .Endpoint.VirtualIPs }}" [{03wvlqw41e9go8li34z2u1t4p 10.255.0.7/16} {9iy6k0gqs35bn541pr31mly59 10.0.0.4/24}] |
µ½ÕâÀÎÒÃǵļܹ¹ÈçÏÂͼËùʾ£º

²¿ÊðÓ¦ÓóÌÐò
×îºó£¬´ó¼Ò¿ÉÒÔ´´½¨Ó¦ÓóÌÐò·þÎñ²¢½« MySQL ·þÎñÃû³Æ(mysql-galera)×÷ΪÊý¾Ý¿âÖ÷»úÖµ½øÐн»¸¶£º
[docker1]$ docker service create \ --name wordpress \ --replicas 2 \ -p 80:80 \ --network mynet \ --env WORDPRESS_DB_HOST=mysql-galera \ --env WORDPRESS_DB_USER=root \ --env WORDPRESS_DB_PASSWORD=mypassword \ wordpress |
²¿ÊðÍê³ÉÖ®ºó£¬ÎÒÃÇËæºóÄܹ»Í¨¹ý¡°docker service inspect¡±ÃüÁî¼ìË÷
wordpress ·þÎñµÄÐéÄâ IP µØÖ·£º
[docker1]# docker service inspect wordpress -f "{{ .Endpoint.VirtualIPs }}" [{p3wvtyw12e9ro8jz34t9u1t4w 10.255.0.11/16} {kpv8e0fqs95by541pr31jly48 10.0.0.8/24}] |
ÏÖÔÚÔÙÀ´¿´Ä¿Ç°µÄ¼Ü¹¹Ê¾Òâͼ£º

ÎÒÃǵķֲ¼Ê½Ó¦ÓóÌÐòÓëÊý¾Ý¿âÉèÖÃÒѾÓÉ Docker ÈÝÆ÷²¿ÊðÍê³É¡£
½ÓÈë·þÎñÓë¸ºÔØ¾ùºâ
µ½ÕâÀÒÔ϶˿ڶ¼ÒѾÔÚ¼¯ÈºÖеÄÈ«²¿ Docker ½ÚµãÉϱ»´ò¿ª(»ùÓÚÿÌõ¡°docker
service create¡±ÃüÁîÉϵÄ-p±ê¼Ç)£¬¶øÎÞÂÛ¸÷½ÚµãĿǰÊÇ·ñÕýÔÚÔËÐи÷þÎñÈÎÎñ£º
etcd - 2380, 2379, 7001, 4001
MySQL - 3306
HTTP - 80
Èç¹ûÎÒÃÇÖ±½ÓÀûÓüòµ¥Ñ»·½ÓÈë PublishedPort£¬Ôò¿É¿´µ½ MySQL
·þÎñÒѾÔÚ¸÷ÈÝÆ÷Ö®ÉÏʵÏÖ¸ºÔؾùºâ£º
[docker1]$ while true; do mysql -uroot -pmypassword -h127.0.0.1 -P3306 -NBe 'select @@wsrep_node_address'; sleep 1; done 10.255.0.10 10.255.0.8 10.255.0.9 10.255.0.10 10.255.0.8 10.255.0.9 10.255.0.10 10.255.0.8 10.255.0.9 10.255.0.10 ^C |
ÏÖÔÚ£¬Swarm ¹ÜÀí½Úµã¸ºÔð¸ºÔؾùºâµÄÄÚ²¿¹ÜÀí£¬¶øÇÒÎÒÃÇÎÞ·¨ÅäÖøøºÔؾùºâËã·¨¡£ÔÚ´ËÖ®ºó£¬ÎÒÃÇ¿ÉÒÔÀûÓÃÍⲿ¸ºÔؾùºâÆ÷½«ÍⲿÁ÷Á¿Â·ÓÉÖÁ¸÷
Docker ½Úµãµ±ÖС£Ò»µ©ÈκΠDocker ½Úµã·¢Éú¹ÊÕÏ£¬¸Ã·þÎñ½«±»ÖØÐ¶¨Î»ÖÁÆäËü¿ÉÓýڵ㡣 |