ÊõÓï
DCOS£º£¨DataCenterOperating
System£¬Êý¾ÝÖÐÐIJÙ×÷ϵͳ£©ÊÇΪÕû¸öÊý¾ÝÖÐÐÄÌṩ·Ö²¼Ê½µ÷¶ÈÓëе÷¹¦ÄÜ£¬ÊµÏÖÊý¾ÝÖÐÐļ¶µ¯ÐÔÉìËõÄÜÁ¦µÄÈí¼þ¶ÑÕ»¡£Ëü½«ËùÓÐÊý¾ÝÖÐÐĵÄ×ÊÔ´µ±×öһ̨´óÐͼÆËã»úÀ´µ÷¶È£¬¿ÉÒÔÊÓ×÷Õâ¸ö´óÐÍÖ÷»úµÄ²Ù×÷ϵͳ¡£
IPAM£ºIPµØÖ·¹ÜÀí¡£Õâ¸öIPµØÖ·¹ÜÀí²¢²»ÊÇÈÝÆ÷ËùÌØÓе쬴«Í³µÄÍøÂç±ÈÈç˵DHCPÆäʵҲÊÇÒ»ÖÖIPAM£¬µ½ÁËÈÝÆ÷ʱ´úÎÒÃÇ̸IPAM¡£Ö÷Á÷µÄÁ½ÖÖ·½·¨£º»ùÓÚCIDRµÄIPµØÖ·¶Î·ÖÅ䵨»òÕß¾«È·ÎªÃ¿Ò»¸öÈÝÆ÷·ÖÅäIP¡£µ«×ÜÖ®Ò»µ©ÐγÉÒ»¸öÈÝÆ÷Ö÷»ú¼¯ÈºÖ®ºó£¬ÉÏÃæµÄÈÝÆ÷¶¼Òª¸øËü·ÖÅäÒ»¸öÈ«¾ÖΨһµÄIPµØÖ·£¬Õâ¾ÍÉæ¼°µ½IPAMµÄ»°Ìâ
Overlay£ºÔÚÏÖÓжþ²ã»òÈý²ãÍøÂçÖ®ÉÏÔÙ¹¹½¨ÆðÀ´Ò»¸ö¶ÀÁ¢µÄÍøÂç¡£Õâ¸öÍøÂçͨ³£»áÓÐ×Ô¼º¶ÀÁ¢µÄIPµØÖ·¿Õ¼ä¡¢½»»»»òÕß·ÓɵÄʵÏÖ¡£
VxLAN£ºÓÉVMware¡¢Cisco¡¢RedHatµÈÁªºÏÌá³öµÄÒ»¸ö½â¾ö·½°¸¡£Õâ¸ö½â¾ö·½°¸×îÖ÷ÒªÊǽâ¾öVLANÖ§³ÖÐéÄâÍøÂçÊýÁ¿£¨4096£©¹ýÉÙµÄÎÊÌâ¡£ÒòΪÔÚ¹«ÓÐÔÆÉÏÿһ¸ö×â»§¶¼Óв»Í¬µÄVPC£¬4096Ã÷ÏÔ²»¹»Ó᣾ÍÓÐÁËVxLAN£¬Ëü¿ÉÒÔÖ§³Ö1600Íò¸öÐéÄâÍøÂ磬»ù±¾ÉϹ«ÓÐÔÆÊǹ»Óõġ£
ÍøÇÅBridge£ºÁ¬½ÓÁ½¸ö¶ÔµÈÍøÂçÖ®¼äµÄÍøÂçÉ豸£¬µ«ÔÚ±¾ÎÄÀïÖ¸µÄÊÇLinux
Bridge¡£
BGP£ºÖ÷¸ÉÍø×ÔÖÎÍøÂçµÄ·ÓÉÐÒé¡£½ñÌìÓÐÁË»¥ÁªÍø£¬»¥ÁªÍøÓɺܶàСµÄ×ÔÖÎÍøÂç¹¹³ÉµÄ£¬×ÔÖÎÍøÂçÖ®¼äµÄÈý²ã·ÓÉÊÇÓÉBGPʵÏֵġ£
1. PPTV OAKÏîÄ¿½éÉÜ
ÏîÄ¿±³¾°
PPTV×÷Ϊ¹úÄÚÊÓÆµÁìÓòµÄÁìÏÈÕߣ¬¶ÔÓÚ´ó¹æÄ£Á÷ýÌåµÄ´æ´¢¡¢´¦Àí¡¢·Ö·¢¼°Ó¦Óã¬ÓÐ×ÅÆÈÇеÄÒªÇó¡£ÈÝÆ÷¼¼Êõ¼°Î¢·þÎñģʽµÄ³öÏÖ£¬Ê¹´ó¹æÄ£µÄÑз¢½»¸¶Ð§ÂÊ´óΪÌá¸ß¡£±¾ÎĽéÉÜÁËPPTVOAKÏîÄ¿ÖÐDockerÍøÂç·½°¸Ñ¡ÐÍ£¬ÒÔ¼°¶Ô±ÈÁ˶àÖÖdockerÍøÂç½â¾ö·½°¸µÄÌØµãºó£¬×îÖÕ½áºÏPPTVÍøÂç¼Ü¹¹µÄÌØµã£¬Ñ¡¶¨ÁËPPTVµÄDockerÍøÂç·½°¸¡£
¸Õ²ÅÓÐÒ»¸ö¹Ø¼ü´Ê½ÐOAK£¬OAKÊÇÏðÊ÷µÄÓ¢Îĵ¥´Ê¡£PPTVµÄOAKÏîÄ¿£¬»ùÓÚDocker¼¼Êõ´òÔìÁËDCOS¡£µ×²ã»ùÓÚMesos
+ Marathon ΪºËÐÄ£¬½áºÏDockerºÍNginx£¬ÔÚ´Ë»ù´¡ÉÏ¿ª·¢ÁËDCOS¹ÜÀí¿ØÖÆÌ¨¡¢È¨ÏÞ¹ÜÀíÄ£¿é¡¢Í³Ò»ÈÕÖ¾¹ÜÀíÄ£¿é¡¢IP³Ø¹ÜÀíÄ£¿é¡¢´æ´¢¹ÜÀíÄ£¿é£¬²¢Óë³ÖÐø¼¯³Éƽ̨Jenkins¼¯³É£¬ÊµÏÖÓ¦ÓÃÈÝÆ÷µÄ´´½¨¡¢ÔËÐС£OAKÖÂÁ¦ÓÚ¿ìËÙ²¿Êð¡¢µ¯ÐÔÀ©ËõÈÝ¡¢ÖúÁ¦Ãô½Ý¿ª·¢¡¢ÊµÏÖ¹ÊÕÏ×ÔÓúÒÔ¼°Ìá¸ß×ÊÔ´ÀûÓÃÂÊ¡£
OAK½¨ÉèÀú³Ì

