ÔÆÔÉúʱ´ú£¬ÔõÑù¡°Íæ×ª¡±ÈÝÆ÷Çå¾²£¿
2021-05-21
1. СÐò
Ëæ×ÅÔÆÅÌËãµÄÉú³¤£¬ÒÔÈÝÆ÷ºÍ΢·þÎñΪ´ú±íµÄÔÆÔÍâÐÐÒÕ£¬Êܵ½ÁËÈËÃÇµÄÆÕ±é¹Ø×¢£¬ÆäÖÐDockerºÍKubernetes£¨ÒÔϼò³Æ“K8S”£©ÊÇÆóÒµÈÝÆ÷ÔËÐÐʱºÍÈÝÆ÷±àÅŵÄÖ÷ҪѡÔñ¡£È»¶ø£¬ÔÚÓ¦ÓÃÈÝÆ÷ºÍK8SÀú³ÌÖУ¬´ó´ó¶¼ÆóÒµ¶¼Óöµ½¹ý²î±ðˮƽµÄÇå¾²ÎÊÌ⣬ÔõÑù°ü¹ÜÈÝÆ÷Çå¾²£¬ÒѳÉΪÆóÒµ×îÌåÌùµÄÎÊÌâ¡£
2. Ó¦ÓÃÈÝÆ÷´øÀ´ÐÂÌôÕ½
ÈÝÆ÷Ó¦ÓÃ֮ǰ£¬ÔÆÖÐÓ¦ÓÃϵͳ´ó¶¼ÔËÐÐÓÚÐéÄâ»úÉÏ£¬µ«ÐéÄâ»úÈÔ»áÓÐÌØÁíÍâ×ÊÔ´ÆÌÕźÍά»¤±¾Ç®£¬²¢ÇÒÆäÆô¶¯ËÙÂʽÏÂý¡£ÈÝÆ÷ÊÖÒÕÒò¾ßÓÐÕ¼ÓÃ×ÊÔ´ÉÙ¡¢°²ÅÅËÙÂÊ¿ìºÍ±ãÓÚǨáãµÈÌØµã£¬×îÏÈÊܵ½ÆóÒµÇàíù¡£Ôڵ䷶µÄÔÆÔÉúÇéÐÎÖУ¬Í¨³£°üÀ¨Ö÷»ú¡¢¾µÏñ¡¢ÈÝÆ÷¡¢ÈÝÆ÷±àÅÅÆ½Ì¨¡¢ÍøÂçºÍ΢·þÎñµÈ¹¤¾ß£¬µ«ÓÉÓÚÏÖÔÚ´ó¶¼ÆóҵʹÓÃÈÝÆ÷ÊÖÒÕ°²ÅÅÓªÒµÓ¦Ó㬹ÊÏÂÃæ½«ÖصãÆÊÎöÓëÈÝÆ÷Ïà¹ØµÄÇå¾²ÌôÕ½¡£
2.1 ÈÝÆ÷ÊÖÒÕΣº¦
×÷ΪһÖÖ²Ù×÷ϵͳÐéÄ⻯ÊÖÒÕ£¬ÈÝÆ÷¹²Ïí²Ù×÷ϵͳÄںˣ¬µ«²¢Î´ÊµÏÖÍêÈ«¸ôÀ룬ÈôÐéÄ⻯Èí¼þ±£´æÎó²î£¬»òËÞÖ÷»ú±»¹¥»÷£¬½«»áÔì³ÉÈÝÆ÷ÌÓÒÝ»ò×ÊÔ´¸ôÀëʧЧ£¬Ó°Ïìij¸öÈÝÆ÷»ò¶à¸öÈÝÆ÷µÄÇå¾²¡£
ÈÝÆ÷ÌÓÒÝ£ºÊ¹ÓÃÐéÄ⻯Èí¼þ±£´æµÄÎó²î£¬¹¥»÷Õßͨ¹ýÈÝÆ÷»ñÈ¡Ö÷»úȨÏÞ£¬¿É¹¥»÷ÈÝÆ÷ËùÔÚÖ÷»ú£¬ÉõÖÁÊǸÃÖ÷»úÉÏµÄÆäËûÈÝÆ÷¡£ÒÑÍù¼¸ÄêÄÚÒѾ·¢Ã÷Á˶à¸öÏà¹ØÎó²î£¬ÆäÖÐCVE-2019-5736ÊÇRunCµÄÒ»¸öÇå¾²Îó²î£¬Ëü»áµ¼ÖÂ18.09.2°æ±¾Ç°µÄDockerÔÊÐí¶ñÒâÈÝÆ÷ÁýÕÖËÞÖ÷»úÉϵÄRunC¶þ½øÖÆÎļþ£¬Ê¹¹¥»÷ÕßÄܹ»ÒÔRootÉí·ÝÔÚËÞÖ÷»úÉÏÖ´ÐÐí§ÒâÏÂÁî¡£
×ÊÔ´¸ôÀëʧЧ£º¹¥»÷ÕßÖ»Òª¹¥ÆÆÈÝÆ÷²Ù×÷ϵͳÄںˣ¬¾Í¿É»á¼ûµ½Ö÷»úÉϵÄÎļþϵͳ£¬»ò½øÈëÆäËüÈÝÆ÷£¬µ¼ÖÂÈÝÆ÷¸ôÀëʧЧ¡£ÈôÊǰÑÖ÷»úµÄÎļþϵͳ¹ÒÔØµ½¶à¸öÈÝÆ÷µÄĿ¼ÀÈÝÆ÷¾Í¿ÉÒÔ»á¼ûͳһ¸öĿ¼£¬½«»áÒýÆðÐÅϢй¶»òÄÚÈݸ͝µÈÇå¾²ÎÊÌâ¡£
2.2 ²»Çå¾²µÄ¾µÏñ
¾µÏñÊÇÒ»¸ö°üÀ¨Ó¦ÓÃ/·þÎñÔËÐÐËù±ØÐèµÄ²Ù×÷ϵͳºÍÓ¦ÓÃÎļþµÄÜöÝÍ£¬ÓÃÓÚ½¨ÉèÒ»¸ö»ò¶à¸öÈÝÆ÷£¬ËüÃÇÖ®¼äϸÃÜÁªÏµ£¬¾µÏñµÄÇå¾²ÐÔ½«»áÓ°ÏìÈÝÆ÷Çå¾²¡£Æ¾Ö¤¾µÏñ½¨ÉèºÍʹÓ÷½·¨£¬Í¨³£ÓÐÈý¸öÒòËØÓ°Ïì¾µÏñÇå¾²¡£
ÏÖÓоµÏñ²»Çå¾²£º¾µÏñͨ³£ÊÇ¿ª·¢Õß»ùÓÚij¸öÏÖÓоµÏñ½¨ÉèµÄ£¬ÎÞÂÛÊǹ¥»÷ÕßÉÏ´«µÄ¶ñÒâ¾µÏñ£¬ÕÕ¾ÉÏÖÓоµÏñ±£´æµÄÇ徲ȱÏÝ£¬»ùÓÚËü½¨ÉèµÄ¾µÏñ¶¼½«»áÊDz»Çå¾²µÄ¡£
ʹÓðüÀ¨Îó²îµÄÈí¼þ£º¿ª·¢Õß¾³£»áʹÓÃÈí¼þ¿âµÄ´úÂë»òÈí¼þ£¬ÈôÊÇËüÃ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£©ºÍÎļþϵͳ£¬ÒÔ¼°Ö÷»úÇéÐεÄȨÏÞÌáÉýºÍÆÆËðÈÝÆ÷¸ôÀëÐÔµÈÐÐΪ¡£µ±·¢Ã÷ÈÝÆ÷ÔËÐÐÒ쳣ʱ£¬Ê¹Óûá¼û¿ØÖÆ»úÖÆÏÞÖÆÈÝÆ÷½øÒ»²½µÄÐÐΪºÍͨѶ¡£
½áÓï
Åãͬ×ÅÔÆÔÉúÓ¦ÓÃÉú³¤£¬Æóҵͨ¹ý΢·þÎñÀ´½»¸¶Ó¦ÓÃϵͳµÄ±ÈÀýÔÚÔöÌí£¬ÈÝÆ÷Çå¾²Ò²½«²»µ«½öÊÇÈÝÆ÷×ÔÉíºÍÈÝÆ÷ÇéÐÎÇå¾²£¬½«ÑÓÉ쵽΢·þÎñÇå¾²ºÍÓ¦ÓÃÇå¾²£¬ÆóÒµÔÚÓ¦ÓÃÔÆÔÍâÐÐÒÕʱ£¬Ó¦ÕûÌå˼Á¿ÈÝÆ÷Çå¾²£¬ÈÃÇå¾²ÓëÔÆÔÉúÏàÈںϣ¬¸üºÃµÄ±£»¤Ó¦ÓÃϵͳ¡£

¾ÅÓÎÀϸçÔÆ







