±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚ51cto£¬±¾ÎÄÖ÷Òª½éÉÜÁËÈçºÎÃæ¶Ô³£¼ûµÄ»ìºÏÔÆ·þÎñ£¬ÎÒÃǸÃÈçºÎÓûùÓÚÈÝÆ÷µÄģʽÀ´½øÐйÜÀí |
|
ÖÚËùÖÜÖª£¬Î¢·þÎñºÍÈÝÆ÷±¾Éí½áºÏ½ÏΪÃÜÇУ¬Ëæ×ÅÔÆ·þÎñµÄÆÕ¼°£¬ËüÃÇ´ÓÆóÒµ»ú·¿ÄÚ²¿µÄ·þÎñÆ÷ÉÏÖð½¥ÑÓÉìµ½Á˸÷ÖÖÔÆ·þÎñµÄ³¡¾°ÖС£
Òò´ËÃæ¶Ô³£¼ûµÄ»ìºÏÔÆ·þÎñ£¬ÎÒÃǸÃÈçºÎÓûùÓÚÈÝÆ÷µÄģʽÀ´½øÐйÜÀíÄØ£¿
ÔÚ¡°Î¢·þÎñ¼Ü¹¹Éè¼Æ¡±·ÖÂÛ̳ÉÏ£¬À´×Ô¶öÁËô¼ÆËãÁ¦½»¸¶²¿ÃŵÄ×ÊÉ³ÌʦÀ´øÀ´ÁËÖ÷ÌâΪ¡¶¶öÁËô»ùÓÚÈÝÆ÷µÄ»ìºÏÔÆÊµ¼ù¡·µÄ¾«²ÊÑݽ²¡£
±¾ÎĽ«°´ÕÕÈçÏÂËĸö²¿·ÖÕ¹¿ª·ÖÏí£º
1.¼ÆËãÁ¦½»¸¶
2.¼¼ÊõÑ¡ÐÍ
3.»ùÓÚ Kubernetes µÄ¡°ËãÁ¦ÍâÂô¡±
4.Kubernetes µÄÀ©Õ¹·½°¸

Ëæ×ÅÒµÎñµÄ¿ìËÙÔö³¤£¬¶ÔÓ¦µÄ×ÊÔ´¹æÄ£Ò²ÔÚѸËÙÔö³¤Ö®ÖС£¶øÕâÖÖÔö³¤Ö±½Óµ¼ÖÂÁË·þÎñÆ÷ÀàÐ͵ÄÔö¶à¡¢¹ÜÀíÈÎÎñµÄ¼Ó¾ç¡¢ºÍ½»¸¶ÐèÇóµÄ¶àÑùÐÔ¡£
±ÈÈçÔÚijЩ³¡¾°Ï£¬ÎÒÃÇÐèÒªÔÚ½»¸¶µÄ·þÎñÆ÷ÉÏ£¬Ô¤°²×°Ä³ÖÖÓ¦Óã»¶øÓÐЩʱºò£¬ÎÒÃÇÐèÒª½»¸¶³öÒ»¸ö¡°ÓÐÒÀÀµÐÔ¡±µÄ·þÎñ¡¢»òÊÇÒ»×é·þÎñµÄ¼¯ºÏ¡£
¼ÆËãÁ¦½»¸¶

¾¡¹ÜÎÒÃÇËùÃæ¶ÔµÄÎïÀí×ÊÔ´ºÍÐéÄâ»ú×ÊÔ´µÄÊýÁ¿ÊÇÅÓ´óµÄ£¬µ«ÎÒÃÇÔËάÈËԱȴÊÇÓÐÏ޵ģ¬ÎÞ·¨×öµ½ÎÞÏÞÁ¿µØÀ©ÕÅ¡£Òò´ËÎÒÃÇÐèÒª½«ÎïÀí×ÊԴͳһ³éÏó³öÀ´£¬´Ó¶øÊä³ö¸ø¿ª·¢ÈËÔ±¡£
¶øÕâÖÖ±ê×¼»¯Ê½µÄ³éÏó£¬Äܹ»¸øÆóÒµ´øÀ´Á½´óºÃ´¦£º¼«´óµØ¼õÉÙÁ˳ɱ¾ºÍÔö¼ÓÁË·þÎñÆ÷¹ÜÀíÉϵÄÔËÄÜ¡£Í¬Ê±£¬ÕâÖÖͳһ³éÏó´ßÉúÁËÎÒÃǼÆËãÁ¦½»¸¶²¿ÃŵijöÏÖ¡£

¾ßÌå¶øÑÔ£¬Æ½Ê±ÎÒÃÇËù½»¸¶µÄ·þÎñÆ÷£¬°üÀ¨ÒÔÔÆ·þÎñ IaaS ÐÎʽµÄ½»¸¶£¬Êµ¼ÊÉÏÓëÓ¦ÓõĽ»¸¶£¬Èç SaaS
ÐÎʽÊÇÒ»ÑùµÄ¡£
ÔÚÈç½ñÐéÄ⻯µÄÔÆÊ±´ú£¬ÎÒÃÇͨ¹ý¼òµ¥µÄÃüÁîÊäÈ룬¾ÍÄÜΪij¸öÎļþϵͳ׼±¸ºÃ CentOS »ò Ubuntu
²Ù×÷ϵͳ¡£Òò´Ë£¬·þÎñÆ÷ʵ¼ÊÉÏÒ²³ÉΪÁËÒ»ÖÖÈí¼þ·þÎñ¡¢»òÊÇÒ»ÖÖ App¡£
ͨ¹ýÒÔ³éÏóµÄ·½Ê½¶Ô·þÎñÆ÷ºÍÓ¦ÓòÉÈ¡±ê×¼»¯£¬ÎÒÃÇ¿ÉÒÔ°ÑËùÓеÄÎïÀí×ÊÔ´³éÏó³öÀ´£¬ÐγÉÒ»ÖÖ¾ßÓйܿØÄÜÁ¦µÄ¼ÆËãÁ¦£¬´Ó¶ø´ïµ½¶ÔÓÚϵͳµÄе÷ÄÜÁ¦¡£¿ÉÒÔ˵£¬Ò»Çн»¸¶µÄÐÐΪ¶¼ÊôÓÚÓ¦Óá£
Òò´ËÎÒÃǼÆËãÁ¦½»¸¶µÄ¹Ø¼üÒ²¾ÍÂä½ÅÔÚÁ˶ÔÓ¦ÓõĹÜÀíÖ®ÉÏ£¬ÕâͬʱҲÊÇÎÒÃǹØ×¢¶ÈµÄת±ä¡£