ͼ 1 OAK½¨ÉèÀú³Ì OAK¹¦ÄÜ¿ò¼Ü
OAK¹¦ÄÜ¿ò¼Ü

ͼ2 OAK¹¦ÄÜ¿ò¼Ü
2016Äê³õµÄʱºò£¬ÎÒÃÇ¿ªÊ¼ÔÚ²âÊÔ»·¾³ÒýÈëDocker¡£×îÔçµÄ¼Æ»®Êǽ«PPTVµÄËùÓпª·¢²âÊÔ»·¾³¶¼Ç¨ÒƵ½ÈÝÆ÷À¿¼ÂÇÓû§Èº(Ñз¢/²âÊÔÈËÔ±)¶ÔDockerµÄÃüÁîÐвÙ×÷²»ÊìϤ£¬Èç¹ûÎÒÃÇÖ±½Ó°ÑDockerµ×²ãµÄ¹ÜÀí²Ù×÷±©Â¶¸øÓû§£¬ËûÃǵÄѧϰ³É±¾»áºÜ¸ß¡£Îª´ËÎÒÃÇʹÓÃÁËMesos+
Marathon£¬¿ÉÒÔͨ¹ýMarathon¿ìËÙ´´½¨ÈÝÆ÷£¬ÊµÏÖÈÝÆ÷¹ÊÕÏ×Ô¶¯»Ö¸´¡£¶øÊµ¼ÊÉÏÓû§¶ÔÓÚÈÝÆ÷µÄ²Ù×÷ºÍÔÀíÍêÈ«²»¹ØÐÄ£¬ËûÃÇÖ»¹ØÐÄÈçºÎ¿ÉÒÔ¿ìËÙ¡¢¼òµ¥µÄ¹¹½¨Ò»¸ö¿ª·¢»òÕß²âÊÔ»·¾³¡£Marathon¶ÔÓÚÓû§À´Ëµ»¹ÊǹýÓÚÉúÊ衣ΪÁËÈÃÓû§ÄܸüÈÝÒ×½ÓÊÜDocker£¬ÎÒÃǽ«ÈÝÆ÷µÄ´´½¨ÓëJenkinsƽ̨½áºÏ¡£JenkinsÊÇ¿ª·¢¡¢²âÊÔÈËÔ±±È½ÏÊìϤµÄƽ̨¡£ÎÒÃÇÔÚJenkinsµÄ±àÒëjobÖУ¬°Ñ±àÒë³öÀ´µÄÓ¦Óðü±£´æµ½Ò»Ì¨¼¯ÖеķþÎñÆ÷ÉÏ£¬Í¬Ê±µ÷ÓÃMarathonµÄAPI´´½¨Ò»¸öÓëÖ®¶ÔÓ¦µÄAPP¡£Õâ¸öAPP»áͨ¹ýMarathonµÄuri²ÎÊý°Ñ±àÒëºÃµÄÓ¦Óðü¹ÒÔØµ½ÈÝÆ÷ÖУ¬ÊµÏÖÓ¦ÓÃ×Ô¶¯²¿Êð¡£
µ½ÁËÕâÀ»¹´æÔÚÒ»¸öÎÊÌ⣬Óû§ÒªÔõô·ÃÎÊÒѾ²¿ÊðºÃµÄÓ¦Óã¿ÈÝÆ÷ÀïµÄÍøÂçĬÈÏÓÃÊÇÒ»¸öË½ÍøµÄIP£¬´ËIPÓëÈÝÆ÷ËùÔÚËÞÖ÷»úÉϵÄDocker0Íø¿¨×öÁËÇŽӣ¬ÊDz»ÄܸúÍâ½çͨÐÅ¡£ËùÒÔMarathonÔÚ´´½¨ÈÝÆ÷µÄʱºò£¬Í¨¹ýNAT½«ÈÝÆ÷·þÎñ¶Ë¿ÚÓ³Éäµ½ËÞÖ÷»úµÄÒ»¸öËæ»ú¶Ë¿ÚÉÏ¡£Ò²¾ÍÊÇ˵£¬Ã¿Ò»´ÎÈÝÆ÷ÖØÆôÖ®ºó£¬¶ÔÓ¦µÄ·þÎñµØÖ·Êǻᶯ̬±ä»¯µÄ¡£Îª´Ë£¬ÎÒÃÇÒýÈëÁËconsulʵÏÖ·þÎñ×¢²áºÍ·þÎñ·¢ÏÖ¡£Ã¿´ÎÈÝÆ÷·þÎñµØÖ·±ä»¯Ê±£¬½«Æä¸üе½nginx·´Ïò´úÀíµÄ¼Ç¼ÖС£Í¬Ê±£¬£¬Ó¦ÓõÄÓòÃû½âÎöµ½nginxÉÏ¡£Óû§·ÃÎÊÓ¦ÓÃÓòÃûµÄʱºò£¬nginx»á½«ÇëÇóת·¢µ½¾ßÌåµÄÈÝÆ÷Àï¡£µ½´ËΪֹ£¬Óû§ÒѾ¿ÉÒÔͨ¹ýJenkins¡°Ò»¼ü¡±Éú³ÉÔËÐл·¾³¡£
OAK¼Ü¹¹Í¼

