¸üÐÂʱ¼ä:2020Äê04ÔÂ04ÈÕ19ʱ14·Ö À´Ô´:ÀÖÓã²¥¿Í ä¯ÀÀ´ÎÊý:

ÈÝÆ÷ÍøÂç·¢¶ËÓÚ Docker µÄÍøÂç¡£Docker ʹÓÃÁËÒ»¸ö±È½Ï¼òµ¥µÄÍøÂçÄ£ÐÍ£¬¼´ÄÚ²¿µÄÍøÇżÓÄÚ²¿µÄ±£Áô IP¡£ÕâÖÖÉè¼ÆµÄºÃ´¦ÔÚÓÚÈÝÆ÷µÄÍøÂçºÍÍⲿÊÀ½çÊǽâñîµÄ£¬ÎÞÐèÕ¼ÓÃËÞÖ÷»úµÄ IP »òÕßËÞÖ÷»úµÄ×ÊÔ´£¬ÍêÈ«ÊÇÐéÄâµÄ¡£
ËüµÄÉè¼Æ³õÖÔÊÇ£ºµ±ÐèÒª·ÃÎÊÍⲿÊÀ½çʱ£¬»á²ÉÓà SNAT ÕâÖÖ·½·¨À´½èÓà Node µÄ IP È¥·ÃÎÊÍâÃæµÄ·þÎñ¡£±ÈÈçÈÝÆ÷ÐèÒª¶ÔÍâÌṩ·þÎñµÄʱºò£¬ËùÓõÄÊÇ DNAT ¼¼Êõ£¬Ò²¾ÍÊÇÔÚ Node ÉÏ¿ªÒ»¸ö¶Ë¿Ú£¬È»ºóͨ¹ý iptable »òÕß±ðµÄijЩ»úÖÆ£¬°ÑÁ÷µ¼Èëµ½ÈÝÆ÷µÄ½ø³ÌÉÏÒԴﵽĿµÄ¡£
¸ÃÄ£Ð͵ÄÎÊÌâÔÚÓÚ£¬Íâ²¿ÍøÂçÎÞ·¨Çø·ÖÄÄЩÊÇÈÝÆ÷µÄÍøÂçÓëÁ÷Á¿¡¢ÄÄЩÊÇËÞÖ÷»úµÄÍøÂçÓëÁ÷Á¿¡£±ÈÈ磬Èç¹ûÒª×öÒ»¸ö¸ß¿ÉÓõÄʱºò£¬172.16.1.1 ºÍ 172.16.1.2 ÊÇÓµÓÐͬÑù¹¦ÄܵÄÁ½¸öÈÝÆ÷£¬´ËʱÎÒÃÇÐèÒª½«Á½Õß°ó³ÉÒ»¸ö Group ¶ÔÍâÌṩ·þÎñ£¬¶øÕâ¸öʱºòÎÒÃÇ·¢ÏÖ´ÓÍⲿ¿´À´Á½ÕßûÓÐÏà֮ͬ´¦£¬ËüÃÇµÄ IP ¶¼ÊǽèÓÃËÞÖ÷»úµÄ¶Ë¿Ú£¬Òò´ËºÜÄѽ«Á½Õ߹飵½Ò»Æð¡£ÍƼöÁ˽âÀÖÓã²¥¿ÍlinuxÔÆ¼ÆËã+ÔËά¿ª·¢¿Î³Ì¡£