ÈÝÆ÷¼¼ÊõµÄÔÐÍʼÓÚÆßÊ®Äê´úÄ©£¬µ«Ö±µ½ 2013 Äê Docker µÄÎÊÊÀ£¬ÈÝÆ÷²Å³ÉΪÁËÖ÷Á÷µÄ¼¼Êõ¡£

Docker ¶ÔÓÚÈÝÆ÷¼¼ÊõµÄ×î´ó¹±Ï×ÔÚÓÚ£ºÍ¨¹ýÕæÕýµØÃæÏòÓ¦Óõķ½Ê½£¬Ëü¾ßÓÐ¿çÆ½Ì¨µÄ¿ÉÒÆÖ²ÌØÐÔ£¬½«ËùÓеķþÎñ£¬Í³Ò»ÒÔ
Image ´ò°üµÄ·½Ê½À´½øÐÐÓ¦ÓõĽ»¸¶¡£
ÁíÍ⣬ËüÊÇÓ¦ÓõÄÒ»ÖÖ·â×°±ê×¼¡£Ôڴ˱ê×¼Ö®ÉÏ£¬ÎÒÃÇ¿ÉÒÔÈÃÓ¦ÓÃÔËÐÐÔÚÈκÎÒ»¸öƽ̨֮ÖС£
ͬʱ£¬ÕâÒ²½øÒ»²½´Ù½øÁË×Ô¶¯»¯ÔËά¡¢AIOps ºÍ´óÊý¾ÝµÈÓ¦Óõķ¢Õ¹¡£Òò´Ë£¬ËüÔÚ½µµÍÈËÁ¦³É±¾µÄͬʱ£¬Ò²Ìá¸ßÁË×ÊÔ´µÄÀûÓÃÂÊ¡£
ÎÒÃǽ«¼ÆËãÁ¦½»¸¶·ÖΪÈý´óÀࣺ
¿Í»§Ó¦ÓõIJ¿Êð¡£ÔÚ½Óµ½·þÎñÇëÇóºó£¬ÎÒÃÇ»á×ÅÊÖ²¿Ê𣬲¢È÷þÎñ˳ÀûÔËÐÐÆðÀ´¡£
±ê×¼·þÎñµÄÒ»¼ü½»¸¶¡£ÀýÈçij²¿ÃŵĴóÊý¾ÝÒµÎñÐèÒªÓÐÒ»Ì×»·¾³£¬¸Ã»·¾³ÀïËù°üº¬µÄÐí¶àÖÖ·þÎñ£¬Ï໥֮¼äĬÈÏÊÇÏ໥¸ôÀëµÄ£¬µ«Í¬Ê±Ò²Òª±£Ö¤²¿·Ö·þÎñÄܹ»Ï໥ÁªÏµ¡£
ÄÇôÎÒÃǾÍÐèҪ׼±¸ºÃһЩ¿É¸´ÖƵıê×¼»¯·þÎñÄ£°å£¬ÒÔ±£Ö¤¾ÍËãÔÚ¸´Ô SOA ÌåϵÖУ¬Ò²ÄÜʵÏÖÓ¦Ó÷þÎñµÄ˳³©·¢ÏÖ¡£
·þÎñÆ÷µÄ½»¸¶¡£ÈçǰËùÊö£¬·þÎñÆ÷½»¸¶µÄ±ê×¼»¯£¬ÕýÊÇÎÒÃǼÆËãÁ¦½»¸¶²¿ÃÅÄÜÁ¦µÄÒ»ÖÖÌåÏÖ¡£
¼¼ÊõÑ¡ÐÍ

Èç½ñ£¬¿ÉÑ¡µÄÈÝÆ÷¼¼ÊõÓкܶ࣬°üÀ¨ Kubernetes¡¢Swarm¡¢ºÍ AWSECS µÈ£¬ÆäÖÐ Kubernetes
±È½ÏÈÈÃÅ¡£
Òò´ËÎÒÃÇÔÚÑ¡ÐÍʱ£¬ÐèÒª¿¼ÂÇÈçÏÂÒòËØ£º
1.Kubernetes ÏîÄ¿ÒѳÉΪÁËÈÝÆ÷±àÅŵÄÊÂʵ±ê×¼¡£ÓÉÓÚ´ó¼Ò¶¼ÔÚÆÕ±éʹÓã¬Èç¹ûÅöµ½ÁËÎÊÌ⣬¿ÉÒÔµ½ÉçÇøÀïÈ¥ËÑѰ´ð°¸¡£ÕâÎÞÐÎÖдøÀ´Á˳ɱ¾Ï½µµÄÓÅÊÆ¡£
2.ʵ¼ÊÐèÇóÇé¿öºÍ¼¼ÊõµÄÆõºÏ¶È¡£
3.À©Õ¹ÐÔÓëÉú̬·¢Õ¹¡£Ò»Ð©ÓÉ´ó¹«Ë¾µÄ²ÉÓÃ×÷Ϊ±³ÊéµÄ¼¼Êõ£¬Ò»°ã¶¼ÓÐ×ÅÇ¿´óµÄºǫ֧́³ÖºÍÒ»¶¨µÄǰհÐÔ£¬Í¬Ê±Ò²·½±ã½¨Á¢ÆðÒ»¶¨µÄÉú̬Ìåϵ¡£
»ùÓÚ Kubernetes µÄ¡°ËãÁ¦ÍâÂô¡±

