±à¼ÍƼö: |
±¾ÎÄÔÚÈÝÆ÷±»¹ã·ºÓ¦Óñ³¾°Ï£¬´ÓÈÝÆ÷¼¼Êõ¡¢¾µÏñ¡¢ÍøÂçºÍÔËÐл·¾³µÈά¶È·ÖÎöÁËÓ¦ÓÃÈÝÆ÷´øÀ´µÄËĸö°²È«ÌôÕ½£¬×ܽáÁËÎåÏîÓ¦¶Ô¾Ù´ë£»×îºó´ÓÈÝÆ÷È«ÉúÃüÖÜÆÚ±£»¤½Ç¶È³ö·¢£¬Ìá³öÁËÈÝÆ÷°²È«½â¾ö·½°¸¡£
±¾ÎÄÀ´×ÔÓÚ΢ÐŹ«Õ˺ŠÂÌÃ˿Ƽ¼£¬ÓÉ»ðÁú¹ûÈí¼þLinda±à¼¡¢ÍƼö¡£ |
|
1. ÒýÑÔ
Ëæ×ÅÔÆ¼ÆËãµÄ·¢Õ¹£¬ÒÔÈÝÆ÷ºÍ΢·þÎñΪ´ú±íµÄÔÆÔÉú¼¼Êõ£¬Êܵ½ÁËÈËÃǵĹ㷺¹Ø×¢£¬ÆäÖÐDockerºÍKubernetes£¨ÒÔϼò³Æ¡°K8S¡±£©ÊÇÆóÒµÈÝÆ÷ÔËÐÐʱºÍÈÝÆ÷±àÅŵÄÊ×ҪѡÔñ¡£È»¶ø£¬ÔÚÓ¦ÓÃÈÝÆ÷ºÍK8S¹ý³ÌÖУ¬´ó¶àÊýÆóÒµ¶¼Óöµ½¹ý²»Í¬³Ì¶ÈµÄ°²È«ÎÊÌ⣬ÈçºÎ±£ÕÏÈÝÆ÷°²È«£¬ÒѳÉΪÆóÒµ×î¹ØÐĵÄÎÊÌâ¡£
2. Ó¦ÓÃÈÝÆ÷´øÀ´ÐÂÌôÕ½
ÈÝÆ÷Ó¦ÓÃ֮ǰ£¬ÔÆÖÐÓ¦ÓÃϵͳ¶àÊýÔËÐÐÓÚÐéÄâ»úÉÏ£¬µ«ÐéÄâ»úÈÔ»áÓжîÍâµÄ×ÊÔ´À˷ѺÍά»¤³É±¾£¬²¢ÇÒÆäÆô¶¯ËٶȽÏÂý¡£ÈÝÆ÷¼¼ÊõÒò¾ßÓÐÕ¼ÓÃ×ÊÔ´ÉÙ¡¢²¿ÊðËÙ¶È¿ìºÍ±ãÓÚÇ¨ÒÆµÈÌØµã£¬¿ªÊ¼Êܵ½ÆóÒµÇàíù¡£ÔÚµäÐ͵ÄÔÆÔÉú»·¾³ÖУ¬Í¨³£°üÀ¨Ö÷»ú¡¢¾µÏñ¡¢ÈÝÆ÷¡¢ÈÝÆ÷±àÅÅÆ½Ì¨¡¢ÍøÂçºÍ΢·þÎñµÈ¶ÔÏ󣬵«ÓÉÓÚĿǰ¶àÊýÆóҵʹÓÃÈÝÆ÷¼¼Êõ²¿ÊðÒµÎñÓ¦Ó㬹ÊÏÂÃæ½«Öصã·ÖÎöÓëÈÝÆ÷Ïà¹ØµÄ°²È«ÌôÕ½¡£
2.1 ÈÝÆ÷¼¼Êõ·çÏÕ
×÷ΪһÖÖ²Ù×÷ϵͳÐéÄ⻯¼¼Êõ£¬ÈÝÆ÷¹²Ïí²Ù×÷ϵͳÄںˣ¬µ«²¢Î´ÊµÏÖÍêÈ«¸ôÀ룬ÈôÐéÄ⻯Èí¼þ´æÔÚ©¶´£¬»òËÞÖ÷»ú±»¹¥»÷£¬½«»áÔì³ÉÈÝÆ÷ÌÓÒÝ»ò×ÊÔ´¸ôÀëʧЧ£¬Ó°Ïìij¸öÈÝÆ÷»ò¶à¸öÈÝÆ÷µÄ°²È«¡£
ÈÝÆ÷ÌÓÒÝ£ºÀûÓÃÐéÄ⻯Èí¼þ´æÔڵĩ¶´£¬¹¥»÷Õßͨ¹ýÈÝÆ÷»ñÈ¡Ö÷»úȨÏÞ£¬¿É¹¥»÷ÈÝÆ÷ËùÔÚÖ÷»ú£¬ÉõÖÁÊǸÃÖ÷»úÉÏµÄÆäËûÈÝÆ÷¡£¹ýÈ¥¼¸ÄêÄÚÒѾ·¢ÏÖÁ˶à¸öÏà¹ØÂ©¶´£¬ÆäÖÐCVE-2019-5736ÊÇRunCµÄÒ»¸ö°²È«Â©¶´£¬Ëü»áµ¼ÖÂ18.09.2°æ±¾Ç°µÄDockerÔÊÐí¶ñÒâÈÝÆ÷¸²¸ÇËÞÖ÷»úÉϵÄRunC¶þ½øÖÆÎļþ£¬Ê¹¹¥»÷ÕßÄܹ»ÒÔRootÉí·ÝÔÚËÞÖ÷»úÉÏÖ´ÐÐÈÎÒâÃüÁî¡£
×ÊÔ´¸ôÀëʧЧ£º¹¥»÷ÕßÖ»Òª¹¥ÆÆÈÝÆ÷²Ù×÷ϵͳÄںˣ¬¾Í¿É·ÃÎʵ½Ö÷»úÉϵÄÎļþϵͳ£¬»ò½øÈëÆäËüÈÝÆ÷£¬µ¼ÖÂÈÝÆ÷¸ôÀëʧЧ¡£Èç¹û°ÑÖ÷»úµÄÎļþϵͳ¹ÒÔØµ½¶à¸öÈÝÆ÷µÄĿ¼ÀÈÝÆ÷¾Í¿ÉÒÔ·ÃÎÊͬһ¸öĿ¼£¬½«»áÒýÆðÐÅϢй¶»òÄÚÈݴ۸ĵȰ²È«ÎÊÌâ¡£
2.2 ²»°²È«µÄ¾µÏñ
¾µÏñÊÇÒ»¸ö°üº¬Ó¦ÓÃ/·þÎñÔËÐÐËù±ØÐèµÄ²Ù×÷ϵͳºÍÓ¦ÓÃÎļþµÄ¼¯ºÏ£¬ÓÃÓÚ´´½¨Ò»¸ö»ò¶à¸öÈÝÆ÷£¬ËüÃÇÖ®¼ä½ôÃÜÁªÏµ£¬¾µÏñµÄ°²È«ÐÔ½«»áÓ°ÏìÈÝÆ÷°²È«¡£¸ù¾Ý¾µÏñ´´½¨ºÍʹÓ÷½Ê½£¬Í¨³£ÓÐÈý¸öÒòËØÓ°Ïì¾µÏñ°²È«¡£
ÏÖÓоµÏñ²»°²È«£º¾µÏñͨ³£ÊÇ¿ª·¢Õß»ùÓÚij¸öÏÖÓоµÏñ´´½¨µÄ£¬ÎÞÂÛÊǹ¥»÷ÕßÉÏ´«µÄ¶ñÒâ¾µÏñ£¬»¹ÊÇÏÖÓоµÏñ´æÔڵݲȫȱÏÝ£¬»ùÓÚËü´´½¨µÄ¾µÏñ¶¼½«»áÊDz»°²È«µÄ¡£
ʹÓðüº¬Â©¶´µÄÈí¼þ£º¿ª·¢Õß¾³£»áʹÓÃÈí¼þ¿âµÄ´úÂë»òÈí¼þ£¬Èç¹ûËüÃÇ´æÔÚ©¶´»ò¶ñÒâ´úÂ룬һµ©±»ÖÆ×÷³É¾µÏñ£¬Ò²½«»áÓ°ÏìÈÝÆ÷µÄ°²È«¡£
¾µÏñ±»´Û¸Ä£ºÈÝÆ÷¾µÏñÔÚ´æ´¢ºÍʹÓõĹý³ÌÖУ¬¿ÉÄܱ»´Û¸Ä£¬Èç±»Ö²Èë¶ñÒâ³ÌÐòºÍÐÞ¸ÄÄÚÈÝ¡£Ò»µ©Ê¹Óñ»¶ñÒâ´Û¸ÄµÄ¾µÏñ´´½¨ÈÝÆ÷ºó£¬½«»áÓ°ÏìÈÝÆ÷ºÍÓ¦ÓóÌÐòµÄ°²È«¡£
2.3 ¶«Î÷Ïò¹¥»÷
ÍøÂçʵÏÖÁËÈÝÆ÷Ö®¼ä¡¢ÈÝÆ÷ÓëÍⲿ֮¼äµÄͨÐÅ£¬ÒÔ¼°Ó¦ÓÃÖ®¼äµÄ½»»¥£¬µ«ÔÚÐéÄ⻯µÄÈÝÆ÷ÍøÂç»·¾³ÖУ¬ÆäÍøÂ簲ȫ·çÏսϴ«Í³ÍøÂç¸ü¸´ÔÓ¡¢ÑϾþ¡£ÒÔDocker»·¾³ÎªÀý£¬ËüÖ§³ÖBridge¡¢OverlayºÍMacvlanµÈÍøÂ磬¾¡¹ÜʵÏÖ·½Ê½²»Í¬£¬µ«ÓÐÒ»¸ö¹²Í¬ºÍÆÕ±éµÄÎÊÌ⣺Èç¹ûÈÝÆ÷Ö®¼äδ½øÐÐÓÐЧ¸ôÀëºÍ¿ØÖÆ£¬ÔòÒ»µ©¹¥»÷Õß¿ØÖÆÄ³Ì¨Ö÷»ú»òij̨ÈÝÆ÷£¬¿ÉÒÔÒÔ´ËÎªÌø°å£¬¹¥»÷ͬÖ÷»ú»ò²»Í¬Ö÷»úÉÏµÄÆäËûÈÝÆ÷£¬Ò²¾ÍÊdz£Ìáµ½µÄ¡°¶«Î÷Ïò¹¥»÷¡±£¬ÉõÖÁÓпÉÄÜÐγɾܾø·þÎñ¹¥»÷¡£
2.4 ÔËÐл·¾³Î´¼Ó¹Ì
×÷ΪÈÝÆ÷µÄÔØÌåºÍ±àÅŹÜÀíÈí¼þ£¬Ö÷»úºÍÈÝÆ÷±àÅÅÆ½Ì¨µÈÔËÐл·¾³Ò²ÊÇÈÝÆ÷°²È«µÄÖØÒªÒòËØÖ®Ò»¡£ÈçǰËùÊö£¬Ö÷»úÉϵÄÈÝÆ÷²¢Î´ÊµÏÖÍêÈ«¸ôÀ룬Èç¹ûÖ÷»úδ½øÐа²È«¼Ó¹Ì£¬Ò»µ©¹¥»÷Õß·¢ÆðÌáȨ¹¥»÷£¬½«»á¿ØÖÆÖ÷»úÉÏÆäËûÈÝÆ÷¡£¶ÔÓÚ²»°²È«µÄÈÝÆ÷±àÅÅÆ½Ì¨Í¬ÑùÈç´Ë£¬Ä³Æû³µÖÆÔìÆóÒµ¾ÍÔøÉîÊÜÆäº¦£¬ÓÉÓÚÆä¹«ÓÐÔÆ»·¾³ÖеÄK8S
Master½ÚµãδÉèÖÃÃÜÂë±£»¤£¬¹¥»÷ÕßÔÚµÁÈ¡·ÃÎÊȨÏÞºó£¬Ê¹ÓÃK8S¼¯ÈºÍÚ¾ò¼ÓÃÜ»õ±Ò¡£
3. ÈÝÆ÷°²È«Ó¦¶Ô¾Ù´ë
´ÓLXC¿ªÊ¼£¬ÈÝÆ÷¾ÍÀûÓÃÁ˴󲿷ÖLinuxͨÓõݲȫ¼¼Êõ£¬ËüÃǹ¹³ÉÁËÈÝÆ÷°²È«µÄ»ù´¡¡£Ãæ¶ÔÐÂÌôÕ½£¬ÎÞÂÛ´«Í³µÄ°²È«¼Ó¹Ì£¬»¹ÊÇеľµÏñ×é³É·ÖÎö£¬¾µÏñ¡¢ÈÝÆ÷¼¼Êõ¡¢ÍøÂçºÍÖ÷»úµÈ²»Í¬²ãÃæµÄ°²È«´ëÊ©£¬¶¼½«ÓÐÖúÓÚÌáÉýÈÝÆ÷°²È«ÐÔ¡£
3.1 LinuxÄں˰²È«»úÖÆ
LinuxͨÓõݲȫ¼¼Êõ°üÀ¨ÃüÃû¿Õ¼ä£¨Namespace£©¡¢¿ØÖÆ×飨Cgroups£©¡¢ÏµÍ³È¨ÏÞ£¨Capability£©¡¢Ç¿ÖÆ·ÃÎÊ¿ØÖÆ£¨MAC£©ÏµÍ³ÒÔ¼°°²È«¼ÆË㣨Seccomp£©µÈ¡£Ò»¸öºÃµÄÈÝÆ÷ƽ̨£¬Ó¦¸Ã¾ß±¸ÕâЩÄÜÁ¦£¬ÏÂÎĽ«¾Û½¹Ç°ÈýÖÖÄÜÁ¦¡£
ÃüÃû¿Õ¼ä£¨Namespace£©£º±¾ÖÊÉÏÈÝÆ÷ÊÇÓɸ÷ÖÖÃüÃû¿Õ¼ä×é³ÉµÄ£¬ËüÃÇΪÈÝÆ÷ÌṩÁË»ù´¡¸ôÀ룬ÈÃÿ¸öÈÝÆ÷ÓµÓжÀÁ¢µÄ½ø³ÌID¡¢ÍøÂçÕ»¡¢¸ùĿ¼¡¢ÄÚ´æ¡¢Óû§ÃûºÍÖ÷»úÃû¡£

