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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
´ø×ÅÎÊÌâѧ Kubernetes ¼Ü¹¹

 
À´Ô´£ºÀ´×ÔÍøÂç ·¢²¼ÓÚ£º 2017-7-25
  2750  次浏览      28
 

´ò¿ªÕâÆªÎÄÕµÄͬѧ£¬Ïë±Ø¶Ô docker ¶¼²»»áİÉú¡£docker ÊÇÒ»ÖÖÐéÄâÈÝÆ÷¼¼Êõ£¬ËüÉÏÊֱȽϼòµ¥£¬Ö»ÐèÔÚËÞÖ÷»úÉÏÆðÒ»¸ö docker engine£¬È»ºó¾ÍÄÜÓä¿ìµÄÍæË£ÁË£¬È磺À­¾µÏñ¡¢ÆðÈÝÆ÷¡¢¹ÒÔØÊý¾Ý¡¢Ó³Éä¶Ë¿ÚµÈµÈ¡£Ïà¶ÔÓÚ Kubernetes£¨K8S£©µÄÉÏÊÖ£¬¿Éν¼òµ¥ºÜ¶à¡£

ÄÇô K8S ÊÇʲô£¬ÓÖΪʲôÉÏÊÖÄѶȴó£¿K8S ÊÇÒ»¸ö»ùÓÚÈÝÆ÷¼¼ÊõµÄ·Ö²¼Ê½¼¯Èº¹ÜÀíϵͳ£¬Êǹȸ輸ʮÄêÀ´´ó¹æÄ£Ó¦ÓÃÈÝÆ÷¼¼ÊõµÄ¾­Ñé»ýÀÛºÍÉý»ªµÄÒ»¸öÖØÒª³É¹û¡£ËùÒÔΪÁËÄܹ»Ö§³Ö´ó¹æÄ£µÄ¼¯Èº¹ÜÀí£¬Ëü³ÐÔØÁ˺ܶàµÄ×é¼þ£¬¶øÇÒ·Ö²¼Ê½±¾ÉíµÄ¸´ÔӶȾͺܸߡ£ÓÖÒòΪ K8S Êǹȸè³öÆ·µÄ£¬ÒÀÀµÁ˺ܶà¹È¸è×Ô¼ºµÄ¾µÏñ£¬ËùÒÔ¶ÔÓÚ¹úÄÚµÄͬѧ»·¾³´î½¨µÄÄѶÈÓÖÔö¼ÓÁËÒ»²ã¡£

ÏÂÃæ£¬ÎÒÃÇ´ø×ÅÎÊÌ⣬һ²½²½À´¿´ K8S Öе½µ×ÓÐÄÄЩ¶«Î÷£¿

Ê×ÏÈ£¬¼ÈÈ»ÊǸö·Ö²¼Ê½ÏµÍ³£¬ÄÇÊÆ±ØÓжà¸ö Node ½Úµã£¨ÎïÀíÖ÷»ú»òÐéÄâ»ú£©£¬ËüÃǹ²Í¬×é³ÉÒ»¸ö·Ö²¼Ê½¼¯Èº£¬²¢ÇÒÕâЩ½ÚµãÖлáÓÐÒ»¸ö Master ½Úµã£¬ÓÉËüÀ´Í³Ò»¹ÜÀí Node ½Úµã¡£

ÈçͼËùʾ£º

ÎÊÌâÒ»£ºÖ÷½ÚµãºÍ¹¤×÷½ÚµãÊÇÈçºÎͨÐŵÄÄØ£¿

Ê×ÏÈ£¬Master ½ÚµãÆô¶¯Ê±£¬»áÔËÐÐÒ»¸ö kube-apiserver ½ø³Ì£¬ËüÌṩÁ˼¯Èº¹ÜÀíµÄ API ½Ó¿Ú£¬ÊǼ¯ÈºÄÚ¸÷¸ö¹¦ÄÜÄ£¿éÖ®¼äÊý¾Ý½»»¥ºÍͨÐŵÄÖÐÐÄÊàŦ£¬²¢ÇÒËüÒ³ÌṩÁËÍ걸µÄ¼¯Èº°²È«»úÖÆ£¨ºóÃæ»¹»á½²µ½£©¡£

ÔÚ Node ½ÚµãÉÏ£¬Ê¹Óà K8S ÖÐµÄ kubelet ×é¼þ£¬ÔÚÿ¸ö Node ½ÚµãÉ϶¼»áÔËÐÐÒ»¸ö kubelet ½ø³Ì£¬Ëü¸ºÔðÏò Master »ã±¨×ÔÉí½ÚµãµÄÔËÐÐÇé¿ö£¬Èç Node ½ÚµãµÄ×¢²á¡¢ÖÕÖ¹¡¢¶¨Ê±Éϱ¨½¡¿µ×´¿öµÈ£¬ÒÔ¼°½ÓÊÕ Master ·¢³öµÄÃüÁ´´½¨ÏàÓ¦ Pod¡£

