±à¼ÍƼö: |
±¾±¾¸´Ï°ÁË
pod Ïà¹ØºËÐĽṹ¡¢½²½âÁËpod ÈçºÎ¶ÔÍâÌṩ·ÃÎʼ°pod µÄ¸ºÔؾùºâ¡£
±¾ÎÄÀ´×ÔÓÚCSDN £¬ÓÉ»ðÁú¹ûÈí¼þLinda±à¼¡¢ÍƼö¡£ |
|
1. ¸´Ï° pod Ïà¹ØºËÐĽṹ
1.1 pod ½á¹¹
pod Ï൱ÓÚÒ»¸öÈÝÆ÷£¬pod ÓжÀÁ¢µÄ ip µØÖ·£¬Ò²ÓÐ×Ô¼ºµÄ hostname£¬ÀûÓà namespace
½øÐÐ×ÊÔ´¸ôÀ룬Ï൱ÓÚÒ»¸ö¶ÀÁ¢É³Ïä»·¾³¡£
pod ÄÚ²¿·â×°µÄÊÇÈÝÆ÷£¬¿ÉÒÔ·â×°Ò»¸ö£¬»òÕß¶à¸öÈÝÆ÷£¨Í¨³£ÊÇÒ»×éÏà¹ØµÄÈÝÆ÷£©
1.2 pod ÍøÂç
pod ÓÐ×Ô¼º¶ÀÁ¢µÄ IP µØÖ·
pod ÄÚ²¿µÄÈÝÆ÷Ö®¼äÊÇͨ¹ý localhost ½øÐзÃÎÊ
2. pod ÈçºÎ¶ÔÍâÌṩ·ÃÎÊ
Ê×ÏÈ pod ÓÐ×Ô¼ºµÄ IP ºÍ hostname£¬µ« pod ÊÇÐéÄâµÄ×ÊÔ´¶ÔÏó (ÔÚ¼ÆËã»úÖбíÏÖΪ½ø³Ì)£¬Ã»ÓжÔӦʵÌå
(ÎïÀí»ú£¬ÎïÀíÍø¿¨) ÓëÖ®¶ÔÓ¦£¬ËùÒÔÊÇÎÞ·¨Ö±½Ó¶ÔÍâÌṩ·þÎñ·ÃÎʵġ£
Òò´ËÈç¹û pod Ïë¶ÔÍâÌṩ·þÎñ£¬±ØÐë°ó¶¨ÎïÀí»ú¶Ë¿Ú (¼´ÔÚÎïÀí»úÉÏ¿ªÆô¶Ë¿Ú£¬ÈÃÕâ¸ö¶Ë¿ÚºÍ pod
µÄ¶Ë¿Ú½øÐÐÓ³Éä)£¬ÕâÑù¾Í¿ÉÒÔͨ¹ýÎïÀí»ú½øÐÐÊý¾Ý°üµÄת·¢¡£
ÏÂÃæÒÔһ̨ Linux ϵͳµÄ»úÆ÷ΪÀý×Ó£¨ logstash ÊÇ×öÈÕÖ¾ÊÕ¼¯Óõģ©

3. pod µÄ¸ºÔؾùºâ
ºÜ¹Ø¼üµÄÒ»¸öÎÊÌ⣺һ×éÏà¹ØµÄ pod ¸±±¾£¬ÈçºÎʵÏÖ·ÃÎʸºÔؾùºâ£¿¾ÍÈçµ±ÇëÇó´ïµ½£¬ÇëÇóת·¢¸øÄĸö pod
±È½ÏºÃ£¿
Ò»¸öÏë·¨¾ÍÊÇÓà pod ÔÙ²¿ÊðÒ»¸ö Nginx¡£
¾ÙÀý£ºÈçÏÂͼ£¬×¢ÒâÏÂͼÓÒ±ßµÄ Node ÀïÃæÓÐÁ½¸öÊÇ Ö§¸¶ ·þÎñ£¬Óë¶©µ¥·þÎñµÄÊDz»Í¬ÀàÐ굀 pod¡£Èç¹ûÒ»¸öÇëÇó¶©µ¥µÄ·þÎñ·¢À´ÉÏÃæÄǸö
Nginx£¬ÄÇÕâ¸ö pod ¿ÉÒÔÓÐ 4 Ìõת·¢Â·Ïߣ¬¿ÉÒÔÏëµ½Óà hash ѽʲôµÄ°Ñ²»Í¬ÇëÇóÓ³Éäµ½²»Í¬µÄ
pod ȥת·¢¡£µ«Äܲ»ÄÜÕâô×öÄØ£¿