ͼ1 ÈÝÆ÷ÊÇÃüÃû¿Õ¼äµÄ×éºÏ
¿ØÖÆ×飨Cgroups£©£º¿ØÖÆ×鸺ÔðʵÏÖ×ÊÔ´Éó¼ÆºÍÏÞÖÆ£¬ÈÃÿ¸öÈÝÆ÷¹«Æ½µÄ·ÖÏíÖ÷»ú×ÊÔ´£¬²¢ÉèÖÃÁËÏÞÖÆ£¬ÒÔÃâµ¥¸öÈÝÆ÷¹ý¶ÈÏûºÄ×ÊÔ´£¬Ó°Ïìµ½Ö÷»úϵͳºÍÆäËûÈÝÆ÷ÔËÐУ¬Ò²¿ÉÒÔ·ÀÖ¹¾Ü¾ø·þÎñ¹¥»÷¡£

ͼ2 ¿ØÖÆ×éÏÞÖÆÈÝÆ÷¿ÉʹÓõÄ×ÊÔ´
ϵͳȨÏÞ£¨Capability£©£ºRootÓû§ÓµÓÐÈ«²¿µÄȨÏÞ£¬ÒÔRootÉí·ÝÔËÐÐÈÝÆ÷ºÜΣÏÕ£»µ«Èç¹ûÒÔ·ÇRootÉí·ÝÔÚºǫ́ÔËÐÐÈÝÆ÷µÄ»°£¬ÓÉÓÚȱÉÙȨÏ޻ᴦ´¦ÊÜÏÞ¡£ÏµÍ³È¨ÏÞ»úÖÆ¿ÉÒÔÌṩϸÁ£¶ÈµÄȨÏÞ·ÃÎÊ¿ØÖÆ£¬¿ØÖÆÈÝÆ÷ÔËÐÐËùÐèµÄRootÓû§È¨ÏÞ£¬¼´Ê¹¹¥»÷ÕßÈ¡µÃÁËRootȨÏÞ£¬Ò²²»ÄÜ»ñµÃÖ÷»úµÄ½Ï¸ßȨÏÞ£¬¿ÉÒÔÏÞÖÆ½øÒ»²½µÄÆÆ»µ¡£