ÔÚ K8S ÖУ¬Pod ÊÇ×î»ù±¾µÄ²Ù×÷µ¥Ôª£¬ËüÓë docker µÄÈÝÆ÷ÓÐÂÔ΢µÄ²»Í¬£¬ÒòΪ Pod ¿ÉÄܰüº¬Ò»¸ö»ò¶à¸öÈÝÆ÷£¨¿ÉÒÔÊÇ docker ÈÝÆ÷£©£¬ÕâЩÄÚ²¿µÄÈÝÆ÷Êǹ²ÏíÍøÂç×ÊÔ´µÄ£¬¼´¿ÉÒÔͨ¹ý localhost ½øÐÐÏ໥·ÃÎÊ¡£

¹ØÓÚ Pod ÄÚÊÇÈçºÎ×öµ½ÍøÂç¹²ÏíµÄ£¬Ã¿¸ö Pod Æô¶¯£¬ÄÚ²¿¶¼»áÆô¶¯Ò»¸ö pause ÈÝÆ÷£¨googleµÄÒ»¸ö¾µÏñ£©£¬ËüʹÓÃĬÈϵÄÍøÂçģʽ£¬¶øÆäËûÈÝÆ÷µÄÍøÂç¶¼ÉèÖøøËü£¬ÒÔ´ËÀ´Íê³ÉÍøÂçµÄ¹²ÏíÎÊÌâ¡£

ÈçͼËùʾ£º

ÎÊÌâ¶þ£ºMaster ÊÇÈçºÎ½« Pod µ÷¶Èµ½Ö¸¶¨µÄ Node Éϵģ¿

¸Ã¹¤×÷ÓÉ kube-scheduler À´Íê³É£¬Õû¸öµ÷¶È¹ý³Ìͨ¹ýÖ´ÐÐһЩÁи´ÔÓµÄËã·¨×îÖÕΪÿ¸ö Pod ¼ÆËã³öÒ»¸ö×î¼ÑµÄÄ¿±ê Node£¬¸Ã¹ý³ÌÓÉ kube-scheduler ½ø³Ì×Ô¶¯Íê³É¡£³£¼ûµÄÓÐÂÖѯµ÷¶È£¨RR£©¡£µ±È»Ò²ÓпÉÄÜ£¬ÎÒÃÇÐèÒª½« Pod µ÷¶Èµ½Ò»¸öÖ¸¶¨µÄ Node ÉÏ£¬ÎÒÃÇ¿ÉÒÔͨ¹ý½ÚµãµÄ±êÇ©£¨Label£©ºÍ Pod µÄ nodeSelector ÊôÐÔµÄÏ໥ƥÅ䣬À´´ïµ½Ö¸¶¨µÄЧ¹û¡£

ÈçͼËùʾ£º

¹ØÓÚ±êÇ©£¨Label£©ÓëÑ¡ÔñÆ÷£¨Selector£©µÄ¸ÅÄºóÃæ»á½øÒ»²½½éÉÜ

ÎÊÌâÈý£º¸÷½Úµã¡¢Pod µÄÐÅÏ¢¶¼ÊÇͳһά»¤ÔÚÄÄÀïµÄ£¬ÓÉË­À´Î¬»¤£¿

´ÓÉÏÃæµÄ Pod µ÷¶ÈµÄ½Ç¶È¿´£¬ÎÒÃǵÃÓÐÒ»¸ö´æ´¢ÖÐÐÄ£¬ÓÃÀ´´æ´¢¸÷½Úµã×ÊԴʹÓÃÇé¿ö¡¢½¡¿µ×´Ì¬¡¢ÒÔ¼°¸÷ Pod µÄ»ù±¾ÐÅÏ¢µÈ£¬ÕâÑù Pod µÄµ÷¶ÈÀ´ÄÜÕý³£½øÐС£

ÔÚ K8S ÖУ¬²ÉÓà etcd ×é¼þ ×÷Ϊһ¸ö¸ß¿ÉÓÃǿһÖÂÐԵĴ洢²Ö¿â£¬¸Ã×é¼þ¿ÉÒÔÄÚÖÃÔÚ K8S ÖУ¬Ò²¿ÉÒÔÍⲿ´î½¨¹© K8S ʹÓá£

¼¯ÈºÉϵÄËùÓÐÅäÖÃÐÅÏ¢¶¼´æ´¢ÔÚÁË etcd£¬ÎªÁË¿¼ÂǸ÷¸ö×é¼þµÄÏà¶Ô¶ÀÁ¢£¬ÒÔ¼°ÕûÌåµÄά»¤ÐÔ£¬¶ÔÓÚÕâЩ´æ´¢Êý¾ÝµÄÔö¡¢É¾¡¢¸Ä¡¢²é£¬Í³Ò»ÓÉ kube-apiserver À´½øÐе÷Óã¬apiserver Ò²ÌṩÁË REST µÄÖ§³Ö£¬²»½ö¶Ô¸÷¸öÄÚ²¿×é¼þÌṩ·þÎñÍ⣬»¹¶Ô¼¯ÈºÍⲿÓû§±©Â¶·þÎñ¡£

ÍⲿÓû§¿ÉÒÔͨ¹ý REST ½Ó¿Ú£¬»òÕß kubectl ÃüÁîÐй¤¾ß½øÐм¯Èº¹ÜÀí£¬ÆäÄÚÔÚ¶¼ÊÇÓë apiserver ½øÐÐͨÐÅ¡£

ÈçͼËùʾ£º

ÎÊÌâËÄ£ºÍⲿÓû§ÈçºÎ·ÃÎʼ¯ÈºÄÚÔËÐÐµÄ Pod £¿

Ç°Ãæ½²ÁËÍⲿÓû§ÈçºÎ¹ÜÀí K8S£¬¶øÎÒÃǸü¹ØÐĵÄÊÇÄÚ²¿ÔËÐÐµÄ Pod ÈçºÎ¶ÔÍâ·ÃÎÊ¡£Ê¹Óùý docker µÄͬѧӦ¸ÃÖªµÀ£¬Èç¹ûʹÓà bridge ģʽ£¬ÔÚÈÝÆ÷´´½¨Ê±£¬¶¼»á·ÖÅäÒ»¸öÐéÄâ IP£¬¸Ã IP ÍⲿÊÇû·¨·ÃÎʵ½µÄ£¬ÎÒÃÇÐèÒª×öÒ»²ã¶Ë¿ÚÓ³É䣬½«ÈÝÆ÷ÄÚ¶Ë¿ÚÓëËÞÖ÷»ú¶Ë¿Ú½øÐÐÓ³Éä°ó¶¨£¬ÕâÑùÍⲿͨ¹ý·ÃÎÊËÞÖ÷»úµÄÖ¸¶¨¶Ë¿Ú£¬¾Í¿ÉÒÔ·ÃÎʵ½ÄÚ²¿ÈÝÆ÷¶Ë¿ÚÁË¡£

ÄÇô£¬K8S µÄÍⲿ·ÃÎÊÊÇ·ñÒ²ÊÇÕâÑùʵÏֵģ¿´ð°¸ÊÇ·ñ¶¨µÄ£¬K8S ÖÐÇé¿öÒª¸´ÔÓһЩ¡£ÒòΪÉÏÃæ½²µÄ docker Êǵ¥»úģʽÏµģ¬¶øÇÒÒ»¸öÈÝÆ÷¶ÔÍâ¾Í±©Â¶Ò»¸ö·þÎñ¡£ÔÚ·Ö²¼Ê½¼¯ÈºÏ£¬Ò»¸ö·þÎñÍùÍùÓɶà¸ö Application Ìṩ£¬ÓÃÀ´·Öµ£·ÃÎÊѹÁ¦£¬¶øÇÒÕâЩ Application ¿ÉÄÜ»á·Ö²¼ÔÚ¶à¸ö½ÚµãÉÏ£¬ÕâÑùÓÖÉæ¼°µ½ÁË¿çÖ÷»úµÄͨÐÅ¡£

ÕâÀK8S ÒýÈëÁË service µÄ¸ÅÄ½«¶à¸öÏàͬµÄ Pod °ü×°³ÉÒ»¸öÍêÕûµÄ service ¶ÔÍâÌṩ·þÎñ£¬ÖÁÓÚ»ñÈ¡µ½ÕâЩÏàͬµÄ Pod£¬Ã¿¸ö Pod Æô¶¯Ê±¶¼»áÉèÖà labels ÊôÐÔ£¬ÔÚ service ÖÐÎÒÃÇͨ¹ýÑ¡ÔñÆ÷ selector£¬Ñ¡Ôñ¾ßÓÐÏàͬ name ±êÇ©ÊôÐ﵀ Pod£¬×÷ΪÕûÌå·þÎñ£¬²¢½«·þÎñÐÅϢͨ¹ý apiserver ´æÈë etcd ÖУ¬¸Ã¹¤×÷ÓÉ Service Controller À´Íê³É¡£Í¬Ê±£¬Ã¿¸ö½ÚµãÉÏ»áÆô¶¯Ò»¸ö kube-proxy ½ø³Ì£¬ÓÉËüÀ´¸ºÔð·þÎñµØÖ·µ½ Pod µØÖ·µÄ´úÀíÒÔ¼°¸ºÔؾùºâµÈ¹¤×÷¡£

ÈçͼËùʾ£º

ÎÊÌâÎ壺Pod ÈçºÎ¶¯Ì¬À©ÈݺÍËõ·Å£¿

¼ÈȻ֪µÀÁË·þÎñÊÇÓÉ Pod ×é³ÉµÄ£¬ÄÇô·þÎñµÄÀ©ÈÝÒ²¾ÍÒâζ×Å Pod µÄÀ©ÈÝ¡£Í¨Ë׵㽲£¬¾ÍÊÇÔÚÐèҪʱ½« Pod ¸´Öƶà·Ý£¬ÔÚ²»ÐèÒªºó£¬½« Pod Ëõ¼õÖÁÖ¸¶¨·ÝÊý¡£K8S ÖÐͨ¹ý Replication Controller À´½øÐйÜÀí£¬ÎªÃ¿¸ö Pod ÉèÖÃÒ»¸öÆÚÍûµÄ¸±±¾Êý£¬µ±Êµ¼Ê¸±±¾ÊýÓëÆÚÍû²»·ûʱ£¬¾Í¶¯Ì¬µÄ½øÐÐÊýÁ¿µ÷Õû£¬ÒÔ´ïµ½ÆÚÍûÖµ¡£ÆÚÍûÊýÖµ¿ÉÒÔÓÉÎÒÃÇÊÖ¶¯¸üУ¬»ò×Ô¶¯À©ÈÝ´úÀíÀ´Íê³É¡£

ÈçͼËùʾ£º

ÎÊÌâÁù£º¸÷¸ö×é¼þÖ®¼äÊÇÈçºÎÏ໥Э×÷µÄ£¿

×îºó£¬½²Ò»Ï kube-controller-manager Õâ¸ö½ø³ÌµÄ×÷Óá£ÎÒÃÇÖªµÀÁË ectd ÊÇ×÷Ϊ¼¯ÈºÊý¾ÝµÄ´æ´¢ÖÐÐÄ£¬ apiserver ÊǹÜÀíÊý¾ÝÖÐÐÄ£¬×÷ΪÆäËû½ø³ÌÓëÊý¾ÝÖÐÐÄͨÐŵÄÇÅÁº¡£¶ø Service Controller¡¢Replication Controller ÕâЩͳһ½»ÓÉ kube-controller-manager À´¹ÜÀí£¬kube-controller-manager ×÷Ϊһ¸öÊØ»¤½ø³Ì£¬Ã¿¸ö Controller ¶¼ÊÇÒ»¸ö¿ØÖÆÑ­»·£¬Í¨¹ý apiserver ¼àÊÓ¼¯ÈºµÄ¹²Ïí״̬£¬²¢³¢ÊÔ½«Êµ¼Ê״̬ÓëÆÚÍû²»·ûµÄ½øÐиı䡣¹ØÓÚ Controller£¬manager Öл¹°üº¬ÁË Node ½Úµã¿ØÖÆÆ÷£¨Node Controller£©¡¢×ÊÔ´Åä¶î¹Ü¿ØÖÆÆ÷£¨ResourceQuota Controller£©¡¢ÃüÃû¿Õ¼ä¿ØÖÆÆ÷£¨Namespace Controller£©µÈ¡£

ÈçͼËùʾ£º

×ܽá

±¾ÎÄͨ¹ýÎÊ´ðµÄ·½Ê½£¬Ã»ÓÐÉæ¼°ÈκÎÉîÈëµÄʵÏÖϸ½Ú£¬´ÓÕûÌåµÄ½Ç¶È£¬¸ÅÄîÐԵĽéÉÜÁË K8S ÖÐÉæ¼°µÄ»ù±¾¸ÅÄÆäÖÐʹÓÃÏà¹ØµÄ°üÀ¨ÓУº

1.Node

2.Pod

3.Label

4.Selector

5.Replication Controller

6.Service Controller

7.ResourceQuota Controller

8.Namespace Controller

9.Node Controller

ÒÔ¼°ÔËÐнø³ÌÏà¹ØµÄÓУº

1.kube-apiserver

2.kube-controller-manager

3.kube-scheduler

4.kubelet

5.kube-proxy

6.pause

 

   
2750 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

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

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

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