DockOne¼¼Êõ·ÖÏí£¨°Ë£©£ºOpenStack MagnumÉçÇø¼°ÏîÄ¿½éÉÜ
½ñÌìÖ÷Òª¸ú´ó¼Ò¼òµ¥½éÉÜÏÂMagnumÉçÇøºÍMagnumÏîÄ¿µÄһЩ½éÉÜ¡£Magnumµ½ÏÖÔÚΪֹ£¬¹¦ÄÜ×öµÄÆäʵ²»ÊǺܶ࣬ϣÍûͨ¹ýÕâ´Î»ú»áÄܺʹó¼Ò¶à¶àÌÖÂÛÏ£¬¿´¿´ÔõÑùÈÃMagnumÌṩ¸üºÃµÄÈÝÆ÷·þÎñ¡£
1.MagnumÉçÇø
MangumÏÖÔÚÓ¦¸ÃÊÇOpenStackÀï±ß±È½ÏÈÈÃŵÄÒ»¸öºÍDocker¼¯³ÉµÄÐÂÏîÄ¿¡£MagnumÊÇÈ¥Äê°ÍÀè·å»áºó¿ªÊ¼µÄÒ»¸öеÄרÃÅÕë¶ÔContainerµÄÒ»¸öÐÂÏîÄ¿£¬ÓÃÀ´ÏòÓû§ÌṩÈÝÆ÷·þÎñ¡£´ÓÈ¥Äê11Ô·ݿªÊ¼ÔÚstackforgeÌá½»µÚÒ»¸öpatch£¬½ñÄê3Ô·ݽøÈëOpenStack
namespace£¬Õâ¸öÏîĿӦ¸ÃÊÇOpenStackÉçÇø´ÓstackforgeÇ¨ÒÆµ½OpenStack
namespace×î¿ìµÄÒ»¸öÏîÄ¿¡£MagnumÏÖÔÚ¿ÉÒÔΪÓû§ÌṩKubernetes as a Service¡¢Swarm
as a ServiceºÍÕ⼸¸öƽ̨¼¯³ÉµÄÖ÷ҪĿµÄÊÇÄÜÈÃÓû§¿ÉÒԺܷ½±ãµÄͨ¹ýOpenStackÔÆÆ½Ì¨À´¹ÜÀík8s£¬swarm£¬ÕâЩÒѾºÜ³ÉÐ͵ÄDocker¼¯Èº¹ÜÀíϵͳ£¬Ê¹Óû§ºÜ·½±ãµÄʹÓÃÕâЩÈÝÆ÷¹ÜÀíϵͳÀ´ÌṩÈÝÆ÷·þÎñ¡£

ͨ¹ýÕâ¸öͼÖ÷ÒªÊÇÏëÇ¿µ÷Ï£¬¾ÍÊÇMagnumÉçÇøÏÖÔÚ·¢Õ¹ºÜѸËÙ£¬´ó¼Ò¿ÉÒÔ¿´Ò»ÏÂpatch
setºÍcommitµÄ¶Ô±È£¬»ù±¾ÉÏÆ½¾ùÈý¸öpatch set¾Í»á²úÉúÒ»¸öcommit£¬ËùÒÔÏ£Íû¶ÔDocker¸ÐÐËȤµÄÈË£¬¿ÉÒÔ²ÎÓëµ½MagnumµÄ¿ª·¢ÖÐÀ´¡£

ÕâÒ»Ò³ÊÇMagnumÉçÇøµÄһЩÇé¿ö£¬Ö÷ÒªÁгöÁËһЩΪMagnum×ö¹±Ï׵Ĺ«Ë¾£¬°üÀ¨IBM¡¢Rackspace¡¢hp¡¢ciscoµÈµÈ£¬IBMĿǰÔÚÕâ¸öÏîÄ¿ÅŵÚһλ¡£
ͨ³£Çé¿öÏ£¬Ò»¸ö¹«Ë¾¶ÔÄÄЩÏîÄ¿±È½Ï¿´ÖØ£¬»òÕßËü¶ÔOpenStackÉçÇøµÄ×î½üµÄһЩ²ßÂÔ£¬¶¼¿ÉÒÔͨ¹ý·ÖÎöÿ¸ö¹«Ë¾¶ÔOpenStackµÄ¹±Ï×À´µÃµ½Ò»¶¨µÄ½áÂÛ¡£Èç¹ûij¸ö¹«Ë¾ÔÚij¸öÏîÄ¿¹±ÏױȽ϶àµÄ»°£¬¿ÉÄܾÍÒâζ×ÅÕâ¸ö¹«Ë¾»áÔÚÏà¹ØÁìÓòÓÐһЩ¶¯×÷¡£´ó¼ÒÈç¹û¸ÐÐËȤµÄ»°£¬¿ÉÒÔͨ¹ýhttp://stackalytics.com/È¥Ñо¿Ò»ÏÂ×Ô¼º¸ÐÐËȤµÄ¹«Ë¾×î½üÔÚOpenStackµÄһЩ¶¯Ì¬¡£
ÔÚÕâ¼òµ¥½éÉÜÏÂMagnumµÄһЩÖ÷ÒªContributor£¬Adrian
OttoÊÇRackspaceµÄ½Ü³ö¹¤³Ìʦ£¬MagnumºÍSolumµÄË«ÖØPTL£»Steven Dake¸Õ¸Õ´ÓRedHat¼ÓÈëCisco£¬ËûÊÇHeatµÄ´´Ê¼ÈËÖ®Ò»£¬ÏÖÔÚKollaµÄPTL£¬Í¬Ê±»¹ÔÚ»ý¼«Íƶ¯Ò»¸öÐÂÏîÄ¿Machine
Learning-As-A-Service£»Davanum Srinivas (dims)¸Õ¸Õ´ÓIBM¼ÓÈëMirantis£¬ÏÖÔÚµ£ÈÎOsloµÄPTL¡£
2. Why Magnum
½ÓÏÂÀ´ÎÒÃÇ¿´ÏÂΪʲôÐèÒªMagnum¡¢OpenStackÏÖÔÚºÍDocker¼¯³ÉÏÖÔÚÖ÷ÒªÓÐÈý¿é£¬°üÀ¨nova
Docker driver£¬heat Docker driverºÍKiloÍÆ³öµÄMagnum£¬µ±È»»¹°üº¬Ò»Ð©±ðµÄÏîÄ¿£¬ÀýÈçSahara£¬Murano£¬Kolla£¬SolumµÈµÈ¡£
2.1 Nova Docker driver