ͼ3 OAK¼Ü¹¹Í¼
2016Äê6ÔµÄʱºò£¬PPTVÒѾÓÐ80%ÒÔÉϵÄÓ¦Óý«²âÊÔ»·¾³Ç¨ÒƵ½ÁËdockerÖУ¬ËùÒÔÎÒÃÇÒ²¿ªÊ¼½«Ä¿±ê×ªÒÆµ½ÁËÉú²ú»·¾³ÉÏ¡£Óë²âÊÔ»·¾³²»Í¬£¬PPTVµÄÉú²ú»·¾³ÍøÂçÁ÷Á¿ºÜ´ó(ÒÔÊÓÆµ²¥·ÅΪÖ÷)£¬ËùÒÔ¶ÔÍøÂçÐÔÄÜÒªÇó·Ç³£Ñϸñ¡£DockerĬÈϵÄbridgeģʽÎÞ·¨Âú×ã¡£ÁíÍ⣬Éú²ú»·¾³ÊÇÔËάÔÚ¹ÜÀí¡£ÔËάÈËԱϣÍûÏñ¹ÜÀíÐéÄâ»úÒ»Ñù¹ÜÀíÈÝÆ÷£¬Ï£ÍûÈÝÆ÷ÓÐ×Ô¼ºµÄIP£¬Í¨¹ýÕâ¸öIP
SSHµÇ¼µ½Õâ¸öÈÝÆ÷ÀËû¿ÉÒÔ²éÈÕÖ¾£¬¼à¿Ø£¬Í¬²½ÅäÖ㬻ò×öһЩÆäËûµÄ²Ù×÷¡£µ½ÁËÕâÀ¾Í¶ÔÈÝÆ÷µÄÍøÂçÓÐÁ˸ü¸ßµÄÒªÇ󣬳ýÁËÐÔÄÜ£¬»¹ÐèÒª¶ÀÁ¢IP,docker¼¯ÈºÖ®¼äµÄÈÝÆ÷Òª»¥Í¨£¬ÈÝÆ÷»¹ÐèÒªºÍ´«Í³»·¾³µÄÍøÂç´òͨ£¬Äܺʹ«Í³»·¾³ÀïµÄÓ¦ÓÃIPͨѶ¡£
¶ÔDockerÁ˽â±È½ÏÔçͬѧӦ¸Ã»áÇå³þ¡£ÔÚDockerÔçÆÚ£¬»¹ÓÐMesos+Marathon¿ò¼ÜÔçÆÚ£¬ÊÇû·¨Âú×ãÈÝÆ÷¶ÀÁ¢IPµÄÐèÇóµÄ¡£Ò»Ö±µ½2015ÄêµÄ11Ô£¬Docker1.9·¢²¼£¬Õýʽ֧³ÖoverlayÍøÂ磬֧³Ö¿çÖ÷»úÍøÂçÄ£¿éµÄͨѶ¡£
2. DockerÍøÂç·½°¸¶Ô±È
ÔçÆÚµÄÈÝÆ÷ÍøÂç
ÔçÆÚµÄÈÝÆ÷ÍøÂ磬¾ÍÊÇÖ÷»úÄÚ²¿µÄÍøÂ磬ÏëÒª°Ñ·þÎñ±©Â¶³öÈ¥ÐèҪͨ¹ýiptables×ö¶Ë¿ÚÓ³Éä¡£ÕâÊÇÊôÓÚ¡°Ô¶¹Åʱ´ú¡±µÄ¶«Î÷£¬ºÜÄѱ»ÆóҵʹÓá£