ͼ3 ϵͳȨÏÞ¿ØÖÆÈÝÆ÷ȨÏÞ
3.2 °²È«ÈÝÆ÷
LinuxͨÓð²È«¼¼ÊõΪÈÝÆ÷ÌṩÁË»ù´¡¸ôÀ룬µ«Î´ÊµÏÖ100%¸ôÀë¡£°²È«ÈÝÆ÷ͨ¹ýÔö¼Ó¶îÍâµÄ¸ôÀë²ã¿ÉÒÔ½øÒ»²½Ôö¼ÓÈÝÆ÷µÄ°²È«ÐÔ¡£ËüÊÇÒ»ÖÖÈÝÆ÷ÔËÐÐʱ¼¼Êõ£¬ÎªÈÝÆ÷Ó¦ÓÃÌṩһ¸öÍêÕûµÄ²Ù×÷ϵͳִÐл·¾³£¨³£³£ÊÇ
Linux ABI£©£¬½«Ó¦ÓõÄÖ´ÐÐÓëËÞÖ÷»ú²Ù×÷ϵͳ¸ôÀ뿪£¬±ÜÃâÓ¦ÓÃÖ±½Ó·ÃÎÊÖ÷»ú×ÊÔ´£¬´Ó¶ø¿ÉÒÔÔÚÈÝÆ÷Ö÷»úÖ®¼ä»òÈÝÆ÷Ö®¼äÌṩ¶îÍâµÄ±£»¤¡£
gVisorºÍKata ContainersÊÇÁ½¸ö´ú±íÐԵݲȫÈÝÆ÷ʵÏÖ£¬ÆäÖÐKata Containersͨ¹ýʹÓÃÓ²¼þÐéÄ⻯£¬ÀûÓÃÇáÁ¿¼¶µÄÐéÄâ»úΪÈÝÆ÷Ìṩ¸ôÀ룬ÿһ¸öContainer/PodÔËÐÐÓÚ¶ÀÁ¢µÄÐéÄâ»úÉÏ£¬ËûÃDz»ÔÙ´ÓÖ÷»úÄÚºËÉÏ»ñÈ¡ÏàÓ¦ËùÓеÄȨÏÞ£¬´Ó¶øÊ¹Kata
ContainersÓëVMÒ»ÑùÄÜÌṩǿ¸ôÀëÐÔ¡£