ÉÏͼÊÇnova Docker driver£¬Õâ¸ödriverÊÇOpenStackºÍDockerµÄµÚÒ»´Î¼¯³É£¬ÏàÐŶÔDockerºÍOpenStack¸ÐÐËȤµÄÈË£¬Ó¦¸Ã¶¼ÓùýÕâ¸ödriver
Õâ¸ödriverµÄ»°£¬Ö÷ÒªÊǰѰÑDocker×÷ΪһÖÖеÄHypervisorÀ´´¦Àí£¬°ÑËùÓеÄcontainerµ±³ÉvmÀ´´¦Àí¡£ÌṩÁËÒ»¸öDockerµÄnova
compute driver¡£ÎÒ²»ÖªµÀ@Gnep@±±¾©-VisualOp µÄHyperÊDz»ÊÇ¿ÉÒÔ¿¼ÂÇÏÈŪ¸ödriverÊÔÊÔ£¬ÎÒÃÇ´ý»á¿ÉÒÔÌÖÂÛ¡£
Õâ¸ödriverµÄÓŵãÊÇʵÏֱȽϼòµ¥£¬Ö»ÐèÒª°Ñnova computeÖеÄһЩ¶ÔÐéÄâ»ú²Ù×÷µÄ³£ÓýӿÚʵÏ־ͿÉÒÔ£¬ÏÖÔÚÖ÷ÒªÖ§³Ö´´½¨£¬Æô¶¯£¬Í£Ö¹£¬pause£¬unpauseµÈÐéÄâ»úµÄ»ù±¾²Ù×÷¡£
ÁíÍâÒ»¸öÊÇÒòΪnova Docker driverÒ²ÊÇÒ»¸önovaµÄcompute driver£¬ËùÒÔËû¿ÉÒÔÏñÆäËûµÄcompute
driverÒ»ÑùʹÓÃOpenStackÖеÄËùÓзþÎñ£¬°üÀ¨Ê¹ÓÃnova schedulerÀ´×ö×ÊÔ´µ÷¶È£¬Ê¹ÓÃheatÀ´×öÓ¦Óò¿Ê𣬷þÎñ·¢ÏÖ£¬À©ÈÝËõÈݵȵȣ¬Í¬Ê±Ò²¿ÉÒÔͨ¹ýºÍneutron¼¯³ÉÀ´¹ÜÀíDockerÍøÂç¡£Ò²Ö§³Ö¶à×â»§£¬Îª²»Í¬µÄ×â»§ÉèÖò»Í¬µÄquota£¬×ö×ÊÔ´¸ôÀëµÈµÈ¡£IBMÏÖÔÚµÄSuperVessel
CloudʹÓõľÍÊÇÕâ¸öDriver¡£
ËûµÄȱµãÒ²ºÜÃ÷ÏÔ£¬ÒòΪDockerºÍÐéÄâ»ú²î±ðҲͦ´óµÄ£¬Docker»¹ÓÐһЩºÜ¸ß¼¶µÄ¹¦ÄÜÊÇVMËùûÓеģ¬ÏñÈÝÆ÷¹ØÁª£¬¾ÍÊÇʹ²»Í¬ÈÝÆ÷Ö®¼äÄܹ»¹²ÏíһЩ»·¾³±äÁ¿£¬À´ÊµÏÖһЩ·þÎñ·¢ÏֵŦÄÜ£¬ÀýÈçk8sµÄpod¾ÍÊÇͨ¹ýÈÝÆ÷¹ØÁªÀ´ÊµÏֵġ£ÁíÍâÒ»¸öÊǶ˿ÚÓ³É䣬k8sµÄpodҲʹÓÃÁ˶˿ÚÓ³ÉäµÄ¹¦ÄÜ£¬¿ÉÒÔ°ÑÒ»¸öpodÖеÄËùÓÐcontainerµÄport¶¼Í¨¹ýnet
container export³öÈ¥£¬±ãÓÚºÍÍâ½çͨÐÅ¡£»¹ÓÐÒ»¸öÊDz»Í¬ÍøÂçģʽµÄÅäÖã¬ÒòΪDockerµÄÍøÂçģʽºÜ¶à£¬°üÀ¨hostģʽ£¬containerģʽµÈµÈ£¬ÒÔÉϵÄËùÓй¦Äܶ¼ÊÇnova
Docker driver²»ÄÜʵÏֵġ£
2.2 Heat Docker Driver

ÉÏͼÊÇheat Docker driver£¬ÒòΪnova Docker driver²»ÄÜʹÓÃDockerµÄһЩ¸ß¼¶¹¦ÄÜ£¬ËùÒÔÉçÇø¾ÍÏëÁËÁíÒ»¸ö·½·¨£¬ºÍheatÈ¥¼¯³É£¬ÒòΪheat²ÉÓõÄÒ²ÊDzå¼þģʽ£¬ËùÒÔ¾ÍÔÚheatʵÏÖÁËÒ»¸öеÄresource£¬×¨ÃÅÀ´ºÍDocker¼¯³É¡£Õâ¸öheat²å¼þÊÇÖ±½Óͨ¹ýrest
apiºÍDocker½»»¥µÄ£¬²»ÐèÒªºÍnova¡¢cinder¡¢neutronµÈµÈÀ´½øÐн»»¥¡£
ËùÒÔÕâ¸ödriverµÄÓŵãÊÇÊ×ÏÈËüÍêÈ«¼æÈÝDockerµÄapi£¬ÒòΪÎÒÃÇ¿ÉÒÔÔÚheat templateÀï±ßÈ¥¶¨ÒåÎÒÃǹØÐĵIJÎÊý£¬¿ÉÒÔʵÏÖDockerµÄËùÓи߼¶¹¦ÄÜ£¬Óû§¿ÉÒÔÔÚheat
template¶¨ÒåÈÎÒâµÄ²ÎÊý¡£ÁíÍâÒòΪºÍheat¼¯³ÉÁË£¬ËùÒÔĬÈϾÍÓÐÁËmulti tenatµÄ¹¦ÄÜ£¬¿ÉÒÔʵÏÖ²»Í¬DockerÓ¦ÓÃÖ®¼äµÄ¸ôÀë¡£
µ«ÊÇËûµÄȱµãÒ²·Ç³£Ã÷ÏÔ£¬ÒòΪËûÊÇheatÖ±½Óͨ¹ýrest apiºÍDocker½»»¥µÄ£¬ËùÒÔheat
Docker driverûÓÐ×ÊÔ´µ÷¶È£¬Óû§ÐèÒªÔÚtemplateÖÐÖ¸¶¨ÐèÒªÔÚÄÄһ̨Docker·þÎñÆ÷ÉÏÈ¥²¿ÊðÓ¦Óã¬ËùÒÔÕâ¸ödriver²»Êʺϴó¹æÄ£Ó¦ÓÃ,ÒòΪûÓÐ×ÊÔ´µ÷¶È¡£ÁíÍâÒòΪûÓкÍneutronÈ¥½»»¥£¬ËùÒÔÍøÂç¹ÜÀíÒ²Ö»ÄÜÓÃDocker±¾ÉíµÄÍøÂç¹ÜÀí¹¦ÄÜ£¬Ã»ÓÐsubnet£¬ÍøÂç¸ôÀëÒ²×öµÃ²»ÊÇÌ«ºÃ£¬ÐèÒªÒÀÀµÓÚÓû§ÊÖ¶¯ÅäÖÃflannel»òÕßovsµÈµÈ
3. Magnum¼ò½é

