Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
ÔÚDockerÖÐÔËÐÐMySQL£º¶àÖ÷»úÍøÂçÏÂDocker SwarmģʽµÄÈÝÆ÷¹ÜÀí
 
×÷ÕߣºSeveralnines  À´Ô´;51CTO ·¢²¼ÓÚ 2016-11-14
  1661  次浏览      27
 

±¾ÎĽ«ÒÔ¶àÖ÷»úÍøÂç»·¾³Îª»ù´¡£¬Ì½ÌÖÈçºÎÀûÓÃÄÚÖñàÅŹ¤¾ß 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 ½Úµã·¢Éú¹ÊÕÏ£¬¸Ã·þÎñ½«±»ÖØÐ¶¨Î»ÖÁÆäËü¿ÉÓýڵ㡣

   
1661 ´Îä¯ÀÀ       27
 
Ïà¹ØÎÄÕÂ

ÔÆ¼ÆËãµÄ¼Ü¹¹
¶ÔÔÆ¼ÆËã·þÎñÄ£ÐÍ
ÔÆ¼ÆËãºËÐļ¼ÊõÆÊÎö
Á˽âÔÆ¼ÆËãµÄ©¶´
 
Ïà¹ØÎĵµ

ÔÆ¼ÆËã¼ò½é
ÔÆ¼ÆËã¼ò½éÓëÔÆ°²È«
ÏÂÒ»´úÍøÂç¼ÆËã--ÔÆ¼ÆËã
ÈídzÎöÔÆ¼ÆËã
 
Ïà¹Ø¿Î³Ì

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
ÔÆ¼ÆËãÓ¦ÓÃÓ뿪·¢
CMMIÌåϵÓëʵ¼ù
»ùÓÚCMMI±ê×¼µÄÈí¼þÖÊÁ¿±£Ö¤
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

ר¼ÒÊӽǿ´ITÓë¼Ü¹¹
Èí¼þ¼Ü¹¹Éè¼Æ
ÃæÏò·þÎñÌåϵ¼Ü¹¹ºÍÒµÎñ×é¼þµÄ˼¿¼
ÈËÈËÍøÒÆ¶¯¿ª·¢¼Ü¹¹
¼Ü¹¹¸¯»¯Ö®ÃÕ
̸ƽ̨¼´·þÎñPaaS
Ïà¹ØÅàѵ¿Î³Ì

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
Windows Azure ÔÆ¼ÆËãÓ¦ÓÃ

ĦÍÐÂÞÀ­ ÔÆÆ½Ì¨µÄ¹¹½¨ÓëÓ¦ÓÃ
ͨÓù«Ë¾GE DockerÔ­ÀíÓëʵ¼ù
ijÑз¢ÖÐÐÄ Openstackʵ¼ù
ÖªÃûµç×Ó¹«Ë¾ ÔÆÆ½Ì¨¼Ü¹¹ÓëÓ¦ÓÃ
ijµçÁ¦ÐÐÒµ »ùÓÚÔÆÆ½Ì¨¹¹½¨ÔÆ·þÎñ
ÔÆ¼ÆËãÓëWindows AzureÅàѵ
±±¾© ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