Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Qunar ÔÆÔ­ÉúÈÝÆ÷»¯ÂäµØÊµ¼ù
 
×÷Õߣº×ÞêÉ
  1027  次浏览      29
 2021-11-19
 
±à¼­ÍƼö:
±¾ÎÄÖ÷Òª½²½âÁËQunar ÈÝÆ÷»¯·¢Õ¹Ê±¼äÏß¡¢Â䵨¹ý³ÌÓëʵ¼ù¡¢ÈÝÆ÷»¯Â䵨¹ý³ÌÖÐÅöµ½µÄÎÊÌâ¼°¶ÔδÀ´µÄÕ¹Íû¡£
±¾ÎÄÀ´×ÔÓÚ΢ÐŹ«ÖÚºÅÇàÔÆ¼¼ÊõÉçÇø£¬ÓÉLinda±à¼­¡¢ÍƼö¡£

±³¾°

½ü¼¸Äê£¬ÔÆÔ­ÉúºÍÈÝÆ÷¼¼Êõ·Ç³£»ð±¬£¬ÇÒÈÕÇ÷³ÉÊ죬ÖÚ¶àÆóÒµÂýÂý¿ªÊ¼ÈÝÆ÷»¯½¨É裬²¢ÔÚÔÆÔ­Éú¼¼Êõ·½ÏòÉϲ»¶ÏµÄ̽Ë÷ºÍʵ¼ù¡£»ùÓÚÕâ¸ö´óµÄÇ÷ÊÆ£¬ 2020 Äêµ× Qunar Ò²ÏòÔÆÔ­ÉúÂõ³öÁ˵ÚÒ»²½¡ª¡ªÈÝÆ÷»¯¡£

ÔÆÔ­ÉúÊÇһϵÁпÉÒÔΪҵÎñ¸³Äܵļ¼Êõ¼Ü¹¹×¼Ôò£¬×ñÑ­Ëü¿ÉÒÔʹӦÓþßÓÐÀ©Õ¹ÐÔ¡¢ÉìËõÐÔ¡¢ÒÆÖ²ÐÔ¡¢ÈÍÐÔµÈÌØµã¡£ÔÆÔ­ÉúÒ²ÊÇÏÂÒ»´ú¼¼ÊõÕ»µÄ±ØÑ¡ÏËü¿ÉÒÔÈÃÒµÎñ¸üÃô½Ý¡£Í¨¹ýʵ¼ù DevOps¡¢Î¢·þÎñ¡¢ÈÝÆ÷»¯¡¢¿É¹Û²âÐÔ¡¢·´´àÈõÐÔ(chaos engineering)¡¢ServiceMesh¡¢Serverless µÈÔÆÔ­Éú¼¼ÊõÕ»£¬ÎÒÃDZã¿ÉÒÔÏíÊܵ½ÔÆÔ­Éú´øÀ´µÄ¼¼ÊõºìÀû¡£

Qunar ÈÝÆ÷»¯·¢Õ¹Ê±¼äÏß

Ò»Ïîм¼ÊõÒªÔÚÆóÒµÄÚ²¿Â䵨´ÓÀ´¶¼²»ÊÇÒ»õí¶ø¾ÍµÄ£¬Qunar µÄÈÝÆ÷»¯ÂäµØÒ²Í¬ÑùÈç´Ë¡£Qunar µÄÈÝÆ÷ºóÂ䵨Ö÷Òª¾­ÀúÁË 4 ¸öʱ¼ä½Úµã:

2014 - 2015:

ÒµÎñÏßͬѧ¿ªÊ¼³¢ÊÔͨ¹ý Docker¡¢Docker-Compose À´½â¾öÁªµ÷»·¾³´î½¨À§ÄѵÄÎÊÌ⣬²»¹ýÓÉÓÚ Docker-Compose µÄ±àÅÅÄÜÁ¦ÓÐÏÞ¡¢ÎÞ·¨½â¾öÕæÊµµÄ»·¾³ÎÊÌ⣬Òò´ËÈÝÆ÷»¯×îºóҲûÓÐÍÆÐÐÆðÀ´¡£

2015 - 2017:

ops ÍŶӰÑΪÁËÌá¸ß ELK ¼¯ÈºµÄÔËάЧÂÊ£¬°Ñ ES ¼¯ÈºÇ¨ÒƵ½ÁË Mesos ƽ̨ÉÏ¡£ºóÀ´Ëæ×Å K8s Éú̬µÄ³ÉÊ죬°Ñ ES ¼¯Èº´Ó Mesos Ç¨ÒÆµ½ÁË K8s ƽ̨£¬ÔËάЧÂʵõ½Á˽øÒ»²½µÄÌáÉý¡£

2018 - 2019:

ÔÚÒµÎñÐèÇó²»¶ÏÔö¼ÓµÄ¹ý³ÌÖУ¬ÒµÎñ¶Ô²âÊÔ»·¾³µÄ½»¸¶ËٶȺÍÖÊÁ¿ÓÐÁ˸ü¸ßµÄÒªÇó£¬ÎªÁ˽â¾ö MySQL µÄ½»¸¶Ð§ÂÊÎÊÌâ( ²¢·¢Á¿´óʱ£¬ÍøÂç IO ³ÉΪÁËÆ¿¾±£¬µ¼Öµ¥¸öʵÀý½»¸¶Ê±³¤ÔÚ·ÖÖÓ¼¶)£¬ÎªÁ˽âÕâ¸öÎÊÌ⣬ÎÒÃÇ°Ñ MySQL ÈÝÆ÷»¯£¬Í¨¹ý Docker on host µÄģʽ¿ÉÒÔÔÚ 10 ÃëÖ®ÄھͿÉÒÔ½»¸¶Ò»¸ö MySQL ʵÀý¡£

2020 - 2021:

ÔÆÔ­Éú¼¼ÊõÒѾ­·Ç³£³ÉÊìÁË£¬Qunar Ò²¾ö¶¨Í¨¹ýÓµ±§ÔÆÔ­ÉúÀ´ÎªÒµÎñÔö¼ÓÊÆÄÜ¡£ÔÚ¸÷¸öÍŶӯëÐÄЭÁ¦µÄŬÁ¦Ï£¬300+ µÄ P1¡¢P2 Ó¦ÓÃÒѾ­Íê³ÉÁËÈÝÆ÷»¯£¬²¢ÇҼƻ®ÔÚ 2021 ÄêÄêµ×È«²¿ÒµÎñÓ¦ÓÃʵÏÖÈÝÆ÷»¯¡£

Â䵨¹ý³ÌÓëʵ¼ù

ÈÝÆ÷»¯ÕûÌå·½°¸½éÉÜ

Qunar ÔÚ×öÈÝÆ÷»¯¹ý³ÌÖУ¬¸÷¸öϵͳ Portal ƽ̨¡¢Öмä¼þ¡¢ops »ù´¡ÉèÊ©¡¢¼à¿ØµÈ¶¼×öÁËÏàÓ¦µÄÊÊÅä¸ÄÔ죬¸ÄÔìºóµÄ¼Ü¹¹¾ØÕóÈçÏÂͼËùʾ¡£

Portal£ºQunar µÄ PaaS ƽ̨Èë¿Ú£¬Ìṩ CI/CD ÄÜÁ¦¡¢×ÊÔ´¹ÜÀí¡¢×ÔÖúÔËά¡¢Ó¦Óû­Ïñ¡¢Ó¦ÓÃÊÚȨ(db ÊÚȨ¡¢Ö§¸¶ÊÚȨ¡¢Ó¦ÓüäÊÚȨ)µÈ¹¦ÄÜ¡£

ÔËά¹¤¾ß£ºÌṩӦÓõĿɹ۲âÐÔ¹¤¾ß, °üÀ¨ watcher£¨¼à¿ØºÍ±¨¾¯£©¡¢bistoury £¨Java Ó¦ÓÃÔÚÏß Debug£©¡¢qtrace£¨tracing ϵͳ£©¡¢loki/elk£¨ÌṩʵʱÈÕÖ¾/ÀëÏßÈÕÖ¾²é¿´£©¡£

Öмä¼þ£ºÓ¦ÓÃÓõ½µÄËùÓÐÖмä¼þ£¬mq¡¢ÅäÖÃÖÐÐÄ¡¢·Ö²¼Ê½µ÷¶Èϵͳ qschedule¡¢dubbo ¡¢mysql sdk µÈ¡£

ÐéÄ⻯¼¯Èº£ºµ×²ãµÄ K8s ºÍ OpenStack ¼¯Èº¡£

Noah£º²âÊÔ»·¾³¹ÜÀíÆ½Ì¨£¬Ö§³ÖÓ¦Óà KVM/ÈÝÆ÷»ìºÏ²¿Êð¡£

CI/CD Á÷³Ì¸ÄÔì

CI/CD ¸ÄÔìǰ

CI/CD ¸ÄÔìºó

Ö÷Òª¸ÄÔìµã:

Ó¦Óû­Ïñ: °ÑÓ¦ÓÃÏà¹ØµÄÔËÐÐʱÅäÖᢰ×Ãûµ¥ÅäÖᢷ¢²¼²ÎÊýµÈÊÕÁ²µ½Ò»Æð£¬ÎªÈÝÆ÷·¢²¼ÌṩͳһµÄÉùÃ÷ʽÅäÖá£

ÊÚȨϵͳ: Ó¦ÓÃËùÓеÄÊÚȨ²Ù×÷¶¼Í¨¹ýÒ»¸öÈë¿Ú½øÐУ¬²¢ÊµÏÖ×Ô¶¯»¯µÄÊÚȨ¡£

K8s ¶à¼¯Èº·½°¸: ͨ¹ýµ÷ÑжԱȣ¬KubeSphere ¶ÔÔËάÓÅ»¯¡¢Ñ¹²âÆÀ¹ÀºóÒ²Âú×ãÎÒÃǶÔÐÔÄܵÄÒªÇó£¬×îÖÕÎÒÃÇѡȡÁË KubeSphere ×÷Ϊ¶à¼¯Èº·½°¸¡£

Öмä¼þÊÊÅä¸ÄÔì

¸ÄÔì¹Ø×¢µã£ºÓÉÓÚÈÝÆ÷»¯ºó£¬IP ¾­³£±ä»¯Êdz£Ì¬£¬ËùÒÔ¸÷¸ö¹«¹²×é¼þºÍÖмä¼þÒªÊÊÅäºÍ½ÓÊÜÕâÖֱ仯¡£

Ó¦ÓÃÆ½»¬Ç¨ÒÆ·½°¸Éè¼Æ

ΪÁ˰ïÖúÒµÎñ¿ìËÙÆ½»¬µØÇ¨ÒƵ½ÈÝÆ÷£¬ÎÒÃÇÖÆ¶¨ÁËһЩ¹æ·¶ºÍ×Ô¶¯»¯²âÊÔÑéÖ¤µÈ²Ù×÷À´ÊµÏÖÕâ¸öÄ¿±ê¡£

ÈÝÆ÷»¯µÄǰÖÃÌõ¼þ: Ó¦ÓÃÎÞ״̬¡¢²»´æÔÚ post_offline hook£¨·þÎñÏÂÏߺóÖ´ÐеĽű¾£©¡¢check_url Öв»´æÔÚÔ¤ÈȲÙ×÷¡£

²âÊÔ»·¾³ÑéÖ¤: ×Ô¶¯Éý¼¶ SDK¡¢×Ô¶¯Ç¨ÒÆ¡£ÎÒÃÇ»áÔÚ±àÒë½×¶Î°ïÖúÒµÎñ×Ô¶¯Éý¼¶ºÍ¸ü¸Ä pom ÎļþÀ´Íê³É SDK µÄÉý¼¶£¬²¢ÔÚ²âÊÔ»·¾³²¿ÊðºÍÑéÖ¤£¬Èç¹ûÉý¼¶Ê§°Ü»á֪ͨÓû§²¢Ìáʾ¡£

ÏßÉÏÑéÖ¤: µÚÒ»²½ÏßÉÏ·¢²¼£¬µ«²»½ÓÏßÉÏÁ÷Á¿£¬È»ºóͨ¹ý×Ô¶¯»¯²âÊÔÑéÖ¤£¬Ñé֤ͨ¹ýºó½ÓÈëÏßÉÏÁ÷Á¿¡£

ÏßÉÏ KVM ÓëÈÝÆ÷»ì²¿Ê𣺱£ÏÕÆð¼û£¬ÏßÉϵÄÈÝÆ÷ºÍ KVM »áͬʱÔÚÏßÒ»¶Îʱ¼ä£¬µÈÑéÖ¤ÆÚ¹ýºóÔÙÖð²½ÏÂÏß KVM¡£

ÏßÉÏÈ«Á¿·¢²¼: È·ÈÏ·þÎñûÎÊÌâºó£¬ÏÂÏß KVM¡£

¹Û²ì: ¹Û²ìÒ»¶Îʱ¼ä£¬Èç¹ûûÓÐÎÊÌâÔò»ØÊÕ KVM¡£

ÈÝÆ÷»¯Â䵨¹ý³ÌÖÐÅöµ½µÄÎÊÌâ

ÈçºÎ¼æÈݹýÈ¥ KVM µÄʹÓ÷½Ê½£¬²¢Ö§³Ö preStart¡¢preOnline hook ×Ô¶¨Òå½Å±¾£¿

KVM ³¡¾°ÖÐ hook ½Å±¾Ê¹Óó¡¾°½éÉÜ£º

preStart hook : Óû§ÔÚÕâ¸ö½Å±¾Öлá×Ô¶¨ÒåÃüÁ±ÈÈç»·¾³×¼±¸¡£

preOnline hook£ºÓû§»á¶¨ÒåһЩÊý¾ÝÔ¤ÈȲÙ×÷µÈ£¬Õâ¸ö¶¯×÷ÐèÒªÔÚÓ¦Óà checkurl ͨ¹ý²¢ÇÒ½ÓÈëÁ÷Á¿Ç°Ö´ÐС£

ÎÊÌâµã£º

K8s Ô­ÉúÖ»ÌṩÁË preStop¡¢postStart 2 ÖÖ hook, ËüÃǵÄÖ´ÐÐʱ»úûÓÐÂú×ãÉÏÊö 2 ¸ö KVM ³¡¾°ÏÂÒµÎñÓõ½µÄ hook¡£

·ÖÎöÓë½â¾ö¹ý³Ì:

preStart hook£ºÔÚ entrypoint ÖÐ×¢Èë preStart hook ½×¶Î£¬ÈÝÆ÷Æô¶¯¹ý³ÌÖз¢ÏÖÓÐ×Ô¶¨ÒåµÄ preStart ½Å±¾ÔòÖ´Ðиýű¾£¬ÖÁÓÚÕâ¸ö½Å±¾µÄλÖÃĿǰ¹æ·¶ÊǶ¨ÒåÔÚ´úÂëÖ¸¶¨Ä¿Â¼Ï¡£

preOnline hook£ºÓÉÓÚ preOnline ½Å±¾Ö´ÐÐʱ»úÊÇÔÚÓ¦Óà checkurl ͨ¹ýºó£¬¶øÓ¦ÓÃÈÝÆ÷Êǵ¥½ø³Ì£¬ËùÒÔÔÚÓ¦ÓÃÈÝÆ÷ÖÐÖ´ÐÐÕâ¸öÊÇÐв»Í¨µÄ¡£¶ø postStart hook µÄÉè¼Æ¾ÍÊÇÒì²½µÄ£¬ÓëÓ¦ÓÃÈÝÆ÷µÄÆô¶¯Ò²ÊǽâñîµÄ£¬ ËùÒÔÎÒÃdzõ²½µÄ·½°¸Ñ¡ÔñÁË postStart hook ×öÕâ¸öÊÂÇ顣ʵʩ·½°¸ÊÇ postStart hook Ö´Ðкó»á²»¶ÏÂÖѯӦÓõĽ¡¿µ×´Ì¬£¬Èç¹û½¡¿µ¼ì²â checkurl ͨ¹ýÁË, ÔòÖ´ÐÐ preOnline ½Å±¾¡£½Å±¾³É¹¦ºóÔò½øÐÐÉÏÏß²Ù×÷, ¼´ÔÚÓ¦ÓÃĿ¼Ï´´½¨ healthcheck.html Îļþ£¬OpenResty ºÍÖмä¼þ·¢ÏÖÕâ¸öÎļþºó¾Í»á°ÑÁ÷Á¿½ÓÈëµ½Õâ¸öʵÀýÖС£

°´ÕÕÉÏÃæµÄ·½°¸£¬Pod µÄ×é³ÉÉè¼ÆÈçÏ£º

·¢²¼¹ý³Ì¶Á²»µ½±ê×¼ÊäÈëÊä³ö

³¡¾°½éÉÜ£º

ÔÚÈÝÆ÷·¢²¼¹ý³ÌÖÐÈç¹ûÓ¦ÓÃÆô¶¯Ê§°Ü£¬ÎÒÃÇͨ¹ý K8s API ÊÇÄò»µ½ÊµÊ±µÄ±ê×¼ÊäÈëÊä³öÁ÷£¬Ö»Äܵȵ½·¢²¼ÉèÖõij¬Ê±ãÐÖµ£¬Õâ¸ö¹ý³ÌÖз¢²¼ÈËÔ±ÐÄÀïÊǺܽ¹¼±µÄ£¬ÒòΪ²»È·¶¨·¢ÉúÁËʲô¡£ÈçÏÂͼËùʾ£¬²¿Êð¹ý³ÌÖÐÓ¦Óõĸüй¤×÷Á÷ÖÐʲô¶¼¿´²»µ½¡£

ÎÊÌâµã:

K8s API ΪʲôÄò»µ½±ê×¼ÊäÈëÊä³ö£¿

·ÖÎöÓë½â¾ö¹ý³Ì£º

ͨ¹ý kubectl logs ²é¿´µ±Ê±µÄ Pod ÈÕÖ¾£¬Ê²Ã´¶¼Ã»ÓÐÄõ½£¬³¬Ê±Ê±¼ä¹ýºó²ÅÄõ½¡£ËµÃ÷ÎÊÌâ²»ÔÚ³ÌÐò±¾Éí£¬¶øÊÇÔÚ K8s µÄ»úÖÆÉÏ£»

²é¿´ postStart Hook µÄÏà¹ØÎĵµ£¬ÓÐÒ»¶Î½éÉÜÌáµ½ÁË postHook Èç¹ûÖ´ÐÐʱ¼ä³¤»òÕß hang ס£¬ÈÝÆ÷µÄ״̬Ҳ»á hang ס£¬²»»á½øÈë running ״̬, ¿´µ½ÕâÌõÐÅÏ¢£¬´ó¸Å²Â²âµ½×ï¿ý»öÊ×¾ÍÊÇÕâ¸ö postStart hook ÁË¡£

»ùÓÚÉÏÃæµÄ²Â²â£¬°Ñ postStart hook È¥µôºó²âÊÔ£¬Ó¦ÓÃÈÝÆ÷µÄ±ê×¼ÊäÈë¿ÉÒÔʵʱÄõ½ÁË¡£

ÕÒµ½ÎÊÌâºó£¬½â¾ö·½·¨Ò²¾Í¼òµ¥ÁË£¬°Ñ postStart hook ÖÐʵÏֵŦÄܷŵ½ Sidecar ÖоͿÉÒÔ½â¾ö¡£ÖÁÓÚ Sidecar ÈçºÎÔÚÓ¦ÓÃÈÝÆ÷µÄĿ¼Öд´½¨ healthcheck.html Îļþ£¬¾ÍÐèÒªÓõ½¹²Ïí¾íÁË¡£Ðµķ½°¸Éè¼ÆÈçÏ£º

ʹÓÃÉÏÊö·½°¸ºó£¬·¢²¼Á÷³ÌµÄ±ê×¼ÊäÈëÊä³ö¡¢×Ô¶¨Òå hook ½Å±¾µÄÊä³ö¡¢Pod ʼþµÈ¶¼ÊÇʵʱ¿É¼ûµÄÁË, ·¢²¼¹ý³Ì¸ü͸Ã÷ÁË¡£

²¢·¢À­È¡¾µÏñ³¬Ê±

³¡¾°½éÉÜ£º

ÎÒÃǵÄÓ¦ÓÃÊǶà»ú·¿¶à¼¯Èº²¿ÊðµÄ£¬µ±Ò»¸öÓ¦ÓõÄа汾·¢²¼Ê±£¬ÓÉÓÚÓ¦ÓõÄʵÀýÊý½Ï¶à£¬ÓÐ 50+ ¸ö²¢·¢´Ó harbor À­È¡¾µÏñʱ£¬ÆäÖÐһЩÈÎÎñÊÕµ½Á˾µÏñÀ­È¡³¬Ê±µÄ±¨´íÐÅÏ¢£¬½ø¶øµ¼ÖÂÕû¸ö·¢²¼ÈÎÎñʧ°Ü¡£³¬Ê±Ê±¼äÊÇ kubelet ĬÈÏÉèÖÃµÄ 1 ·ÖÖÓ¡£

·ÖÎöÓë½â¾ö£º

ͨ¹ýÅŲé×îÖÕÈ·ÈÏÊÇ harbor ÔÚ²¢·¢À­È¡¾µÏñʱ´æÔÚÐÔÄÜÎÊÌ⣬ÎÒÃDzÉÈ¡µÄÓÅ»¯·½°¸ÊÇͨÓÃµÄ p2p ·½°¸£¬DragonFly + Harbor¡£

²¢·¢´óʱÊÚȨ½Ó¿Ú¿¹²»×¡

³¡¾°½éÉÜ£º

Ó¦Ó÷¢²¼¹ý³ÌÖе÷ÓÃÊÚȨ½Ó¿Úʧ°Ü£¬K8s µÄ×ÔÓú»úÖÆ»á²»¶ÏÖØ½¨ÈÝÆ÷²¢ÖØÐÂÊÚȨ£¬²¢·¢Á¿±È½Ï´ó£¬×îÖÕ°ÑÊÚȨ·þÎñÍϿ塣

ÎÒÃǵÄÈÝÆ÷ÊÚȨ·½°¸ÈçÏÂ:

Pod init ÈÝÆ÷Æô¶¯Ê±½øÐе÷ÑÐÊÚȨ½Ó¿Ú½øÐÐÊÚȨ²Ù×÷£¬°üÀ¨ ACL ºÍ mysql µÄ°×Ãûµ¥¡£

ÈÝÆ÷Ïú»Ùʱ»áÖ´ÐÐ Sidecar ÈÝÆ÷µÄ preStop hook ÖÐÖ´ÐÐȨÏÞ»ØÊÕ²Ù×÷¡£

ÎÊÌâµã:

ACL ÊÚȨ½Ó¿ÚÉæ¼°µ½ÁË·À»ðǽ£¬QPS ±È½ÏµÍ£¬´óÁ¿ÈÝÆ÷½øÐÐ ACL ÊÚȨʱ°Ñ·þÎñÍÏ¿å ¡£

·ÖÎöÓë½â¾ö£º

ΪÁ˽â¾öÉÏÊöµÄÎÊÌ⣬ÏÞÁ¿ºÍ½µµÍÊÚȨ½Ó¿Úµ÷ÓôÎÊýÊÇÓÐЧµÄ½â¾ö·½Ê½¡£ÎÒÃDzÉÈ¡ÁËÏÂÃæ¼¸¸ö´ëÊ©:

init ÈÝÆ÷ÖеÄÖØÊÔ´ÎÊýÏÞÖÆÎª 1 ´Î¡£

ÊÚȨ½Ó¿Ú°´Ó¦ÓÃºÍ IP ÏÞÁ÷£¬ ³¬¹ý 3 ´ÎÔòÖ±½Ó·µ»ØÊ§°Ü£¬²»»áÔÙ½øÐÐÊÚȨ²Ù×÷¡£

ACL ÖÐÉæ¼°µÄһЩͨÓõĶ˿ڣ¬ÎÒÃÇͳһ×öÁ˰×Ãûµ¥£¬Ó¦ÓÃÎÞÐèÔÙ½øÐÐÊÚȨ²Ù×÷¡£

Java Ó¦ÓÃÔÚÈÝÆ÷³¡¾°ÏÂÈçºÎÖ§³ÖÔ¶³Ì Debug

KVM ³¡¾° Debug ½éÉÜ£º

ÔÚ¿ª·¢ Java Ó¦ÓõĹý³ÌÖУ¬Í¨¹ýÔ¶³Ì Debug ¿ÉÒÔ¿ìËÙÅŲ鶨λÎÊÌ⣬Òò´ËÊÇ¿ª·¢ÈËÔ±±Ø²»¿ÉÉÙµÄÒ»¸ö¹¦ÄÜ¡£Debug ¾ßÌåÁ÷³Ì: ¿ª·¢ÈËÔ±ÔÚ Noah »·¾³¹ÜÀíÆ½Ì¨µÄ½çÃæµã»÷¿ªÆô Debug, Noah »á×Ô¶¯Îª¸Ã Java Ó¦ÓÃÅäÖÃÉÏ Debug Ñ¡Ï-Xdebug -Xrunjdwp: transport=dt_socket, server=y, suspend=n, address=127.0.0.1:50005£¬²¢ÖØÆô¸Ã Java Ó¦Óã¬Ö®ºó¿ª·¢ÈËÔ±¾Í¿ÉÒÔÔÚ IDE ÖÐÅäÖÃÔ¶³Ì Debug ²¢½øÈëµ÷ÊÔģʽÁË¡£

ÈÝÆ÷³¡¾°µÄ Debug ·½°¸£º

²âÊÔ»·¾³µÄ Java Ó¦ÓÃĬÈÏ¿ªÆô Debug ģʽ£¬ÕâÑùÒ²±ÜÃâÁ˸ü¸Ä Debug ÖØ½¨ Pod µÄ¹ý³Ì£¬ËÙ¶È´Ó KVM µÄ·ÖÖÓ¼¶µ½ÏÖÔÚµÄÃë¼¶¡£µ±Óû§Ï뿪Æô Debug ʱ£¬Noah »áµ÷Óà K8s exec ½Ó¿ÚÖ´ÐÐ socat Ïà¹ØÃüÁî½øÐж˿ÚÓ³Éäת·¢£¬Èÿª·¢ÈËÔ±¿ÉÒÔͨ¹ý socat ¿ªµÄ´úÀíÁ¬½Óµ½ Java Ó¦ÓÃµÄ Debug ¶Ë¿Ú¡£

ÎÊÌâµã£º

ÈÝÆ÷³¡¾°ÏÂÔÚÓû§ Debug ¹ý³ÌÖУ¬µ±ÇëÇó×ßµ½ÁËÉèÖõĶϵãºó£¬Debug ¹¦ÄÜʧЧ¡£

·ÖÎöÓë½â¾ö¹ý³Ì£º

¸´ÏÖÈÝÆ÷³¡¾°Ï Debug£¬¹Û²ì¸Ã Pod µÄ¸÷ÏîÖ¸±ê£¬·¢ÏÖ Debug ¹¦ÄÜʧЧµÄʱºòϵͳÊÕµ½ÁËÒ»¸ö liveness probe failed£¬kill pod µÄʼþ¡£¸ù¾ÝÕâ¸öʼþ¿ÉÒÔÅжϳöµ±Ê± liveness check ʧ°Ü£¬Ó¦ÓÃÈÝÆ÷²Å±» kill µÄ£¬Ó¦ÓÃÈÝÆ÷ÖØÆô´úÀí½ø³ÌÒ²¾ÍËæÖ®ÏûʧÁË£¬Debug Ò²¾ÍʧЧÁË¡£

¹ØÓÚ Debug ¹ý³Ì checkurl Ϊʲôʧ°ÜµÄÎÊÌ⣬µÃµ½µÄ´ð°¸ÊÇ Debug ʱµ±ÇëÇó×ßµ½¶Ïµãʱ£¬Õû¸ö JVM ÊÇ hang סµÄ£¬Õâ¸öʱºòÈκÎÇëÇó¹ýÀ´Ò²»á±» hang ס£¬µ±È»Ò²°üÀ¨ checkurl£¬ÓÚÊÇÎÒÃÇÒ²ÌØµØÔÚ KVM ³¡¾°ºÍÈÝÆ÷³¡¾°·Ö²¼×öÁ˲âÊÔ£¬½á¹ûҲȷʵÊÇÕâÑùµÄ¡£

ÁÙʱ½â¾ö·½°¸ÊǰѶϵãµÄ×è¶Ï¼¶±ð¸ÄΪÏ̼߳¶µÄ£¬ÕâÑù¾Í²»»á×è¶Ï checkurl ÁË, idea ÖÐĬÈϵÄÑ¡ÏîÊÇ Suspend All£¬¸ÄΪ Suspend Thread ¼´¿É¡£²»¹ýÕâ¸öÒ²²»ÊÇ×îÓŽ⣬ÒòΪÕâ¸öÐèÒªÓû§ÊÖ¹¤ÅäÖÃ×è¶Ï¼¶±ð£¬ÓÐÈÏ֪ѧϰ³É±¾¡£

»Øµ½×î³õµÄÎÊÌâÉÏ£¬ÎªÊ²Ã´ÈÝÆ÷³¡¾°ÏÂÓöµ½Õâ¸öÎÊÌ⣬¶ø KVM ûÓУ¬Ö÷ÒªÊÇÒòΪÈÝÆ÷³¡¾° K8s ÌṩÁË×ÔÓúÄÜÁ¦£¬K8s »á¶¨Ê±Ö´ÐÐ liveness check, µ±Ê§°Ü´ÎÊý´ïµ½Ö¸¶¨µÄãÐֵʱ£¬K8s »á kill µôÈÝÆ÷²¢ÖØÐÂÀ­ÆðÒ»¸öеÄÈÝÆ÷¡£

ÄÇÎÒÃÇÖ»ºÃ´Ó K8s µÄ liveness ̽ÕëÉÏ×ÅÊÖÁË£¬Ì½ÕëĬÈÏÖ§³Ö exec¡¢tcp ¡¢httpGet 3 ÖÖģʽ£¬µ±Ç°Ê¹ÓõÄÊÇ httpGet£¬ÕâÖÖ·½Ê½Ö»Ö§³ÖÒ»¸ö url, ÎÞ·¨Âú×ãÕâ¸ö³¡¾°ÐèÇó¡£¾­¹ý×éÄÚÌÖÂÛ£¬ ×îºó´ó¼Ò¾ö¶¨ÓÃÕâ¸ö±í´ïʽ (checkurl == 200) || (socat process && java process alive) ÔÚ×÷ΪӦÓÃµÄ liveness ¼ì²â·½Ê½£¬µ± Debug ×ßµ½¶ÏµãµÄʱºò, Ó¦ÓÃÈÝÆ÷¾Í²»»á×è¶ÏÁË£¬ ÍêÃÀµÄ½â¾öÁËÕâ¸öÎÊÌâ¡£

ÒÔÉϾÍÊÇÎÒÃÇÂ䵨ÈÝÆ÷»¯¹ý³ÌÖÐÓöµ½µÄ¼¸¸öÎÊÌâÓëÎÒÃǵĽâ¾ö˼·¡£ÆäÖкÜÖØÒªµÄÒ»µãÊÇ´Ó KVM Ç¨ÒÆµ½ÈÝÆ÷ʱÐèÒª¿¼ÂÇÓû§µÄʹÓÃϰ¹ß¡¢ÀúÊ·¹¦ÄܼæÈݵÈÒªµã£¬Òª×öºÃ¼æÈݺÍÈ¡ÉᣬֻÓÐÕâÑùÈÝÆ÷»¯Â䵨²Å»á¸ü˳³©¡£

δÀ´Õ¹Íû

¶à¼¯ÈºÎȶ¨ÐÔÖÎÀí

Èÿɹ۲âÐÔÊý¾Ý¸üÈ«Ãæ¡¢¸²¸Ç¶È¸ü¹ã£¬½ø¶øÍêÉÆÎÒÃÇµÄ APM ϵͳ£¬ÌáÉýÅŲéÎÊÌâЧÂÊ¡£

ͨ¹ýʵʩ»ìã繤³ÌÀ´ÑéÖ¤¡¢·¢ÏÖºÍÏû³ýÈÝÆ÷»¯³¡¾°µÄÎȶ¨ÐÔÃ¤Çø¡£

Ìá¸ß×ÊÔ´ÀûÓÃÂÊ

¸ù¾ÝÒµÎñÖ¸±êʵÏÖµ¯ÐÔÀ©ËõÈÝ¡£

¸ù¾ÝÓ¦ÓõÄÀúÊ·Êý¾ÝÖÇÄܵĵ÷Õû requests¡£

ServiceMesh ·½°¸Â䵨

ÎÒÃÇÊÇ»ùÓÚ Istio ºÍ MOSN ÒÔ¼°µ±Ç°µÄ»ù´¡¼Ü¹¹×öµÄ mesh ·½°¸£¬Ä¿Ç°ÔÚ²âÊԽ׶Σ¬ÕâÌ×·½°¸Â䵨ºóÏàÐÅ»áÈûù´¡¼Ü¹¹¸üÃô½Ý¡£

   
1027 ´Îä¯ÀÀ       29
×îл¼Æ»®
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢ 6-12[ÏÃÃÅ]
È˹¤ÖÇÄÜ.»úÆ÷ѧϰTensorFlow 6-22[Ö±²¥]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 6-30[±±¾©]
ǶÈëʽÈí¼þ¼Ü¹¹-¸ß¼¶Êµ¼ù 7-9[±±¾©]
Óû§ÌåÑé¡¢Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À 7-25[Î÷°²]
ͼÊý¾Ý¿âÓë֪ʶͼÆ× 8-23[±±¾©]
 
×îÐÂÎÄÕÂ
ÔÆÔ­Éú¼Ü¹¹¸ÅÊö
K8S¸ß¿ÉÓü¯Èº¼Ü¹¹ÊµÏÖ
ÈÝÆ÷ÔÆ¹ÜÀíÖ®K8S¼¯Èº¸ÅÊö
k8s-ÕûÌå¸ÅÊöºÍ¼Ü¹¹
Ê®·ÖÖÓѧ»áÓÃdocker²¿Êð΢·þÎñ
×îпγÌ
ÔÆ¼ÆË㡢΢·þÎñÓë·Ö²¼Ê½¼Ü¹¹
Æóҵ˽ÓÐÔÆÔ­ÀíÓë¹¹½¨
»ùÓÚKubernetesµÄDevOpsʵ¼ù
ÔÆÆ½Ì¨¼Ü¹¹ÓëÓ¦Ó㨰¢ÀïÔÆ£©
Docker²¿Êð±»²âϵͳÓë×Ô¶¯»¯¿ò¼Üʵ¼ù
³É¹¦°¸Àý
±±¾© ÔÆÆ½Ì¨Óë΢·þÎñ¼Ü¹¹Éè¼Æ
ͨÓù«Ë¾GE DockerÔ­ÀíÓëʵ¼ùÅàѵ
ij¾ü¹¤Ñо¿µ¥Î» MDA£¨Ä£ÐÍÇý¶¯¼Ü¹¹£©
ÖªÃûÏû·Ñ½ðÈÚ¹«Ë¾ ÁìÓòÇý¶¯Éè¼Æ
ÉîÛÚijÆû³µÆóÒµ Ä£ÐÍÇý¶¯µÄ·ÖÎöÉè¼Æ
 
 
 
 
 
Ïà¹ØÎÄÕÂ

ÔÆ¼ÆËãµÄ¼Ü¹¹
¶ÔÔÆ¼ÆËã·þÎñÄ£ÐÍ
ÔÆ¼ÆËãºËÐļ¼ÊõÆÊÎö
Á˽âÔÆ¼ÆËãµÄ©¶´
Ïà¹ØÎĵµ

ÔÆ¼ÆËã¼ò½é
ÔÆ¼ÆËã¼ò½éÓëÔÆ°²È«
ÏÂÒ»´úÍøÂç¼ÆËã--ÔÆ¼ÆËã
ÈídzÎöÔÆ¼ÆËã
Ïà¹Ø¿Î³Ì

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
ÔÆ¼ÆËãÓ¦ÓÃÓ뿪·¢
CMMIÌåϵÓëʵ¼ù
»ùÓÚCMMI±ê×¼µÄÈí¼þÖÊÁ¿±£Ö¤