ËùÒÔÉçÇø¾ÍÍÆ³öÁËMagnumÕâ¸öÏîÄ¿¡£ÉÏͼÊÇMagnumµÄÒ»¸ö¼Ü¹¹Í¼¡£
3.1 MagnumÖ÷Òª¸ÅÄî
ËüµÄ½á¹¹ÆäʵºÜ¼òµ¥£¬Ê×ÏÈÎÒÃÇ¿´ÏÂmagnumµÄÖ÷Òª¸ÅÄÔÚÕâ¸öͼµÄÓұߣ¬Ö÷ÒªÓÐÕâô¼¸¸ö£ºBay¡¢Baymodel¡¢Node¡¢Pod¡¢Service¡¢RC¡¢Container¡£
Bay£ºbayÔÚmagnumÖ÷Òª±íʾһ¸ö¼¯Èº£¬ÏÖÔÚͨ¹ýmagnum¿ÉÒÔ´´½¨k8sºÍswarmµÄbay£¬Ò²¾ÍÊÇk8sºÍswarmµÄ¼¯Èº¡£
Baymodel£ºbaymodelÊÇflavorµÄÒ»¸öÀ©Õ¹£¬flavorÖ÷ÒªÊǶ¨ÒåÐéÄâ»ú»òÕßÎïÀí»úµÄ¹æ¸ñ£¬baymodelÖ÷ÒªÊǶ¨ÒåÒ»¸öDocker¼¯ÈºµÄһЩ¹æ¸ñ£¬ÀýÈçÕâ¸ö¼¯ÈºµÄ¹ÜÀí½ÚµãµÄflavor£¬¼ÆËã½ÚµãµÄflavor£¬¼¯ÈºÊ¹ÓõÄimageµÈµÈ£¬¶¼¿ÉÒÔͨ¹ýbaymodelÈ¥¶¨Òå¡£
NodeÖ÷ÒªÊÇÖ¸BayÖеÄij¸ö½Úµã¡£
Container¾ÍÊǾßÌåµÄij¸öDockerÈÝÆ÷¡£
Pod, Replication ControllerºÍServiceµÄÒâ˼ºÍÔÚk8sµÄÒâ˼ÊÇÒ»ÑùµÄ¡£ÔÚÕâ¼òµ¥½éÉÜÏÂÕâÈý¸ö¸ÅÄî¡£
PodÊÇKubernetes×î»ù±¾µÄ²¿Êðµ÷¶Èµ¥Ôª£¬¿ÉÒÔ°üº¬¶à¸öcontainer£¬Âß¼ÉϱíʾijÖÖÓ¦ÓõÄÒ»¸öʵÀý¡£±ÈÈçÒ»¸öwebÕ¾µãÓ¦ÓÃÓÉǰ¶Ë¡¢ºó¶Ë¼°Êý¾Ý¿â¹¹½¨¶ø³É£¬ÕâÈý¸ö×é¼þ½«ÔËÐÐÔÚ¸÷×ÔµÄÈÝÆ÷ÖУ¬ÄÇôÎÒÃÇ¿ÉÒÔ´´½¨°üº¬Èýpod£¬Ã¿¸öpodÔËÐÐÒ»¸ö·þÎñ¡£»òÕßÒ²¿ÉÒÔ½«Èý¸ö·þÎñ´´½¨ÔÚÒ»¸öpod£¬Õâ¸öÈ¡¾öÓÚÓû§µÄÓ¦ÓÃÐèÇó¡£Ò»¸öpod»á°üº¬n
1¸öcontainer£¬¶à³öÀ´µÄÄÇÒ»¸öcontainerÊÇnet container£¬×¨ÃÅ×ö·Óɵġ£
Service£º¿ÉÒÔÀí½âΪÊÇpodµÄÒ»¸ö·ÓÉ£¬ÒòΪpodÔÚÔËÐÐÖпÉÄܱ»É¾³ý»òÕßip·¢Éú±ä»¯£¬service¿ÉÒÔ±£Ö¤podµÄ¶¯Ì¬±ä»¯¶Ô·ÃÎʶËÊÇ͸Ã÷µÄ¡£
Replication Controller£ºÊÇpodµÄ¸´ÖƳéÏó£¬ÓÃÓÚ½â¾öpodµÄÀ©ÈÝËõÈÝÎÊÌ⡣ͨ³££¬·Ö²¼Ê½Ó¦ÓÃΪÁËÐÔÄÜ»ò¸ß¿ÉÓÃÐԵĿ¼ÂÇ£¬ÐèÒª¸´Öƶà·Ý×ÊÔ´£¬²¢ÇÒ¸ù¾Ý¸ºÔØÇé¿ö¶¯Ì¬ÉìËõ¡£Í¨¹ýreplicationController£¬ÎÒÃÇ¿ÉÒÔÖ¸¶¨Ò»¸öÓ¦ÓÃÐèÒª¼¸·Ý¸´ÖÆ£¬Kubernetes½«ÎªÃ¿·Ý¸´ÖÆ´´½¨Ò»¸öpod£¬²¢ÇÒ±£Ö¤Êµ¼ÊÔËÐÐpodÊýÁ¿×ÜÊÇÓëÔ¤Ïȶ¨ÒåµÄÊýÁ¿ÊÇÒ»ÖµÄ(ÀýÈ磬µ±Ç°Ä³¸öpodå´»úʱ£¬×Ô¶¯´´½¨ÐµÄpodÀ´Ìæ»»)¡£
3.2 MagnumÖ÷Òª·þÎñ
½ÓÏÂÀ´¿´ÏÂmagnumÖеÄÖ÷Òª·þÎñ£¬ÏÖÔÚÖ÷ÒªÓÐÁ½¸ö·þÎñ£¬Ò»¸öÊÇmagnum-api£¬Ò»¸öÊÇmagnum-conductor¡£¾ßÌåÈçÉÏͼËùʾ¡£
Magnum-apiºÍÆäËüµÄÏîÄ¿µÄapiµÄ¹¦ÄÜÊÇÒ»ÑùµÄ£¬Ö÷ÒªÊÇ´¦ÀíclientµÄÇëÇ󣬽«ÇëÇóͨ¹ýÏûÏ¢¶ÓÁз¢Ë͵½backend£¬ÔÚmagnum£¬ºǫ́´¦ÀíÖ÷ÒªÊÇͨ¹ýmagnum-conductorÀ´×öµÄ¡£
magnumÏÖÔÚÖ§³ÖµÄbackendÓÐk8s£¬Swarm£¬DockerµÈµÈ£¬Magnum
conductorµÄÖ÷Òª×÷ÓÃÊǽ«clientµÄÇëÇóת·¢µ½¶ÔÓõÄbackend£¬backendÔÚMagnumµÄ¹Ù·½ÊõÓï½ÐCoE(Container
Orchestration Engine)
3.3 Magnum¹¤×÷Á÷³Ì
µÚÒ»²½ÐèÒª´´½¨baymodel£¬¾ÍÊÇΪÐèÒªÌṩÈÝÆ÷·þÎñµÄbay´´½¨Ò»Ð©¼¯ÈºµÄ¶¨Ò广¸ñ¡£
µÚ¶þ²½¾Í¿ÉÒÔÔÚµÚÒ»²½´´½¨µÄbaymodel»ù´¡ÉÏ´´½¨bayÁË£¬Óû§¿ÉÒÔÑ¡ÔñʹÓÃKubernetes»òÕßSwarm£¬Î´À´»¹»áÓÐMesos¡£
µÚÈý²½£¬µ±bay´´½¨Íê³Éºó£¬Óû§¾Í¿ÉÒÔͨ¹ýµ÷ÓÃMagnum APIºÍºǫ́µÄk8s»òÕßswarm½»»¥À´´´½¨containerÁË
3.4 Magnum Notes
ÁíÍâÏëÇ¿µ÷һϣ¬MagnumÏÖÔÚûÓе÷¶ÈÄ£¿é£¬ÒòΪÏÖÔÚÖ§³ÖµÄCoEÓÐSwarmºÍKubernetes£¬ËùÒÔ¶ÔContainerµÄµ÷¶È£¬ÍêÈ«ÊÇͨ¹ýKubernetesºÍSwarm±¾ÉíµÄµ÷¶ÈÆ÷À´¹¤×÷µÄ£¬MagnumÖ»ÊǸºÔð½«Óû§´´½¨containerµÄÇëÇó½øÐÐת·¢£¬×ª·¢µ½¶ÔÓ¦µÄCoE£¬×îÖÕµÄÇëÇóÓɾßÌåµÄbackendÈ¥µ÷¶È¡£
MagnumÏÖÔÚÒ²Ö§³Ö¶ÔDocker½øÐйÜÀí£¬µ«ÊÇÒòΪûÓе÷¶È£¬Ä¿Ç°½¨Òé¶ÔDockerµÄ¹ÜÀíͨ¹ýSwarm
BayÀ´½øÐйÜÀí£¬ÒòΪSwarmÊÇDocker¹Ù·½µÄDocker¼¯Èº¹ÜÀí¹¤¾ß¡£
MagnumÏÖÔÚ»¹Ö§³ÖMulti tenant£¬Ã¿¸ö×â»§¿ÉÒÔÓÐ×Ô¼ºµÄbay£¬baymodel£¬pod£¬service£¬rcµÈµÈ£¬ÕâÑù¿ÉÒÔ±£Ö¤²»Í¬×â»§µÄ×ÊÔ´¸ôÀ롣ÿ¸ö×â»§Ö»ÄÜ¿´µ½ºÍ²Ù×÷ÊôÓÚ×Ô¼ºµÄ×ÊÔ´¡£
MagnumÏÖÔÚ±¾Éí²»¹ÜÀíDockerµÄÍøÂ磬¶¼ÊÇͨ¹ýÉϲãµÄCoE×Ô¼ºÈ¥¹ÜÀíµÄ£¬ÀýÈçKubernetesµÄbayÏÖÔÚͨ¹ýflannelÈ¥¹ÜÀí£¬ÆäʵÓõϹÊÇtunnel¼¼Êõ¡£
3.5 Magnum Bay