ÎÒÃÇ¿ª·¢ÈËԱƽʱ¶ÔÓÚÓ¦Ó÷þÎñÀàÐ͵ÄÐèÇóºÍ±¾¹«Ë¾Ëù×öµÄµã²Í·þÎñÊǼ«ÆäÀàËÆµÄ¡£ÉÏͼÖеÄÂÌÉ« Box£¬Êµ¼ÊÉϾÍÏñÎÒÃdzéÏó³öµÄÒ»¸öÍâÂôºÐ¡£
ÆäÖÐÿһÖÖ·þÎñÏ໥֮¼äµÄµ÷Ó㬶¼ÊÇͨ¹ý DomainName ȥʵÏֵġ£¶øÇÒÕâЩ Box ¾ßÓи´ÖÆÐÔ£¬ÎÒÃÇ¿ÉÒÔÒÀ¾ÝÄ£°åÀ´´´½¨³ö¶à¸ö
Box¡£
¶øÃ¿¸ö Box ÄÚ²¿ÔÚµ÷Óò»Í¬µÄ·þÎñʱ£¬ËüµÄÓòÃûÔÚϵͳÖÐÊÇΨһµÄ¡£Òò´Ë£¬ËüÃÇ¿ÉÒÔºá¿ç²»Í¬µÄ»·¾³½øÐе÷Ó㬴Ӷø¼õÉÙÁË¿ª·¢ÈËÔ±µÄ¹¤×÷Á¿¡£
¹ýÈ¥£¬ÔÚ·þÎñÆô¶¯µÄʱºò£¬ÏµÍ³»á×Ô¶¯Éú³ÉÒ»¸öÍøÂç±êʶ£¬¶øµ± IP µØÖ·»òÓòÃû·¢Éú±ä»¯Ê±£¬ËûÃDz»µÃ²»½øÐÐÏàÓ¦µÄÅäÖÃÐ޸ġ£
Èç½ñ£¬Ö»ÒªÈÝÆ÷»·¾³ºÍÏàÓ¦µÄÓ¦ÓÃÔËÐÐÆðÀ´ÁË£¬²»Í¬·þÎñÖ®¼ä¾ÍÄܹ»¸ù¾ÝΨһµÄÍøÂç±êʶʵÏÖÏ໥µ÷Óá£
ÔÚ¾ßÌåʵÏÖÖУ¬ÎÒÃÇÀûÓà Kubernetes ×ö³öÁËÒ»¸öµ×²ãµÄÈÝÆ÷ÒýÇæ¡£ÔÚÆäÖеÄÿ¸ö Unit À¶¼»á°üÀ¨ÓÐ
Domain ºÍ Pod¡£¶øÇÒÿ¸ö Unit ¶¼ÓÐ×Ô¼ºµÄ¸±±¾£¬ÒÔʵÏÖ¸ºÔؾùºâ¡£
ÎÒÃÇͨ¹ýʹÓà Systemd£¬ÕâÖÖÆô¶¯·½Ê½È¥Á˽â¸÷¸ö·þÎñÖ®¼äµÄÏ໥ÒÀÀµ¹ØÏµ¡£
Ëüͨ¹ýÆô¶¯Ê÷£¬ÔÚ Box ÖÐʵÏÖÁËͬÑùµÄ¹¦ÄÜ£¬ÒÔ±£Ö¤ Box ÔÚÆô¶¯µÄʱºò£¬Äܹ»¸ù¾ÝÎÒÃǼȶ¨µÄÒÀÀµÃèÊö£¬°´ÕÕÏȺó´ÎÐò½«Ó¦ÓÃÆô¶¯ÔËÐÐÆðÀ´¡£
ËäÈ»´Ó¼¼Êõ·¢Õ¹µÄ½Ç¶ÈÀ´Ëµ£¬·þÎñÖ®¼ä²»Ó¦¸Ã´æÔÚ¹ý¶àµÄÒÀÀµ¹ØÏµ£¬µ«ÊÇÓÉÓÚÎÒÃDz¿ÃÅÊÇÃæÏòÒµÎñ²¿ÃÅÌṩ·þÎñµÄ£¬ËùÒÔÎÒÃÇÐèÒª×öµÄÖ»ÊÇÈ¥ÍÆ¶¯±ê×¼»¯£¬´Ó¶øÈ¥¼æÈÝ¿ª·¢µÄϰ¹ßºÍËûÃǵ±Ç°µÄÏîÄ¿¡£
ÈçÉÏͼËùʾ£¬Ã¿¸ö Unit Öл¹ÓÐÒ»¸ö Hook£¬Ëü¿ÉÒÔÐÖú·þÎñµÄÆô/Í£Óë³õʼ»¯¡£ÀýÈ磬ÔÚijЩ·þÎñÍê³ÉÁËÖ®ºó£¬Ëü»áÈ¥µ÷ÓÃÁíÍâÒ»¸ö
Pod ½øÐгõʼ»¯¡£
µ±È»£¬ÎÒÃÇÒ²Éæ¼°µ½¶Ô¹«¹²·þÎñµÄʹÓá£ÀýÈ磬Box1 ºÍ Box2 ¶¼ÒªÍ¨¹ýÒ»¸ö¹«¹²·þÎñÀ´´«µÝÊý¾Ý¡£¶ø¹«¹²·þÎñµÄΨһÐÔÍøÂç
ID£¬Ôò¿ÉÄÜÒòÎªÖØÆôµÈÍⲿÒòËØ¶ø·¢Éú±ä»¯¡£
Òò´ËΪÁ˱£³ÖÒ»ÖÂÐÔ£¬ÎÒÃdz¢ÊÔ׎«ÉÏÊöÌáµ½µÄÄÚ²¿±êʶת»»ÎªÍⲿ±êʶ¡£Êµ¼ÊÉÏ£¬ÎÒÃǵÄÄÚ²¿±êʶÊÇÓÀÔ¶²»±äµÄ£¬¶øÍâÃæ¹ØÏµÔòÐèҪͨ¹ý·þÎñ·¢ÏֵĻúÖÆ£¬ÓëÄÚ²¿·þÎñ¶¯Ì¬½¨Á¢¹ØÁª¡£
ÕâÑùÒ»À´£¬ÄÚ²¿µÄ·þÎñ¾Í²»±Ø¿¼ÂÇÅäÖñä¸ü¡¢ÒÔ¼°·þÎñ·¢ÏÖµÈÎÊÌâÁË¡£ÉÏͼ¾ÍÊÇÎÒÃǶÔÓÚÍâÂô·þÎñ·½Ê½µÄÒ»ÖÖ×î¼òµ¥µÄ³éÏó¡£