ÔÚ´Ë»ù´¡ÉÏ£¬Kubernetes Ìá³öÁËÕâÑùÒ»ÖÖ»úÖÆ£º¼´Ã¿Ò»¸ö Pod£¬Ò²¾ÍÊÇÒ»¸ö¹¦Äܾۼ¯Ð¡ÍÅ»ïÓ¦ÓÐ×Ô¼ºµÄ“Éí·ÝÖ¤”£¬»òÕß˵ ID¡£ÔÚ TCP ÐÒéÕ»ÉÏ£¬Õâ¸ö ID ¾ÍÊÇ IP¡£
Õâ¸ö IP ÊÇÕæÕýÊôÓڸà Pod µÄ£¬ÍⲿÊÀ½ç²»¹Üͨ¹ýʲô·½·¨Ò»¶¨Òª¸øËü¡£¶ÔÕâ¸ö Pod IP µÄ·ÃÎʾÍÊÇÕæÕý¶ÔËüµÄ·þÎñµÄ·ÃÎÊ£¬Öмä¾Ü¾øÈκεıäÔì¡£±ÈÈçÒÔ 10.1.1.1 µÄ IP È¥·ÃÎÊ 10.1.2.1 µÄ Pod£¬½á¹ûµ½ÁË 10.1.2.1 ÉÏ·¢ÏÖ£¬Ëüʵ¼ÊÉϽèÓõÄÊÇËÞÖ÷»úµÄ IP£¬¶ø²»ÊÇÔ´ IP£¬ÕâÑùÊDz»±»ÔÊÐíµÄ¡£Pod ÄÚ²¿»áÒªÇó¹²ÏíÕâ¸ö IP£¬´Ó¶ø½â¾öÁËһЩ¹¦ÄÜÄÚ¾ÛµÄÈÝÆ÷ÈçºÎ±ä³ÉÒ»¸ö²¿ÊðµÄÔ×ÓµÄÎÊÌâ¡£
ʣϵÄÎÊÌâÊÇÎÒÃǵIJ¿ÊðÊֶΡ£Kubernetes ¶ÔÔõôʵÏÖÕâ¸öÄ£ÐÍÆäʵÊÇûÓÐʲôÏÞÖÆµÄ£¬Óà underlay ÍøÂçÀ´¿ØÖÆÍⲿ·ÓÉÆ÷½øÐе¼Á÷ÊÇ¿ÉÒÔµÄ;Èç¹ûÏ£Íû½âñÓà overlay ÍøÂçÔڵײãÍøÂçÖ®ÉÏÔÙ¼ÓÒ»²ãµþ¼ÓÍø£¬ÕâÑùÒ²ÊÇ¿ÉÒԵġ£×ÜÖ®£¬Ö»Òª´ïµ½Ä£ÐÍËùÒªÇóµÄÄ¿µÄ¼´¿É¡£
Pod ¾¿¾¹ÈçºÎÉÏÍø
ÈÝÆ÷ÍøÂçµÄÍøÂç°ü¾¿¾¹ÊÇÔõô´«Ë͵Ä?