ÉÏͼÊÇMagnumĿǰ֧³ÖµÄÁ½¸öbay£¬KubernetesºÍSwarm£¬Bay´´½¨Íê³Éºó£¬¿ÉÒÔÖ±½Óͨ¹ýMagnum
APIºÍKubernetes»òÕßSwarm½»»¥´´½¨container¡£MagnumÏÖÔÚ×Ô¼ºÍ¨¹ýswaggerʵÏÖÁËÒ»Ì×kubernetes
api£¬magnumͨ¹ýkubernetestµÄrest apiÀ´ºÍºǫ́µÄkubernetes½»»¥¡£
3.6 Magnum Roadmap
3.6.1ÍøÂç
µÚÒ»¸öÊÇÍøÂç£¬ÍøÂçÓÀÔ¶ÊÇÈÈÃÅ»°Ì⣬²»¹ÜÊÇÔÚÄĴηå»á£¬ÏÖÔÚMagnumÒ²Åöµ½ÁËͬÑùµÄÎÊÌ⣺ContainerµÄÍøÂçÔõÑù¹ÜÀí£¬ÏÖÔÚÖ÷ÒªÊÇͨ¹ýKubernetesÒÀÀµÓÚoverlay
networkµÄflannelÀ´¹ÜÀí£¬µ«ÊÇÒòΪflannelµÄÐÔÄܺÍÀ©Õ¹ÐÔµÄÎÊÌ⣬MagnumÉçÇøÕýÔÚÌÖÂÛ¶ÔÍøÂç·½Ãæ½øÐиĽø£¬ÀýÈçºÍlibnetwork»òÕßneutron¼¯³É¡£Õâ¸öbpÔÚÕâhttps://blueprints.launchpad.net/magnum/
spec/native-Docker-network£¬·Ç³£»¶Ó¶ÔDockerÍøÂç¸ÐÐËȤµÄÈ˲ÎÓëÌÖÂÛ¼°ÊµÏÖ¡£MagnumÏÖÔڷdz£ÐèÒª¶ÔÍøÂç±È½ÏÊìµÄÈËÀ´¹²Í¬Íƶ¯Õâ¸öbp¡£ÎÒÏÖÔÚÔÚµ÷²élibnetwork£¬¿´Äܲ»ÄÜÔÚMagnumȥʹÓá£
3.6.2 MesosÖ§³Ö
ÁíÍâÒ»¸öÊÇÒòΪÏÖÔÚÄܹ»ÌṩÈÝÆ÷·þÎñµÄ¹¤¾ßºÜ¶à£¬MesosÒ²ÊDZȽÏÁ÷ÐеÄÒ»¸ö£¬ËùÒÔMagnumÕýÔڼƻ®°ÑMesos¼¯³É½øÀ´£¬ÌṩÈÝÆ÷·þÎñ¡£Õâ¸öbpÔÚÕâhttps://blueprints.launchpad.net/magnum/
spec/mesos-bay-type µÚÒ»°æµÄMesosÖ§³Ö£¬»áÊÇMesos MarathonÕâÑùÒ»¸ö×éºÏ¡£ÒòΪÈç¹û²»ÒÀÀµÒ»¸öframeworkµÄ»°£¬mesosºÜÄÑȥʹÓá£
3.6.3 Magnum½çÃæ
»¹ÓоÍÊÇMagnum´òËãÔÚL°æ×öÒ»¸öGUI½çÃæ£¬ÈÃÓû§¸ü¼òµ¥µÄʹÓÃMagnum¡£ÏÖÔÚÕâ¸öbpÕýÔÚreview
https://review.OpenStack.org/#/c/188958/
3.7 ʹÓÃMagnum
3.7.1 ¼ì²éËùÓÐBaymodel

Ê×ÏÈÊÇͨ¹ýÃüÁMagnum baymodel-list¡±²é¿´MagnumÖÐÏÖÔÚµÄËùÓеÄbaymodel£¬¿ÉÒÔ¿´µ½ÏÖÔÚÖ÷ÒªÓÐÁ½¸öOOBµÄbaymodel£ºkubernetesºÍswarm
3.7.2 ²é¿´BaymodelÏêϸÐÅÏ¢

ͨ¹ý¡°baymodel-show¡±²é¿´Kubernetes BaymodelµÄÏêϸÐÅÏ¢
3.7.3 ´´½¨Kubernetes Bay

ͨ¹ý¡°bay-create¡±´´½¨ÁËÒ»¸öÓÐÁ½¸öminions½ÚµãµÄkubernetes
bay
3.7.4 ¼ì²éKubernetes BayÍØÆË½á¹¹

ÒòΪKubernetesµÄbayʵ¼ÊÉÏÊÇheatµÄÒ»¸östack£¬ËùÒÔ´´½¨ºó£¬¿ÉÒÔͨ¹ýhorizon²é¿´stackÍØÆË½á¹¹µÄÏÔʾ£¬´ÓÕâÀï±ß¿ÉÒÔ¿´µ½heat´´½¨kubernetes
bayµÄËùÓжÔÏó¡£
3.7.5 ¼ì²éMagnum Bay

ÎÒÃÇ¿ÉÒÔͨ¹ýbay-list²é¿´bayµÄ״̬£¬´ÓÕâ¸öͼ¿ÉÒÔ¿´µ½Kubernets
BayÒѾ´´½¨Íê³ÉÁË
3.7.6´´½¨Kubernetes Pod

ÔÚKubernetes bayµÄ»ù´¡ÉÏͨ¹ý¡°pod-create¡±´´½¨Ò»¸önginx
pod£¬ÔÚÕâÖ÷ÒªÊÇͨ¹ýMagnumµÄÃüÁîÐд´½¨Õâ¸öpod¡£
3.7.7¼ì²éKubernetes Pod