ÖÚËùÖÜÖª£¬Kubernetes µÄ·þÎñÖ÷ÒªÒÀÀµÓÚ Etcd µÄÆô¶¯£¬µ«ÊÇ Etcd ±¾ÉíÔÚ Kubernetes
µÄÓ¦Ó󡾰ϲ¢²»ÄÜÖ§³Ö´óÁ¿µÄÒµÎñ¡£
Òò´Ë£¬¿¼Âǵ½ÁËÒµÎñÁ¿µÄÖð½¥Ôö´óºÍ¶ÔÓÚ·þÎñµÄÎȶ¨ÐÔÒªÇó£¬ÎÒÃÇÐèÒª¶Ô Kubernetes ¾¡Á¿½øÐвð·Ö¡£
ÔÚ²ð·ÖµÄ¹ý³ÌÖУ¬ÎÒÃǽ«ÔÀ´µ¥¸ö»ú·¿ÍøÂçÖеÄ×ÊÔ´³Ø²ð·Ö³ÉÈýµ½Ëĸö Kubernetes ¼¯Èº¡£
ÔÚ²ð·ÖÍê³ÉÖ®ºó£¬ÎÒÃÇÔøÅöµ½ÁËÒ»¸öÎÊÌ⣺ÓÉÓÚ²ð·ÖµÃ̫ϸ£¬¼¯Èº×ÊÔ´³öÏÖÁËÀûÓÃÂʲ»¾ùµÄÇé¿ö£ºÓеļ¯Èº¸ºÔز»¹»¡¢¶øÓеļ¯ÈºÔò¸ºÔعý¶à¡£
Òò´Ë£¬ÎÒÃÇÔËÓò»Í¬µÄ Etcd ¶ÔÓ¦²»Í¬µÄ Kubernetes ¼¯Èº£¬Í¨¹ýµ÷¶ÈµÄ·½Ê½£¬È÷þÎñÄܹ»ÔÚ¼¯ÈºÖ®¼äÆ®ÒÆ£¬´Ó¶ø¼È½â¾öÁË×ÊԴЧÂʵÄÎÊÌ⣬ÓÖ½â¾öÁ˿ɿ¿ÐÔµÄÎÊÌâ¡£

ÔÚÉÏÊö¼òµ¥µÄ½á¹¹ÖУ¬³ýÁË»ÆÉ«µÄ²¿·Ö£¬ÆäËû¶¼ÊÇ Kubernetes ÔÉúµÄ×é¼þ£¬°üÀ¨À¶É«²¿·ÖÀï¾ßÓе÷¶È
Pod ¹¦Äܵĵ÷¶ÈÆ÷£¨Scheduler£©¡£
ÎÒÃǸù¾ÝÉÏÊö²»Í¬ Node ²ãµÄÊôÐԺͷþÎñÐÅÏ¢½øÐÐÅжϣ¬ÒÔÈ·¶¨Òªµ÷ÓÃÄĸö¼¯Èº¡£
ÓÉÓÚÎÒÃDzÉÈ¡µÄÊÇÁ½²ãµ÷¶ÈµÄ·½Ê½£¬Òò´ËÔÚµ÷µ½µÚÒ»²ãµÄʱºò£¬ÎÒÃDz¢Ã»Óиü¯ÈºµÄʵʱÐÅÏ¢£¬Ò²ÎÞ·¨ÖªµÀ´Ë¼¯Èº°Ñ·þÎñµ÷µ½Á˺δ¦¡£
¶Ô´Ë£¬ÎÒÃÇ×ÔÐпª·¢ÁËÒ»¸ö Scheduler£¨Èç»ÆÉ«²¿·ÖËùʾ£©¡£ÁíÍ⣬ÎÒÃÇ»¹¿ª·¢ÁËÒ»¸öÀàËÆÓÚ Kubernetes
µÄ APIServer ·þÎñ¡£
¿É¼û£¬ÎÒÃǵÄÄ¿µÄ¾ÍÔÚÓÚ£ºÒÔÍâΧµÄ·½Ê½È¥À©Õ¹ Kubernetes ¼¯Èº£¬¶ø²»ÊÇÈ¥¸Ä¶¯ Kubernetes
±¾Éí¡£
¼´£ºÔÚ Kubernetes µÄÍâΧ£¬Ôö¼ÓÁËÒ»²ã APIServer ºÍ Scheduler¡£´Ë¾ÙµÄÖ±½ÓºÃ´¦ÌåÏÖÔÚ£ºÎÒÃǽÚÔ¼ÁËÔÚ¿ò¼ÜÉϵĿª·¢Óëά»¤³É±¾¡£

ÏÂÃæÎÒÃÇÀ´¾ßÌå¿´¿´ÕæÊµµÄÈÝÆ÷»·¾³£º
1.ÈçǰËùÊö£¬ÎÒÃÇÊÇ»ùÓÚ Kubernetes µÄ¡£
2.ÔÚÍøÂçÉÏÎÒÃÇʹÓõÄÊǰ¢ÀïÔÆµÄÐéÄâ»ú¡£Èç¹û¹æÄ£Ð¡µÄ»°£¬ÎÒÃÇ»áÓÃ
Vroute µÄ·½Ê½£»Èç¹ûÊÇ×Ô½¨»ú·¿µÄ»°ÎÒÃǾÍʹÓà LinuxBridge µÄ·½Ê½¡£Í¬Ê±£¬ÎÒÃÇµÄ Storage
Driver ÓõÄÊÇ Overlay2¡£
3.ÔÚ²Ù×÷ϵͳ·½Ã棬ÎÒÃǶ¼Ê¹ÓõÄÊÇ Centos7-3.10.0-693¡£
4.ÔÚ Docker µÄ°æ±¾ÉÏ£¬ÎÒÃÇÓõÄÊÇ 17.06¡£ÖµµÃ²¹³äµÄÊÇ£ºÈç½ñÉçÇøÀﴫΟð汾¼´½«±»Í£Ö¹Î¬»¤ÁË£¬Òò´ËÎÒÃǽüÆÚ»á×ÅÊÖÉý¼¶¡£
Registry