ͼ4 ÔçÆÚµÄÈÝÆ÷ÍøÂç
DockerÔçÆÚµÄ4ÖÖÍøÂçģʽ:
Bridgeģʽ:ĬÈÏģʽ£¬ÎªÈÝÆ÷·ÖÅänamespace¡¢Íø¿¨ºÍIPµÈ£¬²¢Á¬½Óµ½ËÞÖ÷»úµÄÐéÄâÍøÇÅ(docker0)
HOSTģʽ:ʹÓÃËÞÖ÷»únamespace¡¢IPºÍ¶Ë¿Ú
Containerģʽ:ʹÓÃÒѾ´æÔÚÈÝÆ÷µÄnamespace¡¢IPºÍ¶Ë¿Ú
Noneģʽ:ÈÝÆ÷ÓµÓÐ×Ô¼ºµÄnamespace,ÐèÒªÁíÍâÌí¼ÓÍø¿¨¡¢ÅäÖÃIPµÈ
Docker overlayÍøÂç

ͼ 5 Docker overlayÍøÂç
OverlayÍøÂçÊÇÖ¸ÔÚ²»¸Ä±äÏÖÓÐÍøÂç»ù´¡ÉèÊ©µÄǰÌáÏ£¬Í¨¹ýijÖÖÔ¼¶¨Í¨ÐÅÐÒ飬°Ñ¶þ²ã±¨ÎÄ·â×°ÔÚIP±¨ÎÄÖ®ÉϵÄеÄÊý¾Ý¸ñʽ¡£ÕâÑù²»µ«Äܹ»³ä·ÖÀûÓóÉÊìµÄIP·ÓÉÐÒé½ø³ÌÊý¾Ý·Ö·¢£¬¶øÇÒÔÚOverlay¼¼ÊõÖвÉÓÃÀ©Õ¹µÄ¸ôÀë±êʶλÊý£¬Äܹ»Í»ÆÆVLANµÄ4000ÊýÁ¿ÏÞÖÆ£¬Ö§³Ö¸ß´ï16MµÄÓû§£¬²¢ÔÚ±ØÒªÊ±¿É½«¹ã²¥Á÷Á¿×ª»¯Îª×é²¥Á÷Á¿£¬±ÜÃâ¹ã²¥Êý¾Ý·ºÀÄ¡£Òò´Ë£¬OverlayÍøÂçʵ¼ÊÉÏÊÇĿǰ×îÖ÷Á÷µÄÈÝÆ÷¿ç½ÚµãÊý¾Ý´«ÊäºÍ·ÓÉ·½°¸¡£
ÔÚDockerµÄ1.9Öа汾ÖÐÕýʽ¼ÓÈëÁËOverlayÍøÂçµÄÖ§³Ö¡£
FlannelÈÝÆ÷ÍøÂç

ͼ 6 FlannelÈÝÆ÷ÍøÂç
FlannelÊÇÓÉCoreOSÖ÷µ¼µÄ½â¾ö·½°¸¡£FlannelΪÿһ¸öÖ÷»úµÄDockerdaemon·ÖÅäÒ»¸öIP¶Î£¬Í¨¹ýetcdά»¤Ò»¸ö¿çÖ÷»úµÄ·ÓÉ±í£¬ÈÝÆ÷Ö®¼äIPÊÇ¿ÉÒÔ»¥ÏàÁ¬Í¨µÄ£¬µ±Á½¸ö¿çÖ÷»úµÄÈÝÆ÷ҪͨÐŵÄʱºò¡£»áÔÚÖ÷»úÉÏÐÞ¸ÄÊý¾Ý°üµÄheader£¬ÐÞ¸ÄÄ¿µÄµØÖ·ºÍÔ´µØÖ·,¾¹ý·ÓÉ±í·¢Ë͵½Ä¿±êÖ÷»úºó½â°ü¡£·â°üµÄ·½Ê½£¬¿ÉÒÔÖ§³Öudp¡¢vxlan¡¢host-gwµÈ£¬µ«ÊÇÈç¹ûÒ»¸öÈÝÆ÷Òª±©Â¶·þÎñ£¬»¹ÊÇÐèÒªÓ³ÉäIPµ½Ö÷»ú²àµÄ¡£
Calico ÍøÂç·½°¸