´´½¨Íê³Éºó£¬¿ÉÒÔͨ¹ýMagnum ¡°pod-list¡±£¬¡°pod-show¡±À´²é¿´pod״̬
3.7.8 SwarmÏà¹Ø
ÎÒÃÇ¿ÉÒÔÓÃͬÑùµÄ·½·¨À´´´½¨swarmµÄbay£¬Í¨¹ýswarmµÄbayÀ´Ìṩcontainer
service¡£
DockOne¼¼Êõ·ÖÏí£¨¾Å£©£º³ÖÐø¼¯³ÉºÍ¡°ÔÆ¡±
½ñÌìµÄ»°ÌâÊÇ£¬³ÖÐø¼¯³ÉºÍ¡°ÔÆ¡±£¬Ö÷Òª²¿·ÖÊÇÎÒ֮ǰÁ½ÄêµÄ¹¤×÷ºÍÎÒµÄһЩ¸öÈË˼¿¼¡£
Õâ¸ö»°ÌâÎÒ֮ǰÔÚÖйúµÄruby´ó»áÉϽ²¹ý£¬slidesÔÚÕâÀï £¬¹©²Î¿¼£¬²»¹ýµ«ÊÇÏÖÔÚ½²µÄÄÚÈݸù¾Ý×î½ü¶à°ëÄêµÄ¹¤×÷½øÕ¹ÓÖÓÐËù±ä»¯¡£
ÏÈ×ÔÎÒ½éÉÜһϣ¬ÎÒÊÇÈí¼þ¹¤³Ìʦ£¬´ÓÒµ13Ä꣬Ö÷Òª´ÓʵÄÁìÓò¶¼ÊÇÓ¦ÓÃϵͳ¿ª·¢£¬Éæ¼°OA¡¢µçÐÅÍø¹Ü/ÔöÖµÒµÎñ¡¢»¥ÁªÍøµÈÁìÓò¡£
2009Äêµ×¼ÓÈë°¢À2015Äê4ÔÂÀëÖ°£¬Ö÷Òª×öµÄÊÂÇ飺¹ã¸æÓ¦ÓÃϵͳ -> ÔËά×Ô¶¯»¯Æ½Ì¨ ->
³ÖÐø¼¯³É·þÎñƽ̨¡£
×îºóµÄ³ÖÐø¼¯³É·þÎñƽ̨ÊÇÀ´×ÔÓÚʵ¼ùÐèÒª£¬ÎÒ×îÏÈÔÚ×ö¹ã¸æÒµÎñϵͳµÄÑз¢¹¤×÷£¬¹ã¸æÏµÍ³ËäÈ»¸´ÔÓ£¬µ«ÊÇÆäÖеÄÓ¦ÓÃϵͳ´ÓÈí¼þ¼Ü¹¹ÉÏ¿´²¢Ã»ÓÐÊ²Ã´ÌØ±ðµÄµØ·½£¬ËùÒÔÏ£Íû½«¾«Á¦Í¶ÔÚ¿ÉÒԸĽøÍŶӹ¤×÷ˮƽµÄµØ·½¡£
Ò»¿ªÊ¼ÊÇÒ»¸öÔËά×Ô¶¯»¯Æ½Ì¨£¬ÓÉÓÚÍŶÓÈËÊÖÓÐÏÞ£¬ÎÒ»ù±¾ÊÇÒ»¸öÈË×öµÄ£¬·¢ÏÖ¿ª·¢Ð§Âʺܺã¬Èí¼þÖÊÁ¿Ò²²»´í£¬ËùÒÔÔÚ¹¤×÷ÖÐ×ܽáÁËһЩÖÊÁ¿¸Ä½øµÄʵ¼ù£¬ÔÚÍŶÓÖÐÍÆ¹ã£¬ÕâÊÇÎÒ´ÓÑз¢½øÈëQAµÄÆðµã¡£
¾¹ýÒ»¶Îʱ¼äÃþË÷£¬ÎÒÃÇ·¢ÏÖ²âÊÔ×Ô¶¯»¯¸ã²»ÆðÀ´µÄÔÒòÖ®Ò»Êdzɱ¾Ì«¸ß¡£
ÎÒ֮ǰϰ¹ßÓÃruby»òÕßrails£¬ËùÓеIJâÊÔ¶¼¿ÉÒÔµ¥»úÍê³É£¬ÓÃcucumberÕâÑùµÄ¹¤¾ß¿ÉÒÔ×öBDD£¬ÓÃvagrant¿ÉÒÔ±ÜÃâ»·¾³ÎÛȾ£¬ËùÒÔ×Ô¶¯»¯Ã»ÎÊÌâ¡£¶øjava¾ÍûÓÐÕâЩÌõ¼þÁË£¬Êý¾Ý¿âÕÆÎÕÔÚDBAÊÖÀ²âÊÔµÄlinuxÊÇ´ó¼Ò¹«Óõģ¬ºÜÈÝÒ×ÒýÆð³åÍ»¡£
ÓÚÊÇÎÒºÍÖ÷¹ÜÉÌÁ¿£¬¾ö¶¨¸ãÒ»¸öƽ̨£¬Í¨¹ýËü½µµÍÑз¢³É±¾£¬ÔÚ±¾ÍŶӿªÕ¹Ò»¶Îʱ¼äÒÔºó£¬ÓÖ´ø×Åϵͳתµ½¼¼ÊõÖÊÁ¿²¿£¬°ÑCISE×ö´ó£¬²âÊÔ²¿ÃųÉÁ¢ÁËרÃŵÄÍŶӣ¬ÀëְǰÒѾ¿ªÊ¼ÔÚ¸÷buºÍÑз¢ÍŶӹ㷺ÔËÓÃ
¶ÔCIµÄÀí½â
³ÖÐø¼¯³Éƽ̨¾¿¾¹½â¾öʲôÎÊÌâÄØ£¿
¼òµ¥Ëµ£¬¾ÍÊÇÁ½¸ö×Ô¶¯»¯£º
¹¹½¨×Ô¶¯»¯
²âÊÔ×Ô¶¯»¯
²âÊÔ×Ô¶¯»¯ºÃÀí½â£¬¹¹½¨×Ô¶¯»¯±ÈÏëÏóÖÐÒª¸´ÔÓһЩ£¬ÎÒÒ»°ãÓÃÏÂÃæÕâÕÅͼÀ´½âÊÍ¡ª¡ª

ÎÒÃÇÊÖÀïµÄÈí¼þ£¬×ÜÊÇ¿ÉÒÔ½øÐв»¶ÏµØ·Ö½â£¬´Óϵͳµ½Ä£¿é£¬×îºóµ½ÀàºÍ·½·¨¡£ÓÉÓÚÕûÌåºÍ²¿·ÖµÄ¹¦Äܲ»ÄÜÍêÈ«»®µÈºÅ£¬ËùÒÔ²âÊÔÐèÒªÔÚ¸÷¸ö²ãÃæÉϽøÐУ¬µ«ÊÇÕâЩ²âÊԵijɱ¾ºÍÊÕÒæÓÐËù²»Í¬¡£