˵µ½ Registry£¬ÔÚÒÔǰ¹æÄ£Ð¡µÄʱºò²¢²»´æÔÚÎÊÌâ¡£µ«ÊÇÈç½ñÎÒÃǵĹæÄ£ÒѴ󵽺á¿ç¼¸¸ö»ú·¿¡£
Òò´ËÎÒÃǾÍÐèÒª¶Ô Registry ´«¹ýÀ´µÄÊý¾Ý½øÐÐͬ²½£¬²¢¡°Ë«Ð´¡±µ½ OSS(Object Storage
Service)ºÍ Ceph(Ò»¸ö¿ªÔ´µÄ·Ö²¼Ê½´æ´¢ÏµÍ³£¬Ìṩ¶ÔÏó´æ´¢¡¢¿é´æ´¢ºÍÎļþϵͳµÄ´æ´¢»úÖÆ)Ö®ÖÐÁË¡£
ÓÉÓÚÎÒÃÇÔÚ×Ô¼ºµÄÎïÀí»ú·¿Öж¼ÓÐ Ceph£¬Òò´ËÔÚÏÂÔØÊ±¿ÉÒÔ×ñѾͽüÏÂÔØµÄÔÔò£¬¶ø²»±Ø¿ç³ö±¾»ú·¿¡£
´Ë¾ÙµÄºÃ´¦¾ÍÔÚÓÚ£º½µµÍÁËÔÚ»ú·¿Ö®¼ä´«ÊäËù´øÀ´µÄ´ø¿íÆ¿¾±ÎÊÌâ¡£
ÄÇôÎÒÃÇΪʲôҪ×öͬ²½ÄØ£¿ÓÉÓÚÎÒÃǵķþÎñÒ»µ©±»·¢²¼³öÈ¥£¬ËüÃǾͻá×Ô¶¯È¥½øÐÐÒì²½²¿Êð¡£
µ«ÊÇ£¬ÓÐЩ»ú·¿Àï¿ÉÄܸù±¾Ã»ÓÐËùÐèµÄ¾µÏñ£¬ÄÇôËüÃÇÔÚ½øÐС°ÀÈ¡¡±²Ù×÷ʱ¾Í»á±¨´í¡£
Òò´Ë»ùÓÚ´Ë·½ÃæµÄ¿¼ÂÇ£¬ÎÒÃDzÉÓÃÁË¡°Í¬²½Ë«Ð´¡±Ä£Ê½£¬²¢Ôö¼ÓÁËÈÏÖ¤µÄ»·½Ú¡£

Ïë±Ø´ó¼Ò¶¼ÖªµÀ£ºRegistry ÔÚ³¤Ê±¼äÔËÐк󣬾µÏñÀï»áÓÐÔ½À´Ô½¶àµÄ Blob¡£
ÎÒÃǼȿÉÒÔ×ÔÐÐÇåÀí£¬Ò²¿ÉÒÔ¸ù¾Ý¹Ù·½ÌṩµÄ·½Ê½À´ÇåÀí£¬µ«ÊÇÇåÀíµÄʱ¼äÒ»°ã¶¼»á·Ç³£³¤¡£
Òò´ËÇåÀí¹¤×÷»á´øÀ´·þÎñµÄÔËάÐÔÖжϣ¬Õâ¶ÔÓÚÒ»°ã¹«Ë¾À´ËµÊÇÎÞ·¨½ÓÊܵġ£
¶Ô´Ë£¬ÎÒÃÇÏëµ½Ò»ÖÖ¡°Bucket ÂÖת¡±µÄ·½·¨¡£ÓÉÓÚÔÚ CI£¨³ÖÐø¼¯³É£©µÄ¹ý³ÌÖУ¬ÎÒÃÇ»á²úÉú´óÁ¿µÄ¾µÏñ£¬Òò´ËÎÒÃǽ«¾µÏñÒÔÁ½¸ö¼¾¶ÈΪһ¸ö±£´æÖÜÆÚ½øÐл®·Ö£¬¼´£º
1.ΪµÚÒ»¸ö¼¾¶Èн¨Ò»¸ö Bucket£¬ÓÃÀ´´æ´¢¾µÏñ¡£
2.ÔÚµÚ¶þ¸ö¼¾¶Èʱ£¬½«ÐµľµÏñ²úÉúµ½µÚ¶þ¸ö Bucket Ö®ÖС£
3.µÈµ½Á˵ÚÈý¸ö¼¾¶È£¬ÎÒÃǾͽ«µÚÒ»¸ö Bucket ÀïµÄ¾µÏñÇåÀíµô£¬ÒÔ´æÈëеľµÏñ¡£
ÒÔ´ËÀàÍÆ£¬Í¨¹ý¸Ã·½·¨£¬ÎÒÃǾÍÄܹ»ÏÞÖÆ¾µÏñ£¬²»ÖÁÓÚÎÞÏÞµØÔö³¤ÏÂÈ¥¡£

ÎÒÃǵ±Ç°µÄ 8 ̨ Registry Ëù·þÎñµÄ Docker ¶ÔÏó¾ßÓгÉǧÉÏÍòµÄÌåÁ¿¹æÄ£¡£
Èç¹û Registry Ò»µ©³öÏÖÎÊÌ⣬ÎÒÃǾÍÐèҪѸËÙµØÄܹ»¶¨Î»µ½ÎÊÌ⣬Òò´Ë£¬¶ÔÓÚ Registry
²ÉÈ¡Ïà¹ØµÄ¼à¿ØÊǷdz£±ØÒªµÄ¡£
ͬʱ£¬ÎÒÃÇÒ²ÐèҪͨ¹ý¼à¿ØÀ´ÊµÊ±Á˽âϵͳµÄʹÓó̶ȣ¬ÒÔ±ã×ö³ö±ØÒªµÄÀ©ÈÝ¡£
ÔÚʵÏÖ·½Ê½ÉÏ£¬ÎÒÃÇʵ¼ÊÉÏÖ»ÊÇÉÔ΢¼ÓÈëÁËһЩ×Ô¼ºÐ´µÄ³ÌÐò£¬¶øÕûÌåÉÏÈÔ±£Áô×ÅÓëÆäËû³ÌÐòµÄ½âñî¹ØÏµ¡£
ÈçͼËùʾ£¬ÎÒÃÇͨ¹ýÉÏ´«¡¢ÏÂÔØµÄËÙ¶È£¬°üÀ¨ Blob µÄÊýÁ¿µÈ¼à¿ØÖ¸±ê£¬Äܹ»ÊµÊ±µØ¸ú×Ù Registry
µÄÔËÐÐ״̬¡£
Docker