˼¿¼£ºpod ÊÇÒ»¸ö½ø³Ì£¬ÊÇÓÐÉúÃüÖÜÆÚµÄ£¬Ò»µ©å´»ú¡¢°æ±¾¸üж¼»á´´½¨Ð嵀 pod£¨ IP µØÖ·»á±ä»¯£¬hostname
»á±ä»¯£©£¬´ËʱÔÙʹÓà Nginx ×ö¸ºÔؾùºâ²»Ì«ºÏÊÊ£¬ÒòΪËü²»ÖªµÀ pod ·¢ÉúÁ˸ı䣬ÄÇÇëÇó¾Í²»Äܱ»½ÓÊÜÁË¡£ËùÒÔ·þÎñ·¢ÉúÁ˱仯Ëü¸ù±¾²»ÖªµÀ£¬Nginx
ÎÞ·¨·¢ÏÖ·þÎñ£¬²»ÄÜÓà Nginx ×ö¸ºÔؾùºâ¡£ÄǸÃÈçºÎʵÏÖÄØ£¿Ê¹Óà Service ×ÊÔ´¶ÔÏó¡£
3.1 ʲôÊÇ Service ×ÊÔ´¶ÔÏó
POD IP£ºpod µÄ IP µØÖ·
NODE IP£ºÎïÀí»úµÄ IP µØÖ·
cluster IP£ºÐéÄâ IP£¬ÊÇÓÉ kubernetes ³éÏó³öµÄ service ¶ÔÏó£¬Õâ¸ö
service ¶ÔÏó¾ÍÊÇÒ»¸ö VIP (virtual IP, VIP) µÄ×ÊÔ´¶ÔÏó
3.2 service ÈçºÎʵÏÖ¸ºÔؾùºâ
ÀýÈçÏÖÔÚÒª¸ºÔؾùºâµØ·ÃÎÊÒ»×éÏàͬµÄ·þÎñ¸±±¾¡ª¡ª¶©µ¥£¬Õâʱ¾ÍҪȥ×öÒ»¸ö
service£¬¶ÔÍâ±íÏÖ³öÊÇÒ»¸ö½ø³Ì»ò×ÊÔ´¶ÔÏó£¬ÓÐÐéÄâµÄ IP (VIP) ºÍ¶Ë¿Ú¡£ÇëÇó»á·ÃÎÊ service£¬È»ºó
service ×Ô¼º»á ¸ºÔؾùºâ µØ·¢Ë͸øÏàÓ¦·þÎñµÄ POD£¬Ò²¾ÍÊÇÏÂͼÖÐ 4 ¸öÏàͬµÄ pod¡£ 
3.3 ÉîÈë service VIP
service ºÍ pod ¶¼ÊÇÒ»¸ö½ø³Ì£¬¶¼ÊÇÐéÄâµÄ£¬Òò´Ëʵ¼ÊÉÏ service Ò²²»ÄܶÔÍâÍøÌṩ·þÎñ
service ºÍ pod Ö®¼ä¿ÉÒÔÖ±½Ó½øÐÐͨÐÅ£¬ËüÃǵÄͨÐÅÊôÓÚ¾ÖÓòÍøÍ¨ÐÅ
¸ºÔزßÂÔ£º°ÑÇëÇ󽻸ø service ºó£¬service ʹÓà iptables£¬ipvs À´ÊµÏÖÊý¾Ý°üµÄ·Ö·¢
¶øÒª¶ÔÍâÍøÌṩ·þÎñ£¬Ê×ÏÈÐèÒªºÍ֮ǰһÑù ÔÚÎïÀí»úÉÏÒ²°ó¶¨Ò»¸ö¶Ë¿Ú
À´½ÓÊÜ·ÃÎÊÇëÇó£¬È»ºó°ÑÇëÇóת·¢¸ø service£¬service ÔÙ°ÑÊý¾Ý°ü·Ö·¢¸øÏàÓ¦µÄ POD¡£·ÃÎÊÁ÷³ÌÈçÏÂͼËùʾ£º

˼¿¼1£ºÄÇ service ¶ÔÏóÊÇÈçºÎºÍ pod ½øÐйØÁªµÄÄØ£¿
ËüÃÇÖ®¼äµÄ¹ØÁªÀûÓÃµÄ »¹ÊDZêǩѡÔñÆ÷ selector¡£ÇÒservice Ö»ÄÜ¶Ô Ò»×éÏàͬµÄ¸±±¾ Ìṩ·þÎñ£¬²»ÄÜ¿ç×éÌṩ·þÎñ¡£Èç¹ûÓÐÁíÒ»×飬ÐèÒªÔÙ´´½¨Ò»¸ö
service¡£Òò´Ë²»Í¬µÄÒµÎñ»áÓв»Í¬µÄ service¡£
¾ÙÀý£ºservice ºÍ Ò»×é pod ¸±±¾ÊÇͨ¹ý±êǩѡÔñÆ÷½øÐйØÁªµÄ£¬ÏàͬµÄ¸±±¾µÄ±êÇ©ÊÇÒ»ÑùµÄ¡£
selector£ºapp = x Ñ¡ÔñÒ»×é¶©µ¥µÄ·þÎñµÄ pod£¬´´½¨Ò»¸ö
service£»app = y Ñ¡ÔñÁËÒ»×éÖ§¸¶µÄ·þÎñµÄ pod¡£Í¨¹ýÒ»¸ö endpoints ÊôÐÔ´æ´¢Õâ×é
pod µÄ IP µØÖ·£¬ÕâÑù¾ÍÓÐÁËÓ³Éä¹ØÏµÁË (¹ØÁªÆðÀ´)¡£
 ˼¿¼2£ºpod å´»ú»ò·¢²¼Ð°汾ÁË£¬service ÊÇÈçºÎ·¢ÏÖ pod
ÒѾ·¢Éú±ä»¯µÄ£¿
ͨ¹ý k8s ÖеÄÒ»¸ö×é¼þ ¡ª¡ª kube-proxy (µÚ 1 ƪÓÐÌáµ½¹ý)£¬Ã¿¸ö NODE Àï¶¼ÔËÐÐ×ÅÕâ¸ö·þÎñ¡£ËüÐèÒª×öµÄ¹¤×÷ÈçÏÂͼÓҲࣺservice
ʵÏÖ·þÎñµÄ·¢ÏÖ£ºkube-proxy ¼à¿Ø pod£¬Ò»µ©·¢ÏÖ pod ·þÎñ±ä»¯£¬½«»á°ÑÐ嵀 ip µØÖ·¸üе½
service¡£
×¢Ò⣺endpoints ÄÇЩ¶¼ÊÇ´æ´¢ÔÚ etcd ÀïµÄ (Ò²ÊǵÚ
1 ƪÌáµ½¹ýµÄ)£¬ËùÒÔ kube-proxy ¸üеĴ洢ÔÚ etcd ÀïµÄÓ³Éä¹ØÏµ¡£
|