ͼ 7 calicoÍøÂç
CalicoÊǸöÄêÇáµÄÏîÄ¿£¬»ùÓÚBGPÐÒé.Íêȫͨ¹ýÈý²ã·ÓÉʵÏÖ£¬¶ÔÍøÂç²»ÊìϤµÄͬѧ¿ÉÄܶ¼Ã»ÓÐÌý˵¹ý¡£CalicoµÄÄ¿±êºÜ´ó£¬¿ÉÒÔÓ¦ÓÃÔÚÐé»ú£¬ÎïÀí»ú£¬ÈÝÆ÷»·¾³ÖС£ÔÚCalicoÔËÐеÄÖ÷»úÉÏ¿ÉÒÔ¿´µ½´óÁ¿ÓÉlinux·ÓÉ×é³ÉµÄ·ÓÉ±í£¬ÕâÊÇcalicoͨ¹ý×ÔÓÐ×é¼þ¶¯Ì¬Éú³ÉºÍ¹ÜÀíµÄ¡£ÕâÖÖʵÏÖ²¢Ã»ÓÐʹÓÃËíµÀ£¬Ã»ÓÐNAT£¬µ¼ÖÂûÓÐÐÔÄܵÄËðºÄ£¬ÐÔÄܺܺ㬴Ӽ¼ÊõÉÏÀ´¿´ÊÇÒ»ÖÖºÜÓÅÔ½µÄ·½°¸¡£ÕâÑù×öµÄºÃ´¦ÔÚÓÚ£¬ÈÝÆ÷µÄIP¿ÉÒÔÖ±½Ó¶ÔÍⲿ·ÃÎÊ£¬¿ÉÒÔÖ±½Ó·ÖÅäµ½ÒµÎñIP£¬¶øÇÒÈç¹ûÍøÂçÉ豸֧³ÖBGPµÄ»°£¬¿ÉÒÔÓÃËüʵÏÖ´ó¹æÄ£µÄÈÝÆ÷ÍøÂç¡£µ«BGP´ø¸øËüµÄºÃ´¦µÄͬʱҲ´ø¸øËûµÄÁÓÊÆ£¬BGPÐÒéÔÚÆóÒµÄÚ²¿»¹ºÜÉÙ±»½ÓÊÜ£¬ÆóÒµÍø¹Ü²»Ì«Ô¸ÒâÔÚ¿çÍøÂçµÄ·ÓÉÆ÷ÉÏ¿ªÆôBGPÐÒé
·½°¸¶Ô±ÈС½á ¼òµ¥×ܽáÒ»ÏÂÉϱßÌáµ½µÄ¼¸ÖÖÍøÂç·½°¸£¬²»Íâºõ³ö×ÔÁ½¸ö¼¼ÊõÁ÷ÅÉ,ËíµÀ·½°¸ºÍ·ÓÉ·½°¸¡£
ËíµÀ·½°¸
±ÈÈçFlannelµÄVxLan¡£ÌصãÊǶԵײãµÄÍøÂçûÓйý¸ßµÄÒªÇó£¬Ò»°ãÀ´ËµÖ»ÒªÊÇÈý²ã¿É´ï¾Í¿ÉÒÔ£¬Ö»ÒªÊÇÔÚÒ»¸öÈý²ã¿É´ïÍøÂçÀ¾ÍÄܹ¹½¨³öÒ»¸ö»ùÓÚËíµÀµÄÈÝÆ÷ÍøÂç¡£ÎÊÌâÒ²ºÜÃ÷ÏÔ£¬Ò»¸ö´ó¼Ò¹²Ê¶ÊÇËæ×Å½Úµã¹æÄ£µÄÔö³¤¸´ÔÓ¶È»áÌáÉý£¬¶øÇÒ³öÁËÍøÂçÎÊÌâ¸ú×ÙÆðÀ´±È½ÏÂé·³£¬´ó¹æÄ£¼¯ÈºÇé¿öÏÂÕâÊÇÐèÒª¿¼ÂǵÄÒ»¸öµã¡£
·ÓÉ·½°¸
·Óɼ¼Êõ´ÓÈý²ãʵÏÖ¿çÖ÷»úÈÝÆ÷»¥Í¨£¬Ã»ÓÐNAT£¬Ð§ÂʱȽϸߣ¬ºÍĿǰµÄÍøÂçÄܹ»ÈÚºÏÔÚÒ»Æð£¬Ã¿Ò»¸öÈÝÆ÷¶¼¿ÉÒÔÏñÐéÄâ»úÒ»Ñù·ÖÅäÒ»¸öÒµÎñµÄIP¡£µ«Â·ÓÉÍøÂçÒ²ÓÐÎÊÌ⣬·ÓÉÍøÂç¶ÔÏÖÓÐÍøÂçÉ豸ӰÏì±È½Ï´ó£¬Â·ÓÉÆ÷µÄ·ÓɱíÓ¦¸ÃÓпռäÏÞÖÆÒ»°ãÊÇÁ½ÈýÍòÌõ¡£¶øÈÝÆ÷µÄ´ó²¿·ÖÓ¦Óó¡¾°ÊÇÔËÐÐ΢·þÎñ£¬ÊýÁ¿¼¯ºÜ´ó¡£Èç¹û¼¸ÍòеÄÈÝÆ÷IP³å»÷µ½Â·ÓɱíÀµ¼ÖÂϲãµÄÎïÀíÉ豸û°ì·¨³ÐÊÜ£»¶øÇÒÿһ¸öÈÝÆ÷¶¼·ÖÅäÒ»¸öÒµÎñIP£¬ÒµÎñIPÏûºÄ»áºÜ¿ì¡£
3.PPTV DockerÍøÂç½â¾ö·½°¸
¶Ô±ÈÁ˼¸ÖÖ½â¾ö·½°¸Ö®ºó£¬½áºÏPPTVµÄʵ¼ÊÇé¿ö£º
1.ÍøÂç×éÈËÁ¦²»×ãÒÔά»¤Ò»¸öOverlayÍøÂ磬OverlayÍøÂç³öÎÊÌâÅŲ鸴ÔÓ£¬»á³öÏÖʧ¿ØµÄ״̬¡£
2.ËíµÀ¼¼ÊõÓ°ÏìÐÔÄÜ£¬²»ÄÜÂú×ãÉú²ú»·¾³¶ÔÍøÂçÐÔÄܵÄÒªÇó¡£
3.¿ªÆôbgp¶ÔÏÖÓÐÍøÂç¸Ä¶¯Ì«´ó£¬ÎÞ·¨½ÓÊÜ¡£
4.ÔËά×éͬѧϣÍûÄÜͨ¹ýÍøÂçÇŽӵķ½°¸½â¾öÈÝÆ÷ÍøÂç¡£
ÈÝÆ÷ÍøÂçÇŽÓ
×îÖÕ£¬ÎÒÃǵĽâ¾ö·½°¸£¬»ùÓÚdockerµÄbridgeģʽ£¬½«Ä¬ÈϵÄdocker
bridgeÍøÇÅÌæ»»Îªlinuxbridge£¬°ÑlinuxbridgeÍø¶ÎµÄip¼ÓÈëµ½ÈÝÆ÷ÀʵÏÖÈÝÆ÷Ó봫ͳ»·¾³Ó¦ÓõĻ¥Í¨¡£
ʵÏÖ˼·ºÜ¼ò½àÇåÎú£¬ÏÖÔÚÓÐÒ»¸öMesosÖ÷»ú
1.Ê×ÏÈ»áÔÚ¸ÃÖ÷»úÉÏÌí¼ÓÒ»¸ölinux bridge£¬°ÑÖ÷»úÍø¿¨£¬¿ÉÒÔÊÇÎïÀí»úµÄ£¬Ò²¿ÉÒÔÊÇÐéÄâ»úµÄ£¬°ÑÕâ¸öÍø¿¨¼ÓÈëbridgeÀïÃæ£¬bridgeÅäÉÏÍø¿¨Ô±¾µÄ¹ÜÀíIP¡£
2.´´½¨Ò»¸öеÄdocker bridgeÍøÂ磬ָ¶¨bridge×ÓÍø£¬²¢½«¸ÃÍøÂçµÄÍøÇŰ󶨵½ÉÏÒ»²½´´½¨µÄÍøÇÅÉÏ¡£
3.ÈÝÆ÷Æô¶¯Ê±ºò£¬Ö¸¶¨ÈÝÆ÷ÍøÂçΪµÚ¶þ²½Öд´½¨µÄbridgeÍøÂ磬ͬʱΪÈÝÆ÷Ö¸¶¨Ò»¸ö¸ÃÍøÂç×ÓÍøÄÚµÄIP¡£ÈÝÆ÷Æô¶¯ºóÍøÂçIPĬÈϼ´¿ÉÓëÍâ½ç»¥Í¨¡£
ÕâÀïҪעÒâµÄÊǵڶþ²½£¬ÎÒÃǵÄͬѧÔÚÑо¿Õâ¸ö·½°¸µÄʱºòÈÆÁËÒ»¸öºÜ´óµÄȦ×Ó£¬ÒòΪdockerÈÝÆ÷ʹÓÃdockerbridgeÍøÂçģʽµÄʱºò£¬ÔÚÈÝÆ÷Æô¶¯Ê±»áĬÈϰÑÈÝÆ÷µÄÍø¹ØÖ¸Ïòµ½ËÞÖ÷»úÉϵÄÍøÇÅIP£¬¼´linux
bridgeµÄIP£¬¶øÕâ¸öIP²¢²»ÊǸÃÍø¶ÎµÄÍø¹Ø¡£ËùÒÔÎÒÃÇÐèÒªÔÚÈÝÆ÷Æô¶¯µÄʱºò½«ÈÝÆ÷Íø¹ØÖ¸Ïòµ½Êµ¼ÊµÄÍø¹ØµØÖ·£¬¶ø½â¾öÕâ¸öÎÊÌâµÄ·½·¨ÔÚdocker¹Ù·½ÎĵµÖв¢Ã»ÓÐÌáµ½£¬ÎÒÃÇ×îÖÕÊÇÔÚÒ»¸öissueÀïÕÒµ½Á˽â¾ö°ì·¨¡£
Á´½ÓÔÚ´Ë https://github.com/docker/docker/issues/20758
¸ø¸ö¼òµ¥µÄÀý×Ó
docker network create --gateway10.199.45.200
--subnet 10.199.45.0/24 -o
com.docker.network.bridge.name=br-oak--aux-address
"DefaultGatewayIPv4=10.199.45.1" oak-net
¹Ø¼ü²ÎÊý: --aux-address"DefaultGatewayIPv4=10.199.45.1"
ÒÔÉϱߵÄÃüÁîΪÀý£¬¸ÃÃüÁîÖд´½¨ÁËÒ»¸ödockerbridgeÍøÂ磬²¢ÓëdockerËùÔÚÖ÷»úµÄbr-oakÍøÇÅ×öÇŽӣ¬¸ÃÍøÂçµÄʹÓÃÁË10.199.45.0/24Õâ¸ö×ÓÍø£¬Í¬Ê±Í¨¹ý
--aux-
address"DefaultGatewayIPv4=10.199.45.1"
Õâ¸ö²ÎÊý½«ÈÝÆ÷Æô¶¯Ê±µÄÍø¹ØÖ¸Ïòµ½10.199.45.1
ͨ¹ýÍøÇŵķ½Ê½½â¾öÈÝÆ÷ÍøÂçÓÐÁ½¸öÎÊÌâ:
1.linux bridge Ö»ÄÜÌí¼Ó¸úslavehost ͬһ¸övlanµÄIP£¬Ò²¾ÍÊÇ˵ÈÝÆ÷IP±ØÐëÒªºÍËÞÖ÷»úÔÚͬһvlanÏ£¬ÕâÔÚÒ»¶¨³Ì¶ÈÉϾÍÏÞÖÆÁËÈÝÆ÷¿çËÞÖ÷»úÆ¯ÒÆµÄ·¶Î§¡£
²»¹ýÕâ¸öÎÊÌâÔÚPPTVµÄÉú²ú»·¾³ÖÐÌìÈ»²»´æÔÚ£¬ÒòΪÎÒÃǵÄÉú²ú»·¾³ÖУ¬Ã¿¸öÊý¾ÝÖÐÐĵÄÖ÷»ú¶¼ÔÚÒ»¸öºÜ´óµÄ×ÓÍøÄÚ£¬»ù±¾ÄÜÂú×ãÈÝÆ÷ÔÚÕû¸öÊý¾ÝÖÐÐĵÄÈÎÒâ½ÚµãÏÂÆ¯ÒÆ¡£
2.ÒªÈÃÈÝÆ÷IPÔÚ²»Í¬µÄËÞÖ÷»úÉÏÆ¯ÒÆ£¬ËÞÖ÷»úµÄdockerÍøÂçÐèҪʹÓÃͬһ¸öCIDR£¬Ò²¾ÍÊǸ÷ËÞÖ÷»úµÄÈÝÆ÷ʹÓÃͬһ¸öÍø¶Î¡£¶ø²»Í¬ËÞÖ÷»úµÄʹÓÃͬһ¸öÈÝÆ÷Íø¶Î¾Í»áÉæ¼°µ½IPAMµÄÎÊÌ⣬ÒòΪËÞÖ÷»úµÄdocker
daemonÖ»ÖªµÀËû±¾»úÉϵÄÈÝÆ÷ʹÓÃÁËÄÄЩIP£¬¶øÕâЩIPÔÚÆäËûËÞÖ÷»úÉÏÓÐûÓб»Ê¹Óã¬ÊDz»ÖªµÀµÄ¡£
ÔÚĬÈϵÄdocker bridgeÖУ¬ÒòΪÕâЩip²»»áÖ±½ÓÓëÍⲿͨÐÅ£¬ËùÒÔÈÝÆ÷ʹÓÃÏàͬIPÒ²²»»áÓÐÎÊÌ⣬µ«Êǵ±ÈÝÆ÷ÍøÂçͨ¹ýlinux
bridge´òͨÒÔºó£¬ËùÓÐÈÝÆ÷¶¼ÊÇ2²ã»¥Í¨µÄ£¬Ò²¾ÍÊÇ»á³öÏÖIP³åÍ»µÄÎÊÌâ¡£
ΪÁ˽â¾öÉϱßÌáµ½µÄÎÊÌ⣬ʵÏÖÈ«¾ÖµÄIP¹Ü¿Ø£¬ÎÒÃÇ¿ª·¢ÁËIP³Ø¹ÜÀíÆ½Ì¨£¬ÊµÏÖ¶ÔÈÝÆ÷IPµÄ·ÖÅä¹ÜÀí¡£ÓÉÕâ¸öƽ̨¹ÜÀíµÄIPÓÐÈýÖÖ״̬:
1.δ·ÖÅ䏸ӦÓÃ
2.ÒÑ·ÇÅ䏸ӦÓò¢ÇÒÔÚʹÓÃÖÐ
3.ÒÑ·ÖÅ䏸ӦÓõ«Êǵ±Ç°Î´Ê¹ÓÃ
¹ÜÀíÆ½Ì¨ÒÔmarathonÉϵÄappÐÅÏ¢×÷ΪÊý¾ÝÔ´£¬¶¨ÆÚÈ¥µ÷ÓÃmarathonµÄAPI¸üÐÂIPÁÐ±í¡£µ±ÎÒÃÇÒªÔÚmarathonÉÏ´´½¨Ò»¸öʹÓù̶¨IPµÄÈÝÆ÷ʱ£¬Ê×ÏÈ»áÇëÇóIP³Ø¹ÜÀíÆ½Ì¨µÄIP·ÖÅä½Ó¿Ú£¬ÇëÇóµÄʱºò°Ñapp
id·¢¸ø·ÖÅä½Ó¿Ú£¬¹ÜÀíÆ½Ì¨¸ù¾Ýappid ÅжÏÕâ¸öÓ¦ÓÃÊÇ·ñÊÇÐÂÓ¦Óã¬Èç¹ûÊÇÐÂÓ¦ÓÃÔò´ÓIP³ØÖзµ»ØÒ»¸öδʹÓõÄIP£¬²¢½«´ËIPÓëÓ¦ÓùØÁª¡£Èç¹ûÊÇÒѾ´æÔÚµÄÓ¦ÓÃÔò·ÖÅäÒѹØÁªµÄIP¡£IPÓëÓ¦ÓùØÁªÖ®ºó£¬´ËIP¾Í²»»áÔÙ·ÖÅ䏸ÆäËûÓ¦Ó㬳ý·ÇIP³ØÒѾûÓпÉÓÃIP£¬ÕâÑù×öÊÇΪÁË·ÀÖ¹Ó¦ÓÃÈç¹ûÖØÆô»òÕßÖØÐ¹¹½¨µÄʱºò£¬IPÓпÉÄܻᱻÆäËûÔÚͬһʱ¼äÆô¶¯µÄʵÀýʹÓõôµÄ·çÏÕ¡£
IP³Ø¹ÜÀíÄ£¿é·ÖÅäIPµÄÁ÷³Ìͼ´óÖÂÈçÏÂ:

ͼ 8 ip·ÖÅäÁ÷³Ìͼ
ºóÐø¹¤×÷
ÍøÂç·½°¸¸ã¶¨£¬¹Ì¶¨IP¸ã¶¨¡£ÎÒÃÇÒª×öµÄ»¹Óкܶࡣ
ͨ¹ýÍøÇŵķ½Ê½¡¢½â¾öÁËÈÝÆ÷ÍøÂçµÄÎÊÌ⣬ÎÒÃǽÓÏÂÀ´»¹ÒªÃæÁÙÆäËûµÄÎÊÌâ¡£
Ê×µ±Æä³åµÄ¾ÍÊÇÔÏȵķþÎñ×Ô¶¯×¢²á¡¢×Ô¶¯·¢ÏÖ£¬²»ÔÙÊÊÓ¦ÁË¡£ÒòΪÔÏȵķ½°¸ÊÇ»ùÓÚNATµÄģʽ×öµÄ£¬¶øÏÖÔÚʵÏÖÁ˶ÀÁ¢IPµÄ¹¦ÄÜ¡£ÎÒÃÇÐèÒª½«ÏÖÓÐµÄÆ½Ì¨ÓëPPTVÄÚ²¿µÄDNS×ö×Ô¶¯»¯¶Ô½Ó£¬Ã¿µ±ÓÐÈÝÆ÷´´½¨ºÍÉú³Éʱ£¬¶¼»á×Ô¶¯¶ÔÈÝÆ÷µÄIP×öDNS½âÎö¡£
ÁíÍâÒ»¸öÎÊÌâÊǸºÔؾùºâ£¬PPTVµÄ¸ºÔؾùºâ»ù±¾¶¼ÊÇͨ¹ýLVS
+ nginxʵÏֵ쬵«¶ÔÓÚºǫ́µÄÈÝÆ÷Ó¦ÓÃÀ´Ëµ£¬Ã¿´ÎÀ©ÈݺÍËõÈÝ¡¢»òÕß´´½¨ÐµÄÓ¦Ó㬸ºÔؾùºâµÄºó¶ËÅäÖÃÒ²ÊÇÐèÒª×Ô¶¯¸üеġ£
¶ÔÕâÆªÎÄÕÂÄãÓÐʲôÏë·¨ºÍ¹Ûµã£¿»¶ÓÔÚºǫ́¸øÎÒÃÇÁôÑÔ |