ÎÒÃÇʹÓà Docker syslog driver ½«²É¼¯µ½µÄÓû§½ø³ÌÊä³öµ½ ELK Ö®ÖнøÐгÊÏÖ¡£²»¹ýÔÚÈÕÖ¾Á¿¹ýÓÚÆµ·±µÄʱºò£¬ELK
»á³öÏÖºÁÃë¼¶±ðµÄÂÒÐò¡£
ÕâÑùµÄÂÒÐò»á¸øÒµÎñ²¿ÃÅ´øÀ´ÎÞ·¨½øÐÐÎÊÌâÅŲéµÄÀ§ÄÑ¡£Òò´Ë£¬ÎÒÃǸ͝ÁË Docker µÄÏà¹Ø´úÂ룬¸øÃ¿Ò»ÌõÈÕÖ¾¶¼ÈËΪÔö¼ÓÒ»¸öµÝÔöµÄÐòÁкš£
Õë¶ÔһЩ¿É¿¿ÐÔÒªÇó½Ï¸ßµÄ Log£¬ÎÒÃÇÑ¡ÔñÁË TCP ģʽ¡£µ«ÊÇÔÚ TCP ģʽÏ£¬Èç¹ûij¸öÈÕÖ¾±»Êä³öµ½Ò»¸ö·þÎñʱ£¬Æä½ÓÊÕ·þÎñµÄ
Socket ÓÉÓÚÂúÔØ¶ø¡°º»×¡¡±ÁË¡£
ÄÇô¸ÃÈÝÆ÷¾ÍÎÞ·¨¼ÌÐø£¬Æä Docker ps ÃüÁîÒ²¾ÍÖ»ÄÜÍ£ÔÚÄǶùÁË¡£ÁíÍâ¾ÍËã TCP ģʽ¿ªÆôÁË£¬µ«ÊÇÆä½ÓÊÕÈÕÖ¾
TCPServer ÉÐδÆô¶¯Ò²ÊÇÎÞ¼ÃÓÚʵġ£
Óɴ˿ɼû£¬ÔÚÃæ¶ÔһЩ¾ßÌåʹÓÃÖеÄÎÊÌâʱ£¬ÎÒÃǵÄÐèÇóÓ뿪ԴÏîÄ¿±¾ÉíËùÄÜÌṩµÄ·þÎñ»¹ÊÇÓÐÒ»¶¨¾àÀëµÄ¡£ÈκÎÒ»¸ö¿ªÔ´ÏîÄ¿ÔÚÆóÒµÂäµØÊ±£¬¶¼²»¿ÉÄÜÊÇÍêÃÀµÄ¡£
¿ªÔ´ÏîÄ¿ÍùÍùÌṩµÄÊDZê×¼»¯µÄ·þÎñ£¬¶øÎÒÃǵÄÐèÇóÈ´¾³£ÊǸù¾Ý×Ô¼ºµÄ¾ßÌ峡¾°¶ø¶¨ÖÆ»¯µÄ¡£
ÎÒÃÇÆóÒµµÄÈí¼þ»·¾³£¬¶¼ÊǸù¾Ý×ÔÉí»·¾³Ò»µã¡¢Ò»µãµØ³¤³öÀ´µÄ£¬Òò´Ë´æÔÚ²îÒìÐÔÊDZØÈ»µÄ¡£
ÎÒÃDz»¿ÉÄÜÈÿªÔ´Èí¼þΪÎÒÃǶø¸Ä±ä£¬Ö»ÄÜͨ¹ýÐ޸ijÌÐò£¬ÈÿªÔ´Èí¼þÀ´ÊÊÓ¦ÎÒÃǵ±Ç°µÄÈí¼þ״̬Óë»·¾³£¬½ø¶ø½â¾ö¸÷ÖÖ¾ßÌåµÄÎÊÌâ¡£

ÉÏͼÊÇ Docker µÄһЩ¼à¿Ø£¬ËüÄܹ»°ïÖúÎÒÃÇ·¢ÏÖ¸÷ÖÖÎÊÌâ¡¢Bug¡¢ÒÔ¼°¡°º»×¡¡±µÄµØ·½¡£
Init ½ø³Ì

