±à¼ÍƼö: |
±¾±¾½éÉÜÁ˺ËÐÄ×é¼þÔÀí
¡ª¡ª pod ºËÐÄÔÀí¡¢ReplicaSet ¸±±¾¿ØÖÆÆ÷¡¢Deployment
²¿Êð¶ÔÏó¼°StatefulSet ²¿ÊðÓÐ״̬·þÎñ¡£
±¾ÎÄÀ´×ÔÓÚCSDN £¬ÓÉ»ðÁú¹ûÈí¼þLinda±à¼¡¢ÍƼö¡£ |
|
1. ºËÐÄ×é¼þÔÀí ¡ª¡ª pod ºËÐÄÔÀí
1.1 pod ÊÇʲô
pod Ò²¿ÉÒÔÀí½âÊÇÒ»¸öÈÝÆ÷£¬×°µÄÊÇ docker ´´½¨µÄÈÝÆ÷£¬Ò²¾ÍÊÇÓÃÀ´·â×°ÈÝÆ÷µÄÒ»¸öÈÝÆ÷£»
pod ÊÇÒ»¸öÐéÄ⻯·Ö×飬 ÓÐ×Ô¼ºµÄ IP µØÖ·ºÍÖ÷»úÃû hostname£¬ÀûÓà namespace
½øÐÐ×ÊÔ´¸ôÀ룬Ï൱ÓÚһ̨¶ÀÁ¢É³Ïä»·¾³£»
pod Ï൱ÓÚһ̨¶ÀÁ¢Ö÷»ú£¬ÄÚ²¿¿ÉÒÔ·â×°Ò»¸ö»ò¶à¸öÈÝÆ÷(ͨ³£ÊÇÒ»×éÏà¹ØµÄÈÝÆ÷)£¬ÄÚ²¿ÈÝÆ÷Ö®¼ä·ÃÎʲÉÓÃ
localhost¡£
1.2 pod ÓÃÀ´¸Éʲô
ͨ³£Çé¿öÏ£¬ÔÚ·þÎñ²¿ÊðµÄʱºò£¬Ê¹Óà pod À´¹ÜÀíÒ»×éÏà¹ØµÄ·þÎñ(Ò»¸ö pod ÖÐҪô²¿ÊðÒ»¸ö·þÎñ£¬ÒªÃ´²¿ÊðÒ»×éÓйØÏµµÄ·þÎñ)¡£ÈçÏÂͼÊDz¿ÊðÁËÒ»×éÓйØÏµµÄ·þÎñµÄ½á¹¹Í¼£¬ÆäÖÐ
C ±íʾÈÝÆ÷(container)£¬ÏÂÃæµÄ pod Àï¾ÍÓкܶà¸öÈÝÆ÷¡£

ÈçºÎÀí½âÒ»×éÏà¹ØµÄ·þÎñ£¿
ÈçÏÂͼ£ºÓÐÒ»¸öÇëÇóÊÇ·ÃÎÊ Nginx£¬È»ºó²¿ÊðÁË Nginx µÄÈÝÆ÷¾Í°ÑÇëÇóת·¢¸ø²¿ÊðÁË web ·þÎñµÄÈÝÆ÷£¬web
ÔÙ·ÃÎÊÊý¾Ý¿â£¬È»ºóÇëÇó»áÒÀ´Î·µ»ØÀ´Êý¾Ý£¬×îºóÔÙ·µ»Ø¸øÓû§¡£
Òò´ËÔÚ Á´Ê½µ÷Óõĵ÷ÓÃÁ´Â·ÉϵķþÎñ ½Ð×öÒ»×éÏà¹ØµÄ·þÎñ¡£

1.3 ʵÏÖ web ·þÎñ¼¯Èº
Ö»ÐèÒª¸´Öƶà¸ö pod µÄ¸±±¾¼´¿É£¬ÕâÒ²ÊÇ k8s ¹ÜÀíµÄÏȽøÖ®´¦¡£k8s Èç¹ûÒª½øÐÐÀ©ÈÝ»òËõÈÝ£¬Ö»ÐèÒª¿ØÖÆ
pod µÄÊýÁ¿¼´¿É¡£±ÈÈçÉÏÃæÄǸö²¿Êðģʽ£¬·þÎñ¼¯Èº¾ÍÊǸ´Öƶà¸öÕâÑùµÄ pod¡£

1.4 pod µ×²ãÍøÂçºÍÊý¾Ý´æ´¢ÊÇÈçºÎ½øÐеÄ
Ç°ÃæËµ¹ý pod ÄÚ²¿µÄÈÝÆ÷Ò²ÊÇÒ»¸ö¶ÀÁ¢µÄɳÏä»·¾³£¬Òò´ËÒ²ÓÐ×Ô¼ºµÄ ip ºÍ ¶Ë¿Ú¡£Èç¹ûÄÚ²¿ÈÝÆ÷»¹ÊÇͨ¹ý
ip:port À´Í¨ÐÅ£¬Ï൱ÓÚ»¹ÊÇÔ¶³Ì·ÃÎÊ£¬ÕâÑùµÄ»°ÐÔÄÜ»áÊܵ½Ò»¶¨µÄÓ°Ïì¡£ÈçºÎÌá¸ßÄÚ²¿ÈÝÆ÷Ö®¼ä·ÃÎʵÄÐÔÄÜÄØ£¿

pod²ã
pod ÄÚ²¿ÈÝÆ÷´´½¨Ö®Ç°£¬±ØÐëÏÈ´´½¨ pause ÈÝÆ÷¡£pause ÓÐÁ½¸ö×÷Ó㺹²ÏíÍøÂçºÍ¹²Ïí´æ´¢¡£
ÿ¸ö·þÎñÈÝÆ÷¹²Ïí pause ´æ´¢£¬²»ÐèÒª×Ô¼º´æ´¢Êý¾Ý£¬¶¼½»¸ø pauseά»¤¡£
pause Ò²Ï൱ÓÚÕâÈý¸öÈÝÆ÷µÄÍø¿¨£¬Òò´ËËûÃÇÖ®¼äµÄ·ÃÎÊ¿ÉÒÔͨ¹ý localhost ·½Ê½·ÃÎÊ£¬Ï൱ÓÚ·ÃÎʱ¾µØ·þÎñÒ»Ñù£¬ÐÔÄܷdz£¸ß£¨¾ÍÏñ±¾µØ¼¸Ì¨ÐéÄâ»úÖ®¼ä¿ÉÒÔ
ping ͨ£©¡£
2. ReplicaSet ¸±±¾¿ØÖÆÆ÷
2.1 ¸±±¾¿ØÖÆÆ÷»ù±¾Àí½â
×÷Ó㺹ÜÀí¿ØÖÆ pod ¸±±¾£¨·þÎñ¼¯Èº£©µÄÊýÁ¿£¬ÒÔʹÆäÓÀÔ¶ÓëÔ¤ÆÚÉ趨µÄÊýÁ¿±£³ÖÒ»Ö¡£
ÀýÈ磺replicas = 3 £¨´´½¨ 3 ¸ö¸±±¾£¬ÕâÊÇÌáǰÉèÖúõģ©

µ±¸±±¾ÉèÖÃΪ 3 ʱ£¬¸±±¾¿ØÖÆÆ÷½«»áÓÀÔ¶±£Ö¤¸±±¾ÊýÁ¿Îª 3¡£Òò´Ëµ±ÓÐ pod ·þÎñå´»úʱ£¨ÈçÉÏÃæµÚ
3 ¸ö pod£©£¬ÄǸ±±¾¿ØÖÆÆ÷»áÁ¢ÂíÖØÐ´´½¨Ò»¸öÐ嵀 pod£¬¾ÍÄܹ»±£Ö¤¸±±¾ÊýÁ¿Ò»Ö±ÎªÔ¤ÏÈÉ趨ºÃµÄ
3 ¸ö¡£
2.2 ReplicaSet ºÍ ReplicationController µÄÇø±ð
ReplicaSet ºÍ ReplicationController ¶¼ÊǸ±±¾¿ØÖÆÆ÷£¬ÆäÖУº
Ïàͬµã£º¶¼ÓÐÇ°Ãæ 2.1 ½ÚËùÃèÊöµÄ¹¦ÄÜ
²»Í¬µã£º±êǩѡÔñÆ÷µÄ¹¦Äܲ»Í¬
ReplicaSet ¿ÉÒÔʹÓñêǩѡÔñÆ÷½øÐÐ µ¥Ñ¡ ºÍ ¸´ºÏÑ¡Ôñ£»¶ø ReplicationController
Ö»Ö§³Ö µ¥Ñ¡²Ù×÷¡£
ʲôÒâË¼ÄØ£¿
¼ÙÉèÏÂÃæÓÐÏÂÃæÁ½¸ö²»Í¬»úÆ÷É쵀 Node ½áµã£¬ÈçºÎÖªµÀËüÃÇµÄ pod Æäʵ¶¼ÊÇÏàͬµÄÄØ£¿´ð°¸ÊÇͨ¹ý±êÇ©¡£
¸øÃ¿¸ö pod ´òÉϱêÇ© ( key=value ¸ñʽ£¬ÈçÏÂͼÖÐµÄ app=web, release=stable£¬ÕâÓÐÁ½¸öÑ¡ÏÏàͬµÄpod¸±±¾µÄ±êÇ©ÊÇÒ»ÑùµÄ)£¬ÓÚÊǸ±±¾¿ØÖÆÆ÷¿ÉÒÔͨ¹ý±êǩѡÔñÆ÷
seletor ȥѡÔñÒ»×éÏà¹ØµÄ·þÎñ¡£
Ò»µ© selector ºÍ pod µÄ±êǩƥÅäÉÏÁË£¬¾Í±íÃ÷Õâ¸ö pod
Êǵ±Ç°Õâ¸ö¸±±¾¿ØÖÆÆ÷¿ØÖƵ쬱íÃ÷Á˸±±¾¿ØÖÆÆ÷ºÍ pod µÄËùÊô¹ØÏµ¡£ÈçÏÂͼÖÐ seletor Ö¸¶¨ÁË
app = web ºÍ release=stable ÊǸ´ºÏÑ¡Ôñ£¬ÒªÓà ReplicaSet ²ÅÄÜʵÏÖÈôÓÃ
ReplicationController µÄ»°Ö»ÄÜÑ¡ÔñÒ»¸ö£¬ÈçֻѡÔñÆ¥Åäapp=web±êÇ©¡£ÕâÑùÏÂÃæµÄ
3 ¸ö pod ¾Í¹éÕâ¸ö¸±±¾¿ØÖÆÆ÷¹Ü¡£ 
¿É¼û ReplicaSet ¹¦ÄܸüÆëÈ«£¬ËùÒÔÔÚаæµÄ k8s ÖУ¬½¨ÒéʹÓÃ
ReplicaSet ×÷Ϊ¸±±¾¿ØÖÆÆ÷£¬²»ÔÙʹÓà ReplicationController¡£
3.
Deployment ²¿Êð¶ÔÏó
3.1 ¹ö¶¯¸üÐÂ
ReplicaSet ¸±±¾¿ØÖÆÆ÷¿ÉÒÔÓÀ¾Ã±£³Ö pod ¸±±¾µÄÊýÁ¿¡£µ«ÊÇÏîÄ¿µÄÐèÇóÔÚ²»¶ÏµÄµü´ú¡¢¸üУ¬ÏîÄ¿ÔÚ²»¶Ï·¢°æ¡£ÄÇÈçºÎ×öµ½·þÎñ¸üУ¿ÄѵÀ°Ñ·þÎñÍ£µôÔÙ°Ñа汾²¿ÊðÉÏÈ¥Â𣿵±È»²»ÊÇ£¬´ð°¸ÊÇÓùö¶¯¸üС£¾ÍÊÇÖØÐ´´½¨Ò»¸ö
pod (v2°æ±¾) À´´úÌæ ֮ǰµÄ pod (v1°æ±¾)¡£ 
ÄÇÊÇÈçºÎ¹ö¶¯¸üеÄÄØ£¿Éæ¼°µ½ÏÂÃæÒª½²µ½µÄ²¿ÊðÄ£ÐÍ¡£
3.2 ²¿ÊðÄ£ÐÍ
µ¥¶ÀµÄ ReplicaSet ÊDz»Ö§³Ö¹ö¶¯¸üеģ¬Deployment ¶ÔÏóÖ§³Ö¹ö¶¯¸üУ¬Í¨³£ºÍ ReplicaSet
Ò»ÆðʹÓá£
ÐèÒª¹ö¶¯¸üÐÂʱµÄ²½Ö裺
Deployment ½¨Á¢Ð嵀 Replicaset
Replicaset ÖØÐ½¨Á¢Ð嵀 pod
ËùÒÔËüÃÇÖ®¼äÊÇÓвã´Î¹ØÏµµÄ£¬Deployment ¹Ü Replicaset£¬Replicaset ά»¤
pod¡£ÔÚ¸üÐÂʱɾ³ýµÄÊÇ¾ÉµÄ pod£¬Àϰ汾µÄ ReplicaSet ÊDz»»áɾ³ýµÄ£¬ËùÒÔÔÚÐèҪʱ»¹¿ÉÒÔ»ØÍËÒÔǰµÄ״̬¡£

4. StatefulSet ²¿ÊðÓÐ״̬·þÎñ
4.1 ÒýÈ붨Òå
˼¿¼£ºÈç¹û MySQL(ÓÐ״̬·þÎñ) ʹÓÃÈÝÆ÷»¯²¿Êð£¬»á´æÔÚʲôÎÊÌ⣿
ÈÝÆ÷¶¼ÊÇÓÐÉúÃüÖÜÆÚµÄ£¬Ò»µ©å´»úÊý¾Ý¾ÍºÜ¿ÉÄܶªÊ§
pod Ò²ÓÐÉúÃüÖÜÆÚµÄ£¬Óà pod ²¿Êðʱ°Ñ pod ¼¯Èº¸±±¾ÖØÆôÒÔºóÒ²¿ÉÄÜ»á³öÏÖÊý¾Ý¶ªÊ§
Òò´Ë¶Ô k8s À´Ëµ£¬²»ÄÜʹÓà Deployment ²¿ÊðÓÐ״̬µÄ·þÎñ¡£Í¨³£Çé¿öÏ£¬Deployment
±»ÓÃÀ´²¿ÊðÎÞ״̬·þÎñ¡£
È»ºó StatefulSet ¾ÍÊÇΪÁ˽â¾öÓÐ״̬·þÎñʹÓÃÈÝÆ÷»¯²¿ÊðµÄÒ»¸öÎÊÌâ¡£
4.2 ÈçºÎÀí½â״̬·þÎñ
ÓÐ״̬·þÎñ
ÓÐʵʱµÄÊý¾ÝÐèÒª´æ´¢
ÔÚÓÐ״̬·þÎñ¼¯ÈºÖУ¬Èç¹û°Ñijһ¸ö·þÎñ³éÀë³öÀ´£¬Ò»¶Îʱ¼äºóÔÙ¼ÓÈë»Ø¼¯ÈºÍøÂ磬´Ëºó¼¯ÈºÍøÂç»áÎÞ·¨Ê¹ÓÃ
ÎÞ״̬·þÎñ
ûÓÐʵʱµÄÊý¾ÝÐèÒª´æ´¢
ÔÚÎÞ״̬·þÎñ¼¯ÈºÖУ¬Èç¹û°Ñijһ¸ö·þÎñ³éÀë³öÈ¥£¬Ò»¶Îʱ¼äºóÔÙ¼ÓÈë»Ø¼¯ÈºÍøÂ磬¶Ô¼¯Èº·þÎñÎÞÈκÎÓ°Ï죬ÒòΪËüÃDz»ÐèÒª×ö½»»¥£¬²»ÐèÒªÊý¾Ýͬ²½µÈµÈ¡£
4.3 ²¿ÊðÄ£ÐÍ
StatefulSet µÄ²¿ÊðÄ£ÐÍºÍ Deployment µÄºÜÏàËÆ¡£
±ÈÈçÏÂͼ£¬½èÖú PVC(Óë´æ´¢ÓйØ) ÎļþϵͳÀ´´æ´¢µÄʵʱÊý¾Ý£¬Òò´ËÏÂͼ¾ÍÊÇÒ»¸öÓÐ״̬·þÎñµÄ²¿Êð¡£
ÔÚ pod å´»úÖ®ºóÖØÐ½¨Á¢ pod ʱ£¬StatefulSet
ͨ¹ý±£Ö¤ hostname ²»·¢Éú±ä»¯À´±£Ö¤Êý¾Ý²»¶ªÊ§¡£Òò´Ë pod ¾Í¿ÉÒÔͨ¹ý hostname
À´¹ØÁª(ÕÒµ½) ֮ǰ´æ´¢µÄÊý¾Ý¡£ 
|