ÎÒÃÇ¿ÉÒÔ´ÓÒÔÏÂÁ½¸öά¶ÈÀ´¿´£º
·ÐÒé²ã´Î
·ÍøÂçÍØÆË
1. ÐÒé²ã´Î
ËüºÍ TCP ÐÒéÕ»µÄ¸ÅÄîÊÇÏàͬµÄ£¬ÐèÒª´ÓÁ½²ã¡¢Èý²ã¡¢ËIJãÒ»²ã²ãµØÞûÉÏÈ¥£¬·¢°üµÄʱºò´ÓÓÒÍù×󣬼´ÏÈÓÐÓ¦ÓÃÊý¾Ý£¬È»ºó·¢µ½ÁË TCP »òÕß UDP µÄËIJãÐÒ飬¼ÌÐøÏòÏ´«ËÍ£¬¼ÓÉÏ IP Í·£¬ÔÙ¼ÓÉÏ MAC Í·¾Í¿ÉÒÔËͳöÈ¥ÁË¡£ÊÕ°üµÄʱºòÔò°´ÕÕÏà·´µÄ˳Ðò£¬Ê×ÏȰþÀë MAC µÄÍ·£¬ÔÙ°þÀë IP µÄÍ·£¬×îºóͨ¹ýÐÒéºÅÔÚ¶Ë¿ÚÕÒµ½ÐèÒª½ÓÊյĽø³Ì¡£
2. ÍøÂçÍØÆË
Ò»¸öÈÝÆ÷µÄ°üËùÒª½â¾öµÄÎÊÌâ·ÖΪÁ½²½£ºµÚÒ»²½£¬ÈçºÎ´ÓÈÝÆ÷µÄ¿Õ¼ä (c1) Ìøµ½ËÞÖ÷»úµÄ¿Õ¼ä (infra);µÚ¶þ²½£¬ÈçºÎ´ÓËÞÖ÷»ú¿Õ¼äµ½´ïÔ¶¶Ë¡£
ÎÒ¸öÈ˵ÄÀí½âÊÇ£¬ÈÝÆ÷ÍøÂçµÄ·½°¸¿ÉÒÔͨ¹ý½ÓÈë¡¢Á÷¿Ø¡¢Í¨µÀÕâÈý¸ö²ãÃæÀ´¿¼ÂÇ¡£
·µÚÒ»¸öÊǽÓÈ룬¾ÍÊÇ˵ÎÒÃǵÄÈÝÆ÷ºÍËÞÖ÷»úÖ®¼äÊÇʹÓÃÄÄÒ»ÖÖ»úÖÆ×öÁ¬½Ó£¬±ÈÈç Veth + bridge¡¢Veth + pair ÕâÑùµÄ¾µä·½Ê½£¬Ò²ÓÐÀûÓø߰汾Äں˵ÄлúÖÆµÈÆäËû·½Ê½(Èç mac/IPvlan µÈ)£¬À´°Ñ°üËÍÈëµ½ËÞÖ÷»ú¿Õ¼ä;
·µÚ¶þ¸öÊÇÁ÷¿Ø£¬¾ÍÊÇ˵ÎÒµÄÕâ¸ö·½°¸Òª²»ÒªÖ§³Ö Network Policy£¬Èç¹ûÖ§³ÖµÄ»°ÓÖÒªÓúÎÖÖ·½Ê½È¥ÊµÏÖ¡£ÕâÀïÐèҪעÒâµÄÊÇ£¬ÎÒÃǵÄʵÏÖ·½Ê½Ò»¶¨ÐèÒªÔÚÊý¾Ý·¾¶±Ø¾µÄÒ»¸ö¹Ø½ÚµãÉÏ¡£Èç¹ûÊý¾Ý·¾¶²»Í¨¹ý¸Ã Hook µã£¬ÄǾͲ»»áÆð×÷ÓÃ;
·µÚÈý¸öÊÇͨµÀ£¬¼´Á½¸öÖ÷»úÖ®¼äͨ¹ýʲô·½Ê½Íê³É°üµÄ´«Êä¡£ÎÒÃÇÓкܶàÖÖ·½Ê½£¬±ÈÈçÒÔ·Óɵķ½Ê½£¬¾ßÌåÓÖ¿É·ÖΪ BGP ·ÓÉ»òÕßÖ±½Ó·ÓÉ¡£»¹Óи÷ÖÖ¸÷ÑùµÄËíµÀ¼¼ÊõµÈµÈ¡£×îÖÕÎÒÃÇʵÏÖµÄÄ¿µÄ¾ÍÊÇÒ»¸öÈÝÆ÷Äڵİüͨ¹ýÈÝÆ÷£¬¾¹ý½ÓÈë²ã´«µ½ËÞÖ÷»ú£¬ÔÙ´©Ô½ËÞÖ÷»úµÄÁ÷¿ØÄ£¿é(Èç¹ûÓÐ)µ½´ïͨµÀË͵½¶Ô¶Ë¡£
3. Ò»¸ö×î¼òµ¥µÄ·ÓÉ·½°¸£ºFlannel-host-gw
Õâ¸ö·½°¸²ÉÓõÄÊÇÿ¸ö Node ¶ÀÕ¼Íø¶Î£¬Ã¿¸ö Subnet »á°ó¶¨ÔÚÒ»¸ö Node ÉÏ£¬Íø¹ØÒ²ÉèÖÃÔÚ±¾µØ£¬»òÕß˵ֱ½ÓÉèÔÚ cni0 Õâ¸öÍøÇŵÄÄÚ²¿¶Ë¿ÚÉÏ¡£¸Ã·½°¸µÄºÃ´¦ÊǹÜÀí¼òµ¥£¬»µ´¦¾ÍÊÇÎÞ·¨¿ç Node Ç¨ÒÆ Pod¡£¾ÍÊÇ˵Õâ¸ö IP¡¢Íø¶ÎÒѾÊÇÊôÓÚÕâ¸ö Node Ö®ºó¾ÍÎÞ·¨Ç¨ÒƵ½±ðµÄ Node ÉÏ¡£