ͼ4 Kata Containers½á¹¹¼°ÔÀí
3.3 ¾µÏñ°²È«·ÖÎö
×÷ΪÈÝÆ÷ÔËÐеĻù´¡£¬ÈÝÆ÷¾µÏñµÄ°²È«ÔÚÕû¸öÈÝÆ÷°²È«Éú̬ÖÐÕ¼¾Ý×ÅÖØÒªÎ»Öá£ÈÝÆ÷¾µÏñÓÉÈô¸É²ã¾µÏñµþ¼Ó¶ø³É£¬Í¨¹ý¾µÏñ²Ö¿â·Ö·¢ºÍ¸üС£Òò´Ë£¬¿ÉÒÔ´Ó¾µÏñ¹¹½¨°²È«¡¢²Ö¿â°²È«ÒÔ¼°¾µÏñ·Ö·¢°²È«Èý·½ÃæÊµÏÖ¾µÏñ°²È«¡£
¾µÏñ¹¹½¨°²È«£ºÔÚ¹¹½¨¾µÏñʱ£¬ÑéÖ¤ËùÒÀÀµ¾µÏñµÄÍêÕûÐÔºÍÀ´Ô´£¬Ö»°²×°±ØÒªµÄÈí¼þ°ü£¬Ê¹ÓÃÇ¡µ±µÄÖ¸ÁËõС¹¥»÷Ãæ£»²¢ÀûÓüÓÃܼ¼Êõ£¬±£»¤ºÃÃÜÂë¡¢ÁîÅÆ¡¢ÃÜÔ¿ºÍÓû§»úÃÜÐÅÏ¢µÈ¡£
¾µÏñ²Ö¿â°²È«£º¾µÏñ²Ö¿â·ÖΪ¹«¹²¾µÏñ²Ö¿âºÍ˽ÓоµÏñ²Ö¿â£¬Ê¹Óù«¹²¾µÏñ²Ö¿âµÄ¾µÏñʱ£¬Ê¹Óùٷ½·¢²¼×îа汾µÄ¾µÏñ£¬¶ÔÏÂÔØµÄ¾µÏñÒª¾¹ý©¶´É¨ÃèÆÀ¹À£¬²¢±£³Ö¶¨Ê±¸üС£¶ÔÓÚ˽ÓоµÏñ²Ö¿â£¬Ò»·½Ãæ±£³Ö²Ö¿â×ÔÉíµÄ°²È«ÐÔ£¬ÀýÈçÔÚʹÓÃʱҪÅäÖÃÏàÓ¦µÄ°²È«Ö¤Ê飬ÁíÒ»·½ÃæÊ¹ÓþµÏñ¹ý³ÌÖУ¬ÀûÓÃÓû§·ÃÎÊȨÏÞ¿ØÖÆÈ·±£½»»¥¹ý³ÌµÄ°²È«ÐÔ¡£
¾µÏñ·Ö·¢°²È«£ºÔÚ¾µÏñÏÂÔØºÍÉÏ´«Ê±£¬ÀûÓÃÊý×ÖÇ©ÃûºÍHttpsÀ´±£ÕÏÈÝÆ÷¾µÏñµÄÍêÕûÐԺͻúÃÜÐÔ£¬µÖÓùÖмäÈ˹¥»÷µÈÍþв¡£
3.4 ΢¸ôÀë
ÍøÂçµÄ»ù±¾·À»¤ÊÖ¶ÎÊǸôÀëºÍ·ÃÎÊ¿ØÖÆ£¬ÈÝÆ÷ÍøÂç·À»¤¿ÉʹÓÃÈÝÆ÷»·¾³×ÔÉí°²È«»úÖÆ»òµÚÈý·½Î¢¸ôÀë²úÆ·¡£¶ÔÓÚK8SÍøÂ磬Æä×ÔÉí°²È«²ßÂÔ¶Ôÿ¸öPodµÄÈë¿ÚÇ¿ÖÆÖ´ÐзÃÎÊ¿ØÖÆ£¬´Ó¶øÄܹ»¸ôÀë¸ß·çÏÕµÄ΢·þÎñ£¬µ«PodÄÚÈÝÆ÷¼äͨÐźÍÀ뿪PodµÄ³ö¿ÚÁ÷Á¿ÎÞ·¨¿ØÖÆ¡£µÚÈý·½Î¢¸ôÀë²úÆ·¿ÉÊDZÈK8S¸üÏêϸµØ¼Ç¼³öÈëÍøÂçÁ¬½Ó¡¢ÉîÈë¼ì²âÍøÂçÖÐÍþвºÍ¹¥»÷£¬ÒÔ¼°¼ì²âÊý¾Ýй¶£¬ÊµÏÖÆß²ã΢¸ôÀëºÍÍøÂç¿ÉÊÓ»¯¡£
3.5 ÔËÐл·¾³¼Ó¹Ì
ÀûÓð²È«»ùÏß¶ÔÈÝÆ÷Ö÷»úºÍK8S½øÐа²È«¼ì²éºÍ¼Ó¹Ì£¬½«»á½øÒ»²½Ôö¼ÓÈÝÆ÷µÄ°²È«ÐÔ¡£CIS·¢²¼µÄDocker
»ùÏßÒѳÉΪLinuxÖ÷»úÅäÖúÍDockerÖ÷»ú¼Ó¹ÌµÄ×î¼Ñʵ¼ù¡£Í¨¹ý´´½¨Ò»¸öÌØÈ¨ÈÝÆ÷£¬½«DockerÖ÷»ú°²È«ÅäÖÃÓëCIS
»ùÏß½øÐжԱȣ¬¿ÉÒÔ·¢ÏÖ°²È«ÎÊÌâºÍʵʩ¼Ó¹Ì¡£Í¬Ñù£¬CISÒ²·¢²¼ÁËK8S »ùÏߣ¬´«Í³µÄ©¶´É¨Ã蹤¾ß¡¢¶ÀÁ¢µÄÈÝÆ÷°²È«²úÆ·(ÈçAqua
SecurityºÍNeuVector)ºÍ˽ÓÐά»¤ÈËÔ±ÒѾÔÚGitHubÉÏ·¢²¼Á˽ű¾£¬¿ÉʵÏÖ×Ô¶¯»¯µÄK8S°²È«¼ì²é¡£
4. ÈÝÆ÷°²È«Êµ¼ù
Ëæ×ÅDevOpsÐËÆð£¬Èí¼þ¿ª·¢ÈËÔ±ÓëÔËάÈËÔ±Ö®¼ä½ôÃܺÏ×÷£¬Í¨¹ý×Ô¶¯»¯Á÷³ÌÀ´Íê³ÉÈí¼þ¿ª·¢¡¢²âÊÔ¡¢·¢²¼ºÍά»¤£¬Õû¸ö¹ý³Ì¸ü¼Ó¿ì½Ý¡¢Æµ·±ºÍ¿É¿¿£¬Ëõ¶ÌÁËÈí¼þÉÏÏßʱ¼ä£¬¼õÉÙÁ˺ܶàÖØ¸´ÐÔºÍÈ˹¤¹¤×÷¡£ÏÖÔÚ£¬Õë¶ÔÈÝÆ÷°²È«·çÏÕ£¬ÒѾÐγÉÁ˶àÖÖ°²È«¿ØÖÆ´ëÊ©£¬ÈçºÎ½«ËüÃÇÈÚÈëµ½DevOpsÖиßЧ±£»¤Ó¦ÓÃϵͳ£¬ÊÇÈÝÆ÷°²È«Êµ¼ùÐèÒª¿¼ÂǵÄÊ×ÒªÎÊÌâ¡£
Ϊ´Ë£¬ÎÒÃDZü³ÐDevSecOpsÀíÄÌá³öÁËÈÝÆ÷È«ÉúÃüÖÜÆÚ°²È«±£»¤·½°¸£¬¸Ã·½°¸ÀûÓÃÈÝÆ÷°²È«¹ÜÀíϵͳ£¬Í¨¹ýÈÝÆ÷±àÅż¼Êõ½«°²È«ÈÝÆ÷²¿ÊðÓÚÈÝÆ÷»·¾³ÖУ¬½øÐгÖÐøµÄ¼ì²âºÍ·ÖÎö£¬ÊµÏÖÈÝÆ÷»·¾³µÄ×ÊÔ´¿ÉÊÓ»¯¹ÜÀí¡¢¾µÏñ·çÏÕ¹ÜÀí¡¢ÈÝÆ÷ÔËÐÐʱ°²È«¹ÜÀí¡¢ºÏ¹æÐÔ¼ì²âºÍ΢·þÎñAPI·çÏÕ¹ÜÀí£¬×îÖÕ±£ÕÏÈÝÆ÷ÔÚ¹¹½¨¡¢²¿ÊðºÍÔËÐÐÕû¸öÉúÃüÖÜÆÚµÄ°²È«¡£
4.1 ×ÜÌå¼Ü¹¹
ÈÝÆ÷°²È«·À»¤·½°¸²ÉÓÃÄ£¿é»¯ºÍ·Ö²ãÉè¼Æ£¬Í¨¹ýÓëÈÝÆ÷ÔËÐл·¾³½øÐжԽӣ¬ÊµÊ±»ñÈ¡ÈÝÆ÷»·¾³ÖеľµÏñºÍÈÝÆ÷µÈ¶ÔÏóµÄÏà¹ØÐÅÏ¢£¬ÀûÓø÷ÖÖ°²È«ÄÜÁ¦½øÐÐ¼à¿ØºÍ·ÖÎö£¬½øÐÐͳһµÄ°²È«¹ÜÀí£¬×îºóͨ¹ýͼÐλ¯·½Ê½ÎªÓû§Õ¹Ê¾ÈÝÆ÷»·¾³µÄ°²È«Ì¬ÊÆ¡£

ͼ5 ÈÝÆ÷°²È«·À»¤¼Ü¹¹
°²È«¹ÜÀí²ã£º¸ºÔð°²È«¹ÜÀí¹¦ÄÜ£¬°üÀ¨ÈÝÆ÷»·¾³µÄ×ʲú¹ÜÀí¡¢²ßÂÔ¹ÜÀíºÍ°²È«ÄÜÁ¦¹ÜÀíµÈ£¬Í¨¹ý°²È«ÄÜÁ¦ÊÊÅ佫¸÷ÖÖ¹ÜÀíÐÅϢϷ¢¸ø¸÷ÖÖ°²È«ÄÜÁ¦£¬ÒÔ¼°ÊÕ¼¯¸÷ÖÖ°²È«ÐÅÏ¢£¬¾¼¯ÖзÖÎöºÍ´¦Àíºó£¬¼¯ÖжÔÓû§Õ¹Ê¾ÈÝÆ÷»·¾³µÄÖ÷»ú¡¢ÈÝÆ÷¡¢¾µÏñºÍÍøÂçµÈ¶ÔÏóµÄ°²È«×´Ì¬¡£
°²È«ÄÜÁ¦²ã£º¸ºÔðÌṩ¾ßÌ尲ȫÄÜÁ¦£¬ÎªÈÝÆ÷»·¾³Ìṩ°²È«±£»¤£¬°²È«ÄÜÁ¦É漰ϵͳ°²È«É¨Ãè¡¢¾µÏñÎļþ·ÖÎö¡¢¶ñÒâÎļþ·ÖÎö¡¢ÈëÇÖ¼ì²âºÍ΢¸ôÀëµÈ¡£
ÔËÐл·¾³²ã£º¸ºÔðÌṩÈÝÆ÷¾µÏñ¡¢ÈÝÆ÷±àÅŹÜÀíµÈ¹¦ÄÜ£¬ÒÔ¼°ÔËÐÐÓ¦ÓóÌÐòµÄÈÝÆ÷£¬²¢ÓëÈÝÆ÷ÄÜÁ¦²ã½øÐн»»¥£¬¹²Í¬ÊµÏÖÈÝÆ÷°²È«·À»¤¡£
4.2 ÈÝÆ÷È«ÉúÃüÖÜÆÚ±£»¤
¸ù¾ÝÈÝÆ÷°²È«·À»¤¼Ü¹¹£¬±¾·½°¸½«¸÷ÖÖ°²È«ÄÜÁ¦ÓëDevOpsÁ÷Ë®ÏßÏà½áºÏ£¬´Ó³ÖÐø¼¯³É/³ÖÐø²¿ÊðºÍÔËÐÐʱ½øÐа²È«·À»¤£¬ÎªÈÝÆ÷Ìṩ¹¹½¨¡¢²¿ÊðºÍÔËÐеÄÈ«ÉúÃüÖÜÆÚ±£»¤£¬×îÖÕʵÏÖÓ¦ÓÃϵͳµÄ°²È«ÔËÐС£

ͼ6 ÈÝÆ÷È«ÉúÃüÖÜÆÚ±£»¤
4.2.1 ¹¹½¨°²È«
ÔÚÓ¦ÓóÌÐò¹¹½¨½×¶Î£¬Í¨¹ýÓëCI/CDÁ÷Ë®Ïß¼¯³É£¬·ÖÎö¹¹½¨¾µÏñʱËùʹÓõÄÃüÁîºÍÅäÖòÎÊý£¬»¹Ô¾µÏñÎļþ¹¹½¨¹ý³Ì£¬ÕÆÎÕÃüÁîʹÓõÄÃô¸Ð²Ù×÷£¬ÒÔ¼°·ÖÎö¾µÏñÎļþÊÇ·ñ°üº¬ÃÜÂë¡¢ÁîÅÆ¡¢ÃÜÔ¿ºÍÓû§»úÃÜÐÅÏ¢µÈÃô¸ÐÐÅÏ¢¡£Í¬Ê±£¬·ÖÎö¾µÏñµÄÈí¼þ×é³É£¬·¢ÏÖ¾µÏñÎļþÖаüº¬µÄ¶ñÒâÎļþ¡¢²¡¶¾ºÍľÂí£¬ÒÔ¼°ËùʹÓõÄÒÀÀµ¿âºÍ×é¼þ´æÔڵݲȫ©¶´£¬±ÜÃâ´ø²¡½»¸¶¡£
4.2.2 ²¿Êð°²È«
·ÖÎö¾µÏñÎÞ·çÏպ󣬾µÏñ±»Ìá½»ÖÁ¾µÏñ²Ö¿â¡£Ôڸý׶Σ¬½«¼ì²éÈÝÆ÷»·¾³µÄ¾µÏñ²Ö¿âÅäÖã¬È·±£Ê¹ÓüÓÃÜ·½Ê½Á¬½Ó¾µÏñ²Ö¿â¡£Í¨¹ýÓëK8SÁª¶¯£¬µ±¾µÏñ²Ö¿âÖÐÐÂÔö¾µÏñ»òʹÓþµÏñ´´½¨ÈÝÆ÷ʱ£¬×Ô¶¯»¯Ð£Ñé¾µÏñÇ©Ãû»òMD5Öµ£¬È·±£¾µÏñÀ´Ô´¿ÉÐÅÇÒδ±»´Û¸Ä£¬Ò»µ©·¢ÏÖ¾µÏñÀ´Ô´²»¿ÉÐÅ»ò±»´Û¸Ä£¬½ûֹʹÓøþµÏñ´´½¨ÈÝÆ÷¡£
4.2.3 ÔËÐа²È«
µ±È·ÈϾµÏñ°²È«ºó£¬½øÈëµ½ÈÝÆ÷ÔËÐн׶Ρ£Ôڸý׶ÎÀûÓÃϵͳ°²È«É¨ÃèÄÜÁ¦£¬»ùÓÚDockerºÍK8S CIS
»ùÏߣ¬¶ÔÖ÷»úºÍÈÝÆ÷±àÅŹ¤¾ßK8S½øÐкϹæÐÔ¼ì²é£¬¼ì²é·¶Î§°üÀ¨Ö÷»ú°²È«ÅäÖá¢DockerÊØ»¤½ø³ÌÅäÖá¢DockerÊØ»¤³ÌÐòÅäÖÃÎļþ¡¢ÈÝÆ÷¾µÏñºÍ¹¹½¨¡¢ÈÝÆ÷ÔËÐа²È«ºÍDocker°²È«²Ù×÷µÈ£¬È·±£ÈÝÆ÷ÔËÐл·¾³°²È«¡£
ͬʱ£¬ÀûÓÃ΢¸ôÀë¶ÔÈÝÆ÷½øÐÐÍøÂç¸ôÀ룬ͨ¹ýÈëÇÖ¼ì²âÄÜÁ¦ÊµÊ±¼à²âÈÝÆ÷ÔËÐÐ״̬£¬¼à²â¶ÔÏó°üÀ¨ÈÝÆ÷ÄÚÔËÐнø³Ì£¨Èçnetlink
socket¡¢perf eventºÍeBPF£©ºÍÎļþϵͳ£¬ÒÔ¼°Ö÷»ú»·¾³µÄȨÏÞÌáÉýºÍÆÆ»µÈÝÆ÷¸ôÀëÐÔµÈÐÐΪ¡£µ±·¢ÏÖÈÝÆ÷ÔËÐÐÒ쳣ʱ£¬ÀûÓ÷ÃÎÊ¿ØÖÆ»úÖÆÏÞÖÆÈÝÆ÷½øÒ»²½µÄÐÐΪºÍͨÐÅ¡£
½áÓï
°éËæ×ÅÔÆÔÉúÓ¦Ó÷¢Õ¹£¬Æóҵͨ¹ý΢·þÎñÀ´½»¸¶Ó¦ÓÃϵͳµÄ±ÈÀýÔÚÔö¼Ó£¬ÈÝÆ÷°²È«Ò²½«²»½ö½öÊÇÈÝÆ÷×ÔÉíºÍÈÝÆ÷»·¾³°²È«£¬½«ÑÓÉ쵽΢·þÎñ°²È«ºÍÓ¦Óð²È«£¬ÆóÒµÔÚÓ¦ÓÃÔÆÔÉú¼¼Êõʱ£¬Ó¦ÕûÌ忼ÂÇÈÝÆ÷°²È«£¬Èð²È«ÓëÔÆÔÉúÏàÈںϣ¬¸üºÃµÄ±£»¤Ó¦ÓÃϵͳ¡£ |