Èçͼ£¬ÎÒ֮ǰ¸Ðµ½java¿ª·¢µÄÍ´¿à£¬¾ÍÔ´ÓÚ¹¤³ÌʦÊÖÖÐûÓиüÉϲãµÄ¡°ÎäÆ÷¡±£¬ËùÒÔÖ»ÄÜÔÚµ¥²âÉÏÓÃÁ¦¡£
ËùÒÔ£¬Èç¹ûÎÒÃÇÄÜ×öºÃ¸ü´ó³ß¶ÈϵͳµÄ×Ô¶¯»¯µÄ¹¹½¨£¬ÄÇôÑз¢ÈËÔ±Ò²¾ÍÓлú»áʹÓ᰸߲㡱µÄ×Ô¶¯»¯²âÊÔ£¬¶ø±ÜÃâÔÚϸ½ÚÉÏд̫¶àµÄÓÃÀý¡£
µ«Õâ¸ö²¢²»ÈÝÒ×£¬ÎÒÃǵÄŬÁ¦Ò²Ö»ÊÇÆðµ½ÁËÒ»²¿·Ö×÷Óá£
ƽ̨½éÉÜ
ÏÂÃæËµÒ»ÏÂÕâ¸öƽ̨±¾Éí£¬ÓÉÓÚÉæ¼°µ½°¢Àï°Í°ÍÄÚ²¿ÏµÍ³£¬ÓÐЩÊDz»ÄÜ˵µÄ£¬²»¹ý»¹ºÃ£¬ºËÐIJ¿·Ö²¢Ã»É¶¼¼Êõº¬Á¿
:-)
ºÜ¶àÈ˶ÔCIµÄÁ˽âÊÇ»ùÓÚjenkins£¬µ±È»Ò²ÓÐЩÈ˽Ӵ¥¹ýtravis CI»òÕßcircle CI£¬ÎÒÃǵÄϵͳ¸üÏñºóÕߣ¬µ±È»¹¦ÄÜÉÏÒª¸üǿЩ¡£
ƽ̨µÄÆðµãÊǹ«Ë¾µÄgitlabºÍsvn·þÎñ£¬Í¨¹ý×Ô¶¯¼à¿Ø»òÕßhook´¥·¢£¬Ã¿Ò»´Î´úÂëÌá½»¶¼»á´¥·¢Ò»¸ö×Ô¶¯»¯¹ý³Ì£¬ÔÚÕâ¸ö¹ý³ÌÖУ¬Æ½Ì¨¸ºÔð·ÖÅäÐéÄâ»ú¡¢Êý¾Ý¿âµÈ±ØÒª×ÊÔ´£¬È»ºó½«´úÂë±àÒë´ò°ü¹¹½¨ÔËÐС£
±àÒë´ò°ü¹¹½¨ÔËÐп´ÆðÀ´ÊÇÒ»¸ö×Ô¶¯»¯¹ý³Ì£¬µ«Ã¿¸ö»·½Úʵ¼ÊÉ϶¼¿ÉÒÔÓÐÑéÖ¤¡ª¡ªÕâÆäʵ¾ÍÊǸ÷ÖÖ²âÊÔ¡£
±àÒëǰ¿ÉÒÔ×ö´úÂëɨÃ裨ÓеÄÓïÑÔÊDZàÒëºó×ö´úÂëɨÃ裩
±àÒëÖ®ºó¿ÉÒÔ×öµ¥²â
´ò°üÔËÐкó¿ÉÒÔ×ö¼¯³É²âÊÔ
......
ºÍtravis²»Í¬µÄÊÇ£¬Èç¹ûÄ¿±êÉæ¼°¶à¸öÓ¦Óã¬Ö®¼ä´æÔÚ·þÎñµ÷Óã¬ÄÇôÎÒÃÇ»¹»á×Ô¶¯µÄ½«Ïà¹ØÓ¦ÓÃÒ²²¿ÊðºÃ£¬È»ºóÔÚÒ»¸ö»úÆ÷ȺÀïÃæ×ö¸ü½Ó½üÕæÊµ³¡¾°µÄ¹¦ÄܲâÊÔ¡£
×ö¹ýÀàËÆ¹¤×÷µÄͬѧһ¶¨ÖªµÀÕâÒ»µãµÄ´ú¼ÛÓжà´ó£¬µ«ÕâÑù»áÓкܴóºÃ´¦¡ª¡ªÎÒÃÇ¿ÉÒÔÔÚÒ»´Îcommitºó×Ô¶¯½øÐÐËùÓвãÃæµÄ²âÊÔ¡ª¡ª´Óµ¥²âµ½ÏµÍ³½»¸¶²âÊÔ¡£
µ±È»ÕâÊÇÀíÂÛÉϵģ¬Êµ¼ÊÖпÉÒÔ¸ù¾ÝÑз¢ÍŶÓÐèÒª½øÐÐÑ¡Ôñ¡£
×ܽáһϣ¬ÎÒÃÇÈÏΪ£¬CIƽ̨Ӧ¸ÃÄܽøÐÐËùÓÐÁ£¶ÈµÄ²âÊÔ£¬×îСÕë¶Ôº¯Êý£¬×î´ó¿ÉÒÔÕë¶Ô·Ö²¼Ê½ÏµÍ³¡£×÷ΪǰÌᣬCIƽ̨ÐèÒªÖ§³ÖÕû¸öϵͳµÄ×Ô¶¯»¯¹¹½¨¡£
Õâ¸ö´ó¸ÅÊǺÍtravis CIÖ®¼ä×î´óµÄ²»Í¬£¬ÏÂÃæÔÙÁм¸¸ö²»ÊǺÜÖØÒªµÄÇø±ð¡£
ʹÓÃÔÆÆ½Ì¨½â¾öÐé»úÎÊÌ⣬ÉíÔÚ°¢Àï°Í°Í£¬ËùÒÔÎÒÃÇʹÓð¢ÀïÔÆµÄECS£¬ÐèÒª×ÊÔ´ÊÇËæÊ±ÉêÇ룬ÓùýÒÔºóÁ¢¼´ÊÍ·ÅÖØÖá£
ÕâÑù¿ÉÒÔ½â¾ö»·¾³ÎÛȾµÄÎÊÌ⣨¼´Ê¹ÊÇjavaÓ¦Óã¬ÓÐЩÍŶÓÒ²»áÁôϱ¾µØÎļþ²Ù×÷£¬ÕâЩ¶«Î÷»áµ¼Ö²âÊÔ²»¿ÉÖØ¸´£©¡£
Êý¾Ý¿â×Ô¶¯·ÖÅ䣬ÎÒÃǹ¹½¨ÁËmysql¼¯Èº£¬²»¹ý²»ÊÇÒ»°ãÒâÒåÉϵÄÄÇÖÖÐ×÷¼¯Èº£¬¶øÊÇÒ»¸öÊý¾Ý¿â³Ø£¬ÈÃÊý¾Ý¿âºÍÐé»úÒ»ÑùËæÓÃËæÈ¡£¬ÓúóÖØÖá£
ÕâÑù×öÊÇΪÁËÈÃjava³ÌÐòÔ±Ò²¿ÉÒÔÏñrailsµÄdb migrationÒ»Ñù¿ÉÒÔÓõ½¸É¾»µÄÊý¾Ý¿â¡£
¶ÔÕâ¸öƽ̨µÄ½éÉܾÍÕâЩ£¬ÏÂÃæÌÖÂÛһЩ¾Ñé½Ìѵ¡£
¾Ñé½Ìѵ
UIÓ¦¸Ã¾¡Á¿Çá
Õâ¸ö»°ÌâÒªºÍjenkins/hudson×ö¶Ô±È£¬ÕâÁ½¸öϵͳÎÒÆäʵ²»ÊǺÜÊ죬²»¹ýÒ²ÖªµÀËüÃǶ¼ÊǺÜÇ¿´óµÄ×Ô¶¯»¯ÏµÍ³¡£µ«ÊÇ£¬jenkins/hudsonµÄ×î´óÎÊÌâÊÇ£¬ËüÃǵÄUI×öµÄÌ«¶àÁË£¬Óû§¿ÉÒÔÔÚUIÉÏ×öºÜ¶àÊ¡ª¡ªºÜ¶àºÍCIû¹ØÏµµÄÊÂÇé¡£
¾Ù¸öÀý×Ó£º
jenkinsµÄÈÎÎñÊÇ¿ÉÒÔÅŶӵ÷¶ÈµÄ£¬¶ø¶ÔÓÚCIÀ´Ëµ£¬ÅŶÓÊÇʲôÒâË¼ÄØ£¿Ñз¢¹¤³ÌÊ¦Ñø³É³ÖÐøÐ¡²½Ìá½»´úÂëÕâ¸öºÃϰ¹ßÒÔºó£¬ÓÖÓ²ÉúÉúÓÉÓÚ×ÊÔ´²»×ã¶ø±»ÆÈµÈ´ý£¬×îÖÕ¿ÉÄÜ»á·ÅÆúÕâ¸öºÃϰ¹ß£¬ÊµÔÚÊDz»»®Ëã¡£
ÎÒÃǵİ취ÊÇ¡ª¡ª³¨¿ª¹©Ó¦£¬Ö»ÒªÓдúÂëÌá½»¾Í·ÖÅä»úÆ÷£¬µ±È»ÓÐÈË»áÖÊÒÉ£¬ÒòΪÕâ»áµ¼ÖÂÐèÒªÒ»¸öºÜ´óµÄ×ÊÔ´ºó±¸³Ø£¬²»¹ýÕâ¿ÉÄÜÕýÊÇ¡°ÔÆ¡±Ê±´úµÄ²»Í¬Ë¼¿¼·½Ê½¡ª¡ªÔÚ¡°ÔÆ¡±µÄʱ´ú£¬×ÊÔ´µÄʹÓÃë´ÌÓ¦¸Ãͨ¹ý´ó¹æÄ£ºó±¸³ØÀ´Ä¨Æ½¡£
µ±È»£¬ÀÄÓÃ×ÊÔ´»¹ÊÇÒª±ÜÃâµÄ£¬Ö»ÊÇÎÒÃÇÈÏΪÐèÒª¡°ºóÖóͷ£¡±£¬±ÈÈçͨ¹ýÉ󼯣¬ÕÒ³ö×ÊÔ´ÏûºÄ´ó»§£¬´òËûµÄ°å×Ó
:-P
µ±ÎÒÃǰÑËùÓеĶîÍ⹦Äܶ¼°þµôÒԺ󣬷¢ÏÖUIÆäʵ¾ÍÒ»¸ö×÷Ó᪡ªÕ¹ÏÖ£¬ÒòΪCIÐèÒªµÄÊÇÍêÈ«µÄ×Ô¶¯»¯£¬È˹¤±¾À´¾Í²»ÐèÒª½éÈ룬ֻҪ×îºó±»notifyһϣ¬»òÕßż¶û¹ýÀ´ÔÚwebÉÏ¿´¿´±¨±íÇ÷ÊÆÊ²Ã´µÄ¾Í¹»ÁË¡£
CIÊÇ·þÎñ¼Ó×î¼Ñʵ¼ù
ÎÒÃÇÀí½âµÄµÚ¶þ¸ö¾Ñé¾ÍÊÇ£¬¸ãCI£¬ÊÇ·þÎñ¼Ó×î¼Ñʵ¼ù£¬ËùÒÔÒ»¶¨ÒªÖ¸µ¼Ñз¢ÍŶӣ¬¶ø²»ÄÜÍêÈ«ÈÎÓÉÑз¢ÍŶÓÌáÒªÇ󣬺ܶàÍŶӵŤ³ÌʦÁ¼Ý¬²»Æë£¬¶Ô¸÷ÖÖ±à³Ìapi±È½ÏÊìϤ£¬µ«ÊÇ¿ÉÄÜȱ·¦×öʵĺÃϰ¹ß£¬ÕâʱÐèÒªÖ¸µ¼ËûÃÇ£¬µ±È»Ç°ÌáÊÇÄãÒ²Òª¶Ô¿ª·¢ºÜÁ˽â²ÅÐУ¬·ñÔò»á±»±ÉÊÓµÄ
:-P
¶ÔCIÀ´Ëµ£¬×î´óµÄ³£¼ûÂé·³ÊDz»Ð´²âÊÔ£¬Õâ¸öÒ»°ãÊÇͨ¹ý¹ÜÀí½ÌÓý£¬±È½Ï¼òµ¥¡£
ÁíÍâÒ»¸öÒþ²ØµÄ±È½ÏÉ¡ª¿ª·¢ÈËÔ±¶ÔϵͳµÄÔËÐв¢²»Á˽⣬±ÈÈ翪·¢µÄϵͳÔËÐÐÔÚlinuxÉÏ£¬µ«ÊÇ»ù±¾µÄÃüÁî¶¼²»»á¡£
Õâ¸öÎÊÌâÎÒÃÇÓöµ½ÁËÌôÕ½£¬ÓÐÈËÈÏΪÕâÉæ¼°µ½·Ö¹¤£¬Ñз¢¹¤³Ìʦ²»Ó¦¸ÃÁ˽âÏßÉÏ£¬µ«ÊÇÕâ¸ö¹ÛµãÊÇÓÐÎÊÌâµÄ¡£
ÒòΪºÜ¶àbugºÍ»·¾³Ïà¹Ø£¬Èç¹û¿ª·¢ÈËÔ±²»ÄÜÔÚ¡±Õæ¡°µÄ»·¾³Öг¢ÊÔ£¬Ò»µ©ÏµÍ³±¨´í£¬ºÜÄѲ»·¢Éú³¶Æ¤¡ª¡ªÕâ¸ö³¶Æ¤¿ÉÄÜ·¢ÉúÔÚ¿ª·¢ºÍ²âÊÔÖ®¼ä£¬¸ü¿ÉŵÄÊÇ·¢ÉúÔÚÏßÉÏ£¬¹â¶¨Î»¾ÍÐèÒªN¶àÈ˲ÎÓ룬³É±¾¼«´ó¡£
²å¼þ
×îºóÊDzå¼þµÄÎÊÌ⣬Õâ¸ö˵À´¼òµ¥¡ª¡ª²å¼þÄܽâ¾öһЩÎÊÌ⣬²»¹ý²å¼þÉè¼ÆÖ®³õʵ¼ÊÉϾÍÏÞÖÆÁËÆäʹÓã¬ËùÒÔÎÒ×ܽáµÄ½Ìѵ¾ÍÊÇ£ºÏȱð¼±×Å×ö²å¼þ£¬ÏëºÃÁËÉè¼ÆÔÙ¶¯ÊÖ¡£
DockOne¼¼Êõ·ÖÏí£¨Ê®£©£º¿çÖ÷»úµÄ --link
Õâ´Î¼¼Êõ·ÖÏíµÄÄÚÈÝÊÇ×öµ½¿çÖ÷»úµÄÈÝÆ÷¶¨Î»Í¨ÐÅ£¬È¡´úÁË--linkÎÞ·¨¿çÖ÷»úºÍ»¥Í¨µÄÕϰ¡£
ÔĶÁ±¾ÎÄ֮ǰ£¬ÇëÏÈÔĶÁÎÒµÄÉÏһƪÎÄÕ£¬ÈÃÈÝÆ÷¿çÖ÷»ú»¥Ïà·ÃÎÊ£¬Í¨¹ý×ÔÖÆÂ·ÓÉÆ÷¹ã²¥Â·ÓÉÌõÄ¿»¥Ïàѧϰ¡£
À´ÈÃÒ»¸öLANÀïµÄDockerÖ÷»úÈ«²¿ÖªµÀ¶Ô·½ÍøÂçµÄÏÂÒ»ÌøÔõô×ߣ¬µ«Êǽâ¾öÁ˸ÕÐèÖ®ºó£¬ÓÖÒ»¸öºÜ´óµÄÎÊÌâ¸æËßÎÒ£¬DockerÔÚÖØÆôÈÝÆ÷»òÕß·þÎñÖ®ºó»á¸ü¸Ä×Ô¼ºµÄIPµØÖ·¡£
¾ÍÏñÅäÖÃ˼¿ÆÂ·ÓÉÆ÷µÄ ip local pool £¨²»ÊÇDHCP·þÎñ£©²»»áÊͷŵØÖ·³ØµÈµÈ£¬ËùÒÔÔÚ²»ÄܺÜÇáÒ׹̶¨IPµÄÇé¿öÏ£¬ÎÒÏëµ½ÁËÓòÃû½âÎö¡£µ«ÔõôÈÃDNS·þÎñÆ÷È¥ÖªµÀÈÝÆ÷µÄIPºÍÃû×ÖÄØ£¿ÎÒ²éÔÄÁËһЩ×ÊÁÏ·¢ÏÖDDNSÊǺÜÊʺÏÕâ¸öÐèÇó¡£µ«ÊÇDDNS
ÊÇÅäºÏDHCPµÄ£¬docker0È´²»ÊÇ£¬DockerÈÝÆ÷²»»á´ÓDHCP·þÎñÆ÷ÇëÇóµØÖ·¡£
ÔÚÓÐÒ»ÌìÎÞÒâÖп´µ½ÁËetcd GitHubÀïµÄÎĵµ£¬ÓÐһЩ¸ù¾Ýetcd¿ª·¢µÄ¿ªÔ´Èí¼þ£¬²»½öÓзþÎñ·¢ÏÖ£¬»¹ÓÐÁ½¸öDNS·þÎñ¡£±È½ÏÁËѧϰ³É±¾ºó£¬ÎÒÑ¡ÔñÁË
skydns+etcd£¬skydnsÊÇGolangдµÄ¡£
Ö»ÏëÒªetcdÀïÌá½»ÐÅÏ¢£¬skydns¾ÍÄܶÁÈ¡µ½£¬ÎÞÐèÖØÆô·þÎñ£¬Õâ·Ç³£µÄ·½±ã£¬¾ÍÊÇÔõôÈÃÈÝÆ÷È¥¸æËßetcd
ÓòÃûºÍIPµØÖ·ÄØ£¿DockerÈÝÆ÷µÄºÃ´¦¾ÍÊÇÆô¶¯½Å±¾¿ÉÒÔ×Ô¶¨Òå¡£
ÎÒÔÚÆô¶¯½Å±¾ÀïÌí¼ÓÒ»Ìõcurl»òÕßetcdctlÿ´ÎÆô¶¯ÈÝÆ÷µÄʱºòÈÝÆ÷¶ÁÈ¡×Ô¼ºµÄhostname»¹ÓÐIPµØÖ··¢Ë͸øetcd·þÎñÆ÷¾Í¿ÉÒÔ¡£
±ÈÈçÎÒÓÐ2¸öTomcatºÍ1¸öNginx¶¼ÊÇÈÝÆ÷»¯µÄ£º
tomcat1.hypers.local tomcat2.hypers.local |
ÔÚNginxµÄupstreamÀォserverµÄµØÖ·±ä³Étomcat1.hypers.local:8080
tomcat2.hypers.local:8080¡£ÕâÑùÎÒ¾ÍÍü¼ÇÁË ÈÝÆ÷µÄIP£¬Ò²Íü¼ÇÁËËüÔÚÄĄ̈Ö÷»úÉÏ¡£
Ö»ÒªDNSÄܽâÎö³öËûÃǵÄIP¾Í¿ÉÒÔÁË,ÒòΪ dockerÈÝÆ÷ÊÇÈ¡ËÞÖ÷µÄ nameserver ËùÒÔÕâ¸ödnsÈçºÎÖ¸¶¨µØÖ·ÎÞÐèµ£ÐÄ¡£Ö»ÒªËÞÖ÷ÊÇskydnsµÄµØÖ·¾ÍÐУ¬Æô¶¯etcd+skydnsÊǷdz£¼òµ¥µÄ£¬etcd
Æô¶¯ÃüÁîÎÒÏë´ó¼ÒÍæ¹ýk8sµÄ¶¼»á¡£
skydnsÊÇ0ÅäÖõģ¬¿ÉÒÔ¶ÁÈ¡etcdÀïµÄskydnsÐÅÏ¢¡£Ò²¿ÉÒÔ×Ô¼º skydns -ºóÃæ¼Ó²ÎÊýÆô¶¯£¬ÎÒÒѾ°Ñskydns
Docker»¯ÁË£¬¾Í²»Âé·³´ó¼Ò±àÒëÁË£¬ÔÚÁéÈ¸ÔÆÉϵÄgeorceµÄ²Ö¿âÀïÄÜÕÒµ½¡£
skydns´î½¨ÔÚetcd·þÎñÆ÷ÉÏ
curl -XPUT http://127.0.0.1:4001/v2/keys/skydns/config \ -d value='{"dns_addr":"0.0.0.0:53", "domain":".local.", "nameservers": ["223.5.5.5:53","114.114.114.114:53"]}'
docker pull index.alauda.cn/georce/skydns
docker run -itd --name=skydns --net=host index.alauda.cn/georce/skydns |
ÈÝÆ÷Æô¶¯½Å±¾
curl -XPUT http://$ETCD:4001/v2/keys/skydns/local/$DOMAIN/"`hostname -s`" \ -d value='{"host":"'`ip a | grep "scope global eth0" | awk '{print$2}' | grep -o '\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}'`'"}'
etcdctl -C $ETCD_HOST:4001 --no-sync set /skydns/local/$DOMAIN/"`hostname
-s `" '{"host":"'`ip a | grep
"scope global eth0" | grep -o '\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}'`'"}' |

ÕâÁ½ÌõÃüÁî´ú±íͬһ¸öÒâ˼£¬hostnameÊǸù¾ÝÆô¶¯ÈÝÆ÷ʱµÄÃüÁ±ÈÈç
docker run -itd --name=java --hostname=tomcat1 |
$DOMAIN ÊÇdocker run -itd -e DOMAIN=hypers
ÎÒĬÈ϶¼ÊÇÓõÄlocal×îºó¸ùÓò£¬Á¬ÆðÀ´¾ÍÊÇ tomcat1.hypers.local¡£¾ÍÏñÎÒÍøÂçÄÇÆªÎÄÕÂ×îºóÓÃwin7·ÃÎÊÎÞ¶Ë¿ÚÓ³Éä¹ýµÄNginx¡£nginx.hypers.local
Ò²ÊÇ¿ÉÒÔ·ÃÎʵģ¬Ö»ÒªÎÒwin7µÄdnsÊÇÖ¸Ïòskydns¡£

SkydnsÀï¿ÉÒÔÉèÖÃDNSת·¢¸ø223.5.5.5 »òÕß114.114.114.114 ËùÒÔÎÞÐèµ£ÐIJ»ÄÜÉÏÍø¡£
|