Õâ¸ö·½°¸µÄ¾«ËèÔÚÓÚ route ±íµÄÉèÖã¬ÈçÉÏͼËùʾ¡£½ÓÏÂÀ´Îª´ó¼ÒÒ»Ò»½â¶Áһϡ£
·µÚÒ»ÌõºÜ¼òµ¥£¬ÎÒÃÇÔÚÉèÖÃÍø¿¨µÄʱºò¶¼»á¼ÓÉÏÕâÒ»ÐС£¾ÍÊÇÖ¸¶¨ÎÒµÄĬÈÏ·ÓÉÊÇͨ¹ýÄĸö IP ×ßµô£¬Ä¬ÈÏÉ豸ÓÖÊÇʲô;
·µÚ¶þÌõÊÇ¶Ô Subnet µÄÒ»¸ö¹æÔò·´À¡¡£¾ÍÊÇ˵ÎÒµÄÕâ¸öÍø¶ÎÊÇ 10.244.0.0£¬ÑÚÂëÊÇ 24 룬ËüµÄÍø¹ØµØÖ·¾ÍÔÚÍøÇÅÉÏ£¬Ò²¾ÍÊÇ 10.244.0.1¡£Õâ¾ÍÊÇ˵Õâ¸öÍø¶ÎµÄÿһ¸ö°ü¶¼·¢µ½Õâ¸öÍøÇÅµÄ IP ÉÏ;
·µÚÈýÌõÊǶԶԶ˵ÄÒ»¸ö·´À¡¡£Èç¹ûÄãµÄÍø¶ÎÊÇ 10.244.1.0(ÉÏͼÓÒ±ßµÄ Subnet)£¬ÎÒÃǾͰÑËüµÄ Host µÄÍø¿¨É쵀 IP (10.168.0.3) ×÷ÎªÍø¹Ø¡£Ò²¾ÍÊÇ˵£¬Èç¹ûÊý¾Ý°üÊÇÍù 10.244.1.0 Õâ¸öÍø¶Î·¢µÄ£¬¾ÍÇëÒÔ 10.168.0.3 ×÷ÎªÍø¹Ø¡£
ÔÙÀ´¿´Ò»ÏÂÕâ¸öÊý¾Ý°üµ½µ×ÊÇÈçºÎÅÜÆðÀ´µÄ?
¼ÙÉèÈÝÆ÷ (10.244.0.2) ÏëÒª·¢Ò»¸ö°ü¸ø 10.244.1.3£¬ÄÇôËüÔÚ±¾µØ²úÉúÁË TCP »òÕß UDP °üÖ®ºó£¬ÔÙÒÀ´ÎÌîºÃ¶Ô¶Ë IP µØÖ·¡¢±¾µØÒÔÌ«ÍøµÄ MAC µØÖ·×÷ΪԴ MAC ÒÔ¼°¶Ô¶Ë MAC¡£Ò»°ãÀ´Ëµ±¾µØ»áÉ趨һÌõĬÈÏ·ÓÉ£¬Ä¬ÈÏ·ÓÉ»á°Ñ cni0 É쵀 IP ×÷ΪËüµÄĬÈÏÍø¹Ø£¬¶Ô¶ËµÄ MAC ¾ÍÊÇÕâ¸öÍø¹ØµÄ MAC µØÖ·¡£È»ºóÕâ¸ö°ü¾Í¿ÉÒÔ·¢µ½ÇÅÉÏÈ¥ÁË¡£Èç¹ûÍø¶ÎÔÚ±¾ÇÅÉÏ£¬ÄÇôͨ¹ý MAC ²ãµÄ½»»»¼´¿É½â¾ö¡£
Õâ¸öÀý×ÓÖÐÎÒÃÇµÄ IP ²¢²»ÊôÓÚ±¾Íø¶Î£¬Òò´ËÍøÇŻὫÆäÉÏË͵½Ö÷»úµÄÐÒéջȥ´¦Àí¡£Ö÷»úÐÒéջǡºÃÕÒµ½ÁË¶Ô¶ËµÄ MAC µØÖ·¡£Ê¹Óà 10.168.0.3 ×÷ΪËüµÄÍø¹Ø£¬Í¨¹ý±¾µØ ARP ̽²éºó£¬ÎÒÃǵõ½ÁË 10.168.0.3 µÄ MAC µØÖ·¡£¼´Í¨¹ýÐÒéÕ»²ã²ã×é×°£¬ÎÒÃÇ´ïµ½ÁËÄ¿µÄ£¬½« Dst-MAC ÌîΪÓÒͼÖ÷»úÍø¿¨µÄ MAC µØÖ·£¬´Ó¶ø½«°ü´ÓÖ÷»úµÄ eth0 ·¢µ½¶Ô¶ËµÄ eth0 ÉÏÈ¥¡£
ËùÒÔ´ó¼Ò¿ÉÒÔ·¢ÏÖ£¬ÕâÀïÓÐÒ»¸öÒþº¬µÄÏÞÖÆ£¬ÉÏͼÖÐµÄ MAC µØÖ·ÌîºÃÖ®ºóÒ»¶¨ÊÇÄܵ½´ï¶Ô¶ËµÄ£¬µ«Èç¹ûÕâÁ½¸öËÞÖ÷»úÖ®¼ä²»ÊǶþ²ãÁ¬½ÓµÄ£¬Öм侹ýÁËÒ»Ð©Íø¹Ø¡¢Ò»Ð©¸´ÔӵķÓÉ£¬ÄÇôÕâ¸ö MAC ¾Í²»ÄÜÖ±´ï£¬ÕâÖÖ·½°¸¾ÍÊDz»ÄÜÓõġ£µ±°üµ½´ïÁË¶Ô¶ËµÄ MAC µØÖ·Ö®ºó£¬·¢ÏÖÕâ¸ö°üȷʵÊǸøËüµÄ£¬µ«ÊÇ IP ÓÖ²»ÊÇËü×Ô¼ºµÄ£¬¾Í¿ªÊ¼ Forward Á÷³Ì£¬°üÉÏË͵½ÐÒéÕ»£¬Ö®ºóÔÙ×ßÒ»±é·ÓÉ£¬¸ÕºÃ»á·¢ÏÖ 10.244.1.0/24 ÐèÒª·¢µ½ 10.244.1.1 Õâ¸öÍø¹ØÉÏ£¬´Ó¶øµ½´ïÁË cni0 ÍøÇÅ£¬Ëü»áÕÒµ½ 10.244.1.3 ¶ÔÓ¦µÄ MAC µØÖ·£¬ÔÙͨ¹ýÇŽӻúÖÆ£¬Õâ¸ö°ü¾Íµ½´ïÁ˶ԶËÈÝÆ÷¡£
´ó¼Ò¿ÉÒÔ¿´µ½£¬Õû¸ö¹ý³Ì×ÜÊǶþ²ã¡¢Èý²ã£¬·¢µÄʱºòÓÖ±ä³É¶þ²ã£¬ÔÙ×ö·ÓÉ£¬¾ÍÊÇÒ»¸ö´ó»·Ì×С»·¡£ÕâÊÇÒ»¸ö±È½Ï¼òµ¥µÄ·½°¸£¬Èç¹ûÖмäÒª×ßËíµÀ£¬Ôò¿ÉÄÜ»áÓÐÒ»Ìõ vxlan tunnel µÄÉ豸£¬´Ëʱ¾Í²»ÌîÖ±½ÓµÄ·ÓÉ£¬¶øÌî³É¶Ô¶ËµÄËíµÀºÅ¡£
Service ¾¿¾¹ÈçºÎ¹¤×÷
Service ÆäʵÊÇÒ»ÖÖ¸ºÔؾùºâ (Load Balance) µÄ»úÖÆ¡£
ÎÒÃÇÈÏΪËüÊÇÒ»ÖÖÓû§²à(Client Side) µÄ¸ºÔؾùºâ£¬Ò²¾ÍÊÇ˵ VIP µ½ RIP µÄת»»ÔÚÓû§²à¾ÍÒѾÍê³ÉÁË£¬²¢²»ÐèÒª¼¯ÖÐʽµØµ½´ïijһ¸ö NGINX »òÕßÊÇÒ»¸ö ELB ÕâÑùµÄ×é¼þÀ´½øÐоö²ß¡£