ÔÚ½«´«Í³µÄÒµÎñ½øÐÐÈÝÆ÷»¯×ª±äµÄ¹ý³ÌÖУ¬ÎÒÃÇÕë¶ÔÈÝÆ÷¶¨ÖƲ¢¸Ä½øÁË Init ½ø³Ì¡£
¸Ã Init ½ø³ÌÄܹ»Çл» Image »ù´¡²ã¹ÜÀíµÄһЩĿ¼ºÍ»·¾³±äÁ¿£¬Í¨¹ýÒ²¿ÉÒÔÌæ»»»ù´¡ÅäÖÃÎļþµÄºê´ú»»¡£
¶ÔÓÚÒ»Ð©Ç¨ÒÆ¹ýÀ´µÄ·þÎñ£¬Æä±¾Éí¾ÍÔø´øÓÐÅäÖÃÏËüÃÇͨ³£Ê¹Óû·¾³±äÁ¿À´¶ÁÈ¡ÅäÖÃÐÅÏ¢¡£ÄÇôÕâ¶ÔÓÚÎÒÃǽ«ÆäÐ޸ijÉÈÝÆ÷µÄ¹¤×÷£¬¾ÍÎÞÐÎÖÐÔö¼ÓÁ˳ɱ¾¡£
Òò´ËÎÒÃÇËùÌṩµÄ·½·¨ÊÇ£ºËäÈ»±äÁ¿±»Ð´ÔÚÁËÅäÖÃÀµ«ÊÇÎÒÃÇÄܹ»¸ù¾ÝÈÝÆ÷µÄ»·¾³±äÁ¿ÉèÖã¬×Ô¶¯È¥Ìæ»»·þÎñд¡°ËÀ¡±µÄÅäÖá£
Init ½ø³ÌµÄÕâÖÖ·½·¨¶ÔÓÚÔÚÈÝÆ÷ÉÐδÆô¶¯£¬ÇÒ²»ÖªµÀ·þÎñµÄ IP µØÖ·Ê±ÓÈΪÓÐÓá£
¶ÔÓÚÈÝÆ÷µÄ¹ÜÀí£¬ÎÒÃÇÒ²Æô¶¯ÁË Command£¬À´³ÖÐø¼àÌý½ø³ÌµÄ״̬£¬ÒÔ±ÜÃ⽩ʬ½ø³ÌµÄ³öÏÖ¡£
ÁíÍ⣬ÓÉÓÚÎÒÃǹ«Ë¾ÓÐ×ÅÄÚ²¿µÄ SOA Ìåϵ£¬ÔÚ Docker ²úÉúÍ£Ö¹ÐźÅÖ®ºó£¬ÐèÒª½«Á÷Á¿´Ó¹«Ë¾µÄÕû¸ö¼¯ÈºÀïÕª³ýµô¡£
Òò´Ë£¬ÎÒÃÇͨ¹ý½Ø»ñÐÅÏ¢£¬×öµ½ÁËÔÚÏà¹ØµÄÁ÷Á¿Èë¿ÚÓèÒÔ·þÎñµÄÕª³ý¶¯×÷¡£
ͬʱ£¬ÎÒÃÇ»¹Í¨¹ý´«µÝÍ£Ö¹ÐźŸøÓ¦Óýø³Ì£¬ÒÔÍê³ÉÕë¶ÔÈí¼þµÄ¸÷ÖÖɨβÇåÀí²Ù×÷£¬½ø¶øÊµÏÖÁ˶Դ«Í³ÒµÎñÓèÒÔÈÝÆ÷»¯µÄƽ»¬¹ý¶É¡£
Kubernetes ×ÊÔ´¹ÜÀíÀ©Õ¹

ÏÂÃæÍ¨¹ý°¸ÀýÀ´¿´¿´£¬ÎÒÃÇÊÇÈçºÎͨ¹ýÀ©Õ¹À´Âú×ãÒµÎñÐèÇóµÄ¡£
ÎÒÃǶ¼ÖªµÀ£¬Kubernetes µÄ APIServer ÊǽÏΪºËÐĵÄ×é¼þ£¬ËüʹµÃËùÓеÄ×ÊÔ´¶¼¿ÉÒÔ±»ÃèÊöºÍÅäÖá£ÕâÓë
Linux¡°Ò»ÇнÔÎļþ¡±µÄÕÜѧ¾ßÓÐÒìÇúͬ¹¤Ö®Ãî¡£
Kubernetes ¼¯Èº½«ËùÓеIJÙ×÷£¬°üÀ¨¼à¿ØºÍÆäËû×ÊÔ´£¬¶¼Í¨¹ý¶ÁÎļþµÄ·½Ê½À´ÕÆÎÕ·þÎñµÄ״̬£¬²¢Í¨¹ýдÎļþµÄ·½Ê½À´Ð޸ķþÎñµÄ״̬¡£
½èÓÃÕâÖÖ·½Ê½£¬ÎÒÃÇÏà¼Ì¿ª·¢Á˲»Í¬µÄ×é¼þºÍ APIServer µÄ½Ó¿Ú£¬²¢ÒÔ Restful µÄ½Ó¿ÚÐÎʽ¶Ô·þÎñʵÏÖÁË΢·þÎñ»¯¡£
ÔÚʵ¼Ê²¿ÊðÖУ¬ËäÈ»ÎÒÃDz¢Ã»ÓÐÓõ½ Kubernetes Proxy£¬µ«ÊÇÕâÑù·´¶ø½µµÍÁË APIServer
µÄ¸ºÔØ¡£
µ±È»Èç¹ûÐèÒªµÄ»°£¬ÎÒÃÇÍêÈ«¿ÉÒÔ°´Ðè¼ÓÔØÓ벿Ê𣬴Ӷø±£Ö¤²¢ÔöǿϵͳÕûÌåµÄÀ©Õ¹ÐÔ¡£

Kubernetes APIServer
ÉÏͼֱ¹ÛµØÕ¹Ê¾ÁË APIServer µÄ¼òµ¥ÄÚ²¿½á¹¹¡£ËùÓеÄ×ÊԴʵ¼ÊÉ϶¼Òª±»·ÅÈë Etcd Ö®ÖС£
ͬʱ£¬Ã¿Ò»ÖÖ×ÊÔ´¶¼ÓÐÒ»¸ö InternalObject£¬Ëü¶ÔÓ¦×Å Etcd ÀïµÄһЩ´æ´¢Àà Key/Value£¬ÕâÑù±£Ö¤ÁËÿ¸ö¶ÔÏóµÄΨһÐÔ¡£
µ±ÓÐÍâÃæÇëÇóÀ´·ÃÎÊ·þÎñʱ£¬ÔòÐèҪͨ¹ý ExternalObject ºÍ InternalObject
½øÐÐת»»²ÅÄÜʵÏÖ¡£
ÀýÈ磺ÎÒÃÇ¿ÉÄÜʹÓò»Í¬°æ±¾µÄ API ½øÐгÌÐò¿ª·¢£¬¶ø´Ëʱ³öÏÖÁËÐèÇó±ä¸ü£¬ÐèÒªÎÒÃÇÔö¼ÓÒ»¸ö×ֶΡ£
¶øÊµ¼ÊÉϸÃ×ֶοÉÄÜÒѾ´æÔÚÓÚ InternalObject Ö®ÖÐÁË£¬ÄÇôÎÒÃÇÖ»Ðè¾¹ýһЩ´¦Àí±ã¿ÉÖ±½ÓÉú³É¸Ã×ֶΡ£
¿É¼û£¬ÎÒÃÇÕæÕýҪȥʵÏÖµÄÖ»ÊÇ ExternalObject£¬¶øÃ»±ØÒªÈ¥¸Ä¶¯ InternalObject¡£
Èç´Ë£¬ÎÒÃÇÔÚ²»Ð޸Ĵ洢µÄ»ù´¡ÉÏ£¬¾¡Á¿×öµ½ÁË·þÎñÓë´æ´¢Ö®¼äµÄ½âñÒÔ¸üºÃµØÓ¦¶ÔÍâ½çµÄ¸÷Öֱ仯¡£
µ±È»£¬ÕâͬʱҲÊÇ Kubernetes APIServer Àï¶ÔÏó·þÎñµÄÒ»¸ö¹ý³Ì¡£
Óë´Ëͬʱ£¬ÎÒÃÇÒ²½«²¿·Ö API »®¹éµ½ÁËÒ»¸ö APIGroup Ö®ÖС£ÔÚͬһ¸ö APIGroup
À²»Í¬µÄ×ÊÔ´Ï໥֮¼äÊǽâñî¡¢²¢Ðеģ¬ÎÒÃÇÄܹ»ÒÔÌí¼Ó½Ó¿ÚµÄ·½Ê½½øÐÐ×ÊÔ´µÄÀ©Õ¹¡£
¶øÉÏÊöÌáµ½µÄÁ½¸ö¶ÔÏóÖ®¼äµÄת»»£¬ÒÔ¼°ÀàÐ͵Ä×¢²á£¬¶¼ÊÇÔÚͼÖÐµÄ Scheme ÀïÃæÍê³ÉµÄ¡£
Èç¹û´ó¼ÒÏë×Ô¼º×ö APIServer µÄ»°£¬¹È¸è¹Ù·½¾ÍÓµÓиÃÏîÄ¿µÄ¶ÔÓ¦·½°¸£¬²¢ÌṩÁËרÃŵļ¼ÊõÖ§³Ö¡£Èç¹ûÄú¸ÐÐËȤµÄ»°£¬¿ÉÒԲο¼Í¼ÖÐÏ·½¶ÔÓ¦µÄ
Github ÏîÄ¿µÄÍøÖ·¡£
ÁíÍ⣬¹È¸è»¹ÌṩÁË×Ô¶¯Éú³É´úÂëµÄ¹¤¾ß¡£ÏàÓ¦µØ£¬ÎÒÃÇÔÚ¿ª·¢µÄ¹ý³ÌÖÐÒ²×öÁËÒ»¸öÖ±½Óͨ¹ý¶ÔÏóÀ´Éú³ÉÊý¾Ý¿âËùÓÐÏà¹Ø²Ù×÷µÄС¹¤¾ß£¬Ëü½ÚÔ¼ÁËÎÒÃÇ´óÁ¿µÄʱ¼ä¡£
Kubernetes Â䵨
×îºóºÍ´ó¼Ò·ÖÏíһϣ¬ÎÒÃÇÔÚ Kubernetes Â䵨¹ý³ÌÖÐËùÓöµ½µÄһЩÎÊÌ⣺
1.Pod ÖØÆô·½Ê½¡£ÓÉÓÚ Pod ËùνµÄÖØÆôʵ¼ÊÉÏÊÇн¨Ò»¸ö Pod£¬²¢ÇÒ·ÅÆúÒÔǰÄǸö¾ÉµÄ£¬Òò´ËÕâ¶ÔÓÚÎÒÃÇµÄÆóÒµ»·¾³À´ËµÊÇÎÞ·¨½ÓÊܵġ£
2.Kubernetes ÎÞ·¨ÏÞÖÆÈÝÆ÷Îļþϵͳ´óС¡£ÓÐʱºò³ÌÐòÔ±ÔÚдҵÎñ´úÂëʱ£¬ÓÉÓÚ²»É÷£¬»áµ¼ÖÂÈÕÖ¾ÎļþÔÚÒ»ÌìÖ®ÄÚ¼¤Ôö
100 ¶à GB£¬´Ó¶øÕ¼ÂúÁË´ÅÅ̲¢µ¼Ö±¨¾¯¡£
3.È»¶øÎÒÃÇ·¢ÏÖ£¬ÔÚ Kubernetes ÀïºÃÏñ²¢Ã»ÓÐÏà¹ØµÄÊôÐÔÈ¥ÏÞÖÆÎļþϵͳµÄ´óС£¬Òò´ËÎÒÃDz»µÃ²»¶ÔËü½øÐÐÁËÂÔ΢µÄÐ޸ġ£
4.DNS ¸ÄÔì¡£Äú¿ÉÒÔ²ÉÓÃ×Ô¼ºµÄ DNS£¬Ò²¿ÉÒÔʹÓà Kubernetes
µÄ DNS¡£²»¹ýÎÒÃÇÔÚʹÓà Kubernetes DNS ֮ǰ£¬×¨ÃÅ»¨Ê±¼ä¶ÔËü½øÐÐÁ˶¨ÖÆÓë¸ÄÔì¡£
5.Memory.kmem.slabinfo¡£µ±ÎÒÃÇ´´½¨ÈÝÆ÷µ½ÁËÒ»¶¨³Ì¶Èʱ£¬»á·¢ÏÖÈÝÆ÷ÔÙÔõôҲÎÞ·¨±»´´½¨ÁË¡£ÎÒÃÇËäÈ»³¢ÊÔ¹ýÊÍ·ÅÈÝÆ÷£¬µ«ÊÇ·¢ÏÖ»¹ÊÇÊܵ½ÁËÄÚ´æÒÑÂúµÄÏÞÖÆ¡£
6.¾¹ý·ÖÎö£¬ÎÒÃÇ·¢ÏÖ£ºÓÉÓÚÎÒÃÇʹÓÃµÄ Kernel °æ±¾Îª 3£¬¶ø
Kubelet ¼¤»î¿ªÆôÁË cgroupkernel-memory ÕâÒ»²âÊÔÊôÐÔÌØÐÔ£¬Í¬Ê± Centos7-3.10.0-693
µÄ Kernel 3 ¶ÔÓÚ¸ÃÌØÐÔÖ§³Ö²¢²»ºÃ£¬Òò´ËºÄ¹âÁËËùÓеÄÄÚ´æ¡£
|