ËüµÄʵÏÖÊÇÕâÑùµÄ£ºÊ×ÏÈÊÇÓÉһȺ Pod ×é³ÉÒ»×鹦Äܺó¶Ë£¬ÔÙÔÚǰ¶ËÉ϶¨ÒåÒ»¸öÐé IP ×÷Ϊ·ÃÎÊÈë¿Ú¡£Ò»°ãÀ´Ëµ£¬ÓÉÓÚ IP ²»Ì«ºÃ¼Ç£¬ÎÒÃÇ»¹»á¸½ÔùÒ»¸ö DNS µÄÓòÃû£¬Client ÏÈ·ÃÎÊÓòÃûµÃµ½Ðé IP Ö®ºóÔÙת³Éʵ IP¡£Kube-proxy ÔòÊÇÕû¸ö»úÖÆµÄʵÏÖºËÐÄ£¬ËüÒþ²ØÁË´óÁ¿µÄ¸´ÔÓÐÔ¡£ËüµÄ¹¤×÷»úÖÆÊÇͨ¹ý apiserver ¼à¿Ø Pod/Service µÄ±ä»¯(±ÈÈçÊDz»ÊÇÐÂÔöÁË Service¡¢Pod)²¢½«Æä·´À¡µ½±¾µØµÄ¹æÔò»òÕßÊÇÓû§Ì¬½ø³Ì¡£
Ò»¸ö LVS °æµÄ Service
ÎÒÃÇÀ´Êµ¼Ê×öÒ»¸ö LVS °æµÄ Service¡£LVS ÊÇÒ»¸öרÃÅÓÃÓÚ¸ºÔؾùºâµÄÄں˻úÖÆ¡£Ëü¹¤×÷ÔÚµÚËIJ㣬ÐÔÄÜ»á±ÈÓà iptable ʵÏÖºÃһЩ¡£
¼ÙÉèÎÒÃÇÊÇÒ»¸ö Kube-proxy£¬Äõ½ÁËÒ»¸ö Service µÄÅäÖã¬ÈçÏÂͼËùʾ£ºËüÓÐÒ»¸ö Cluster IP£¬Ôڸà IP ÉϵĶ˿ÚÊÇ 9376£¬ÐèÒª·´À¡µ½ÈÝÆ÷ÉϵÄÊÇ 80 ¶Ë¿Ú£¬»¹ÓÐÈý¸ö¿É¹¤×÷µÄ Pod£¬ËüÃÇµÄ IP ·Ö±ðÊÇ 10.1.2.3, 10.1.14.5, 10.1.3.8¡£

ËüÒª×öµÄÊÂÇé¾ÍÊÇ£º

µÚ 1 ²½£¬°ó¶¨ VIP µ½±¾µØ(ÆÛÆÄÚºË);
Ê×ÏÈÐèÒªÈÃÄÚºËÏàÐÅËüÓµÓÐÕâÑùµÄÒ»¸öÐé IP£¬ÕâÊÇ LVS µÄ¹¤×÷»úÖÆËù¾ö¶¨µÄ£¬ÒòΪËü¹¤×÷ÔÚµÚËIJ㣬²¢²»¹ØÐÄ IP ת·¢£¬Ö»ÓÐËüÈÏΪÕâ¸ö IP ÊÇ×Ô¼ºµÄ²Å»á²ðµ½ TCP »ò UDP ÕâÒ»²ã¡£ÔÚµÚÒ»²½ÖУ¬ÎÒÃǽ«¸Ã IP Éèµ½ÄÚºËÖУ¬¸æËßÄÚºËËüȷʵÓÐÕâôһ¸ö IP¡£ÊµÏֵķ½·¨Óкܶ࣬ÎÒÃÇÕâÀïÓõÄÊÇ ip route Ö±½Ó¼Ó local µÄ·½Ê½£¬Óà Dummy ÑÆÉ豸ÉÏ¼Ó IP µÄ·½Ê½Ò²ÊÇ¿ÉÒԵġ£
µÚ 2 ²½£¬ÎªÕâ¸öÐé IP ´´½¨Ò»¸ö IPVS µÄ virtual server;
¸æËßËüÎÒÐèҪΪÕâ¸ö IP ½øÐиºÔؾùºâ·Ö·¢£¬ºóÃæµÄ²ÎÊý¾ÍÊÇһЩ·Ö·¢²ßÂԵȵȡ£virtual server µÄ IP Æäʵ¾ÍÊÇÎÒÃÇµÄ Cluster IP¡£
µÚ 3 ²½£¬ÎªÕâ¸ö IPVS service ´´½¨ÏàÓ¦µÄ real server¡£
ÎÒÃÇÐèҪΪ virtual server ÅäÖÃÏàÓ¦µÄ real server£¬¾ÍÊÇÕæÕýÌṩ·þÎñµÄºó¶ËÊÇʲô¡£±ÈÈç˵ÎÒÃǸղſ´µ½ÓÐÈý¸ö Pod£¬ÓÚÊǾͰÑÕâÈý¸öµÄ IP Åäµ½ virtual server ÉÏ£¬Íêȫһһ¶ÔÓ¦¹ýÀ´¾Í¿ÉÒÔÁË¡£Kube-proxy ¹¤×÷¸úÕâ¸öÒ²ÊÇÀàËÆµÄ¡£Ö»ÊÇËü»¹ÐèҪȥ¼à¿ØÒ»Ð© Pod µÄ±ä»¯£¬±ÈÈç Pod µÄÊýÁ¿±ä³É 5 ¸öÁË£¬ÄÇô¹æÔò¾ÍÓ¦±ä³É 5 Ìõ¡£Èç¹ûÕâÀïÃæÄ³Ò»¸ö Pod ËÀµôÁË»òÕß±»É±ËÀÁË£¬ÄÇô¾ÍÒªÏàÓ¦µØ¼õµôÒ»Ìõ¡£ÓÖ»òÕßÕû¸ö Service ±»³·ÏúÁË£¬ÄÇôÕâЩ¹æÔò¾ÍҪȫ²¿É¾µô¡£ËùÒÔËüÆäʵ×öµÄÊÇһЩ¹ÜÀí²ãÃæµÄ¹¤×÷¡£
ɶ?¸ºÔؾùºâ»¹·ÖÄÚ²¿Íⲿ
×îºóÎÒÃǽéÉÜһϠService µÄÀàÐÍ£¬¿ÉÒÔ·ÖΪÒÔÏ 4 Àà¡£
1. ClusterIP
¼¯ÈºÄÚ²¿µÄÒ»¸öÐéÄâ IP£¬Õâ¸ö IP »á°ó¶¨µ½Ò»¶Ñ·þÎñµÄ Group Pod ÉÏÃæ£¬ÕâÒ²ÊÇĬÈϵķþÎñ·½Ê½¡£ËüµÄȱµãÊÇÕâÖÖ·½Ê½Ö»ÄÜÔÚ Node ÄÚ²¿Ò²¾ÍÊǼ¯ÈºÄÚ²¿Ê¹Óá£
2. NodePort
¹©¼¯ÈºÍⲿµ÷Ó᣽« Service ³ÐÔØÔÚ Node µÄ¾²Ì¬¶Ë¿ÚÉÏ£¬¶Ë¿ÚºÅºÍ Service Ò»Ò»¶ÔÓ¦£¬ÄÇô¼¯ÈºÍâµÄÓû§¾Í¿ÉÒÔͨ¹ý : µÄ·½Ê½µ÷Óõ½ Service¡£
3. LoadBalancer
¸øÔƳ§É̵ÄÀ©Õ¹½Ó¿Ú¡£Ïñ°¢ÀïÔÆ¡¢ÑÇÂíÑ·ÕâÑùµÄÔÆ³§É̶¼ÊÇÓгÉÊìµÄ LB »úÖÆµÄ£¬ÕâЩ»úÖÆ¿ÉÄÜÊÇÓÉÒ»¸öºÜ´óµÄ¼¯ÈºÊµÏֵģ¬ÎªÁ˲»ÀË·ÑÕâÖÖÄÜÁ¦£¬ÔƳ§ÉÌ¿Éͨ¹ýÕâ¸ö½Ó¿Ú½øÐÐÀ©Õ¹¡£ËüÊ×ÏÈ»á×Ô¶¯´´½¨ NodePort ºÍ ClusterIP ÕâÁ½ÖÖ»úÖÆ£¬ÔƳ§ÉÌ¿ÉÒÔÑ¡ÔñÖ±½Ó½« LB ¹Òµ½ÕâÁ½ÖÖ»úÖÆÉÏ£¬»òÕßÁ½ÖÖ¶¼²»Óã¬Ö±½Ó°Ñ Pod µÄ RIP ¹Òµ½ÔƳ§ÉÌµÄ ELB µÄºó¶ËÒ²ÊÇ¿ÉÒԵġ£
4. ExternalName
±÷ÆúÄÚ²¿»úÖÆ£¬ÒÀÀµÍⲿÉèÊ©£¬±ÈÈçij¸öÓû§ÌرðÇ¿£¬Ëû¾õµÃÎÒÃÇÌṩµÄ¶¼Ã»Ê²Ã´Ó㬾ÍÊÇÒª×Ô¼ºÊµÏÖ£¬´Ëʱһ¸ö Service »áºÍÒ»¸öÓòÃûÒ»Ò»¶ÔÓ¦ÆðÀ´£¬Õû¸ö¸ºÔؾùºâµÄ¹¤×÷¶¼ÊÇÍⲿʵÏֵġ£
ÏÂͼÊÇÒ»¸öʵÀý¡£ËüÁé»îµØÓ¦ÓÃÁË ClusterIP¡¢NodePort µÈ¶àÖÖ·þÎñ·½Ê½£¬ÓÖ½áºÏÁËÔÆ³§ÉÌµÄ ELB£¬±ä³ÉÁËÒ»¸öºÜÁé»î¡¢¼«¶ÈÉìËõ¡¢Éú²úÉÏÕæÕý¿ÉÓõÄÒ»Ì×ϵͳ¡£

Ê×ÏÈÎÒÃÇÓà ClusterIP À´×ö¹¦ÄÜ Pod µÄ·þÎñÈë¿Ú¡£´ó¼Ò¿ÉÒÔ¿´µ½£¬Èç¹ûÓÐÈýÖÖ Pod µÄ»°£¬¾ÍÓÐÈý¸ö Service Cluster IP ×÷ΪËüÃǵķþÎñÈë¿Ú¡£ÕâЩ·½Ê½¶¼ÊÇ Client ¶ËµÄ£¬ÈçºÎÔÚ Server ¶Ë×öһЩ¿ØÖÆÄØ?
Ê×ÏÈ»áÆðһЩ Ingress µÄ Pod(Ingress ÊÇ K8s ºóÀ´ÐÂÔöµÄÒ»ÖÖ·þÎñ£¬±¾ÖÊÉÏ»¹ÊÇÒ»¶ÑͬÖ浀 Pod)£¬È»ºó½«ÕâЩ Pod ×éÖ¯ÆðÀ´£¬±©Â¶µ½Ò»¸ö NodePort µÄ IP£¬K8s µÄ¹¤×÷µ½´Ë¾Í½áÊøÁË¡£
ÈκÎÒ»¸öÓû§·ÃÎÊ 23456 ¶Ë¿ÚµÄ Pod ¾Í»á·ÃÎʵ½ Ingress µÄ·þÎñ£¬ËüµÄºóÃæÓÐÒ»¸ö Controller£¬»á°Ñ Service IP ºÍ Ingress µÄºó¶Ë½øÐйÜÀí£¬×îºó»áµ÷µ½ ClusterIP£¬ÔÙµ÷µ½ÎÒÃǵŦÄÜ Pod¡£Ç°ÃæÌáµ½ÎÒÃÇÈ¥¶Ô½ÓÔÆ³§ÉÌµÄ ELB£¬ÎÒÃÇ¿ÉÒÔÈà ELB È¥¼àÌýËùÓм¯Èº½ÚµãÉ쵀 23456 ¶Ë¿Ú£¬Ö»ÒªÔÚ 23456 ¶Ë¿ÚÉÏÓзþÎñµÄ£¬¾ÍÈÏΪÓÐÒ»¸ö Ingress µÄʵÀýÔÚÅÜ¡£
Õû¸öµÄÁ÷Á¿¾¹ýÍⲿÓòÃûµÄÒ»¸ö½âÎö¸ú·ÖÁ÷µ½´ïÁËÔÆ³§ÉÌµÄ ELB£¬ELB ¾¹ý¸ºÔؾùºâ²¢Í¨¹ý NodePort µÄ·½Ê½µ½´ï Ingress£¬Ingress ÔÙͨ¹ý ClusterIP µ÷Óõ½ºóÌ¨ÕæÕýµÄ Pod¡£ÕâÖÖϵͳ¿´ÆðÀ´±È½Ï·á¸»£¬½¡×³ÐÔÒ²±È½ÏºÃ¡£ÈκÎÒ»¸ö»·½Ú¶¼²»´æÔÚµ¥µãµÄÎÊÌ⣬ÈκÎÒ»¸ö»·½ÚÒ²¶¼ÓйÜÀíÓë·´À¡¡£
±¾ÎÄ×ܽá
±¾½Ú¿ÎµÄÖ÷ÒªÄÚÈݾ͵½´ËΪֹÁË£¬ÕâÀïΪ´ó¼Ò¼òµ¥×ܽáһϣº
·´ó¼ÒÒª´Ó¸ù±¾ÉÏÀí½â Kubernetes ÍøÂçÄ£Ð͵ÄÑÝ»¯À´Àú£¬Àí½â PerPodPerIP µÄÓÃÐÄÔÚÄÄÀï;
·ÍøÂçµÄÊÂÇéÍò±ä²»ÀëÆä×Ú£¬°´ÕÕÄ£ÐÍ´Ó 4 ²ãÏòϾÍÊÇ·¢°ü¹ý³Ì£¬·´Õý²ã²ã°þÀë¾ÍÊÇÊÕ°ü¹ý³Ì£¬ÈÝÆ÷ÍøÂçÒ²ÊÇÈç´Ë;
·Ingress µÈ»úÖÆÊÇÔÚ¸ü¸ßµÄ²ã´ÎÉÏ(·þÎñ<->¶Ë¿Ú)·½±ã´ó¼Ò²¿Êð¼¯Èº¶ÔÍâ·þÎñ£¬Í¨¹ýÒ»¸öÕæÕý¿ÉÓõIJ¿ÊðʵÀý£¬Ï£Íû´ó¼Ò°Ñ Ingress+Cluster IP + PodIP µÈ¸ÅÄîÁªºÏÀ´¿´£¬Àí½âÉçÇø³ǫ̈лúÖÆ¡¢ÐÂ×ÊÔ´¶ÔÏóµÄ˼¿¼¡£
²ÂÄãϲ»¶£º
ITÔËά¹¤³Ìʦѧϰ·Ïßͼ
2020ÄêITÔËάÈËÔ±¶¼ÐèÒªÓµÓÐÄÄЩÄÜÁ¦£¿
2020-04-02ʲôÊÇLinux½ø³ÌÓÅÏȼ¶£¿ÈçºÎ²é¿´½ø³ÌÓÅÏȼ¶
2020-04-01LinuxϵͳȨÏÞÏêϸ½éÉÜ[LinuxÔÆ¼ÆËã+ÔËά¿ª·¢]
2020-04-01LinuxÎı¾´¦ÀíÃüÁî½éÉÜ£¬linuxÎı¾´¦ÀíÃüÁîÄãÕÆÎÕÁËÂð£¿
2020-04-01linuxϵͳÈçºÎ°²×°²¿ÊðDiscuz£¿Discuz°²×°½Ì³Ì
2020-03-27LinuxÔËάµÄ·¢Õ¹ÀúÊ·ºÍºÍÐÐҵǰ¾°½éÉÜ[LinuxÔÆ¼ÆËã+ÔËά¿ª·¢]
2020-03-26
±±¾©Ð£Çø