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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Ö§³Å·þÎñ£ºK8sÈÝÆ÷¹ÜÀíÓëÓ¦Óò¿Êð
 
×÷ÕߣºÈÝÆ÷¼¼Êõ°®ºÃÕß
  2707  次浏览      31
 2020-5-28 
 
±à¼­ÍƼö:
ÎÄÕÂÖ÷Òª½éÉÜÁËKubernetesÊÇʲôÒÔ¼°Ò»Ð©»ù±¾¸ÅÄÐÂÒ»´úÊý×Ö»¯ÆóÒµÔÆÆ½Ì¨ÀïÈçºÎʹÓÃKubernetes£¬ÒÔ¼°Óöµ½µÄһЩÎÊÌâ¡£
±¾ÎÄÀ´×ÔÓÚ²©¿ÍÔ°,ÓÉ»ðÁú¹ûÈí¼þAlice±à¼­ÍƼö¡£

½éÉÜÔÚÐÂÒ»´úÊý×Ö»¯ÆóÒµÔÆÆ½Ì¨ÖжÔÓÚKubernetesµÄѧϰÒÔ¼°Ê¹ÓõÄ×ܽᡣ

 

Ê×ÏÈ¿ªÊ¼µÚÒ»²¿·Ö£º

KubernetesÏîÄ¿ÊÇ2014ÄêÓÉGoogle¹«Ë¾Æô¶¯µÄ£¬ÊÇGoogle¹«Ë¾ÔÚ15ÄêÉú²ú»·¾³¾­Ñé»ù´¡ÉÏ £¬½áºÏÁËÉçÇøµÄһЩÓÅÐãµã×ÓºÍʵ¼ù¶ø¹¹½¨µÄ¡£

KubernetesÊÇÒ»¸öÒÔÈÝÆ÷ΪÖÐÐĵĻù´¡¼Ü¹¹£¬¿ÉÒÔʵÏÖÔÚÎïÀí¼¯Èº»òÐéÄâ»ú¼¯ÈºÉϵ÷¶ÈºÍÔËÐÐÈÝÆ÷£¬ÌṩÈÝÆ÷×Ô¶¯²¿Êð¡¢À©Õ¹ºÍ¹ÜÀíµÄ¿ªÔ´Æ½Ì¨¡£Âú×ãÁËÓ¦ÓóÌÐòÔÚÉú²ú»·¾³ÖеÄһЩͨÓÃÐèÇó£ºÓ¦ÓÃʵÀý¸±±¾¡¢Ë®Æ½×Ô¶¯À©Õ¹¡¢ÃüÃûÓë·¢ÏÖ¡¢¸ºÔؾùºâ¡¢¹ö¶¯Éý¼¶¡¢×ÊÔ´¼à¿ØµÈ¡£

ʹÓÃKubernetes¿ÉÒÔ£º

1.×Ô¶¯»¯ÈÝÆ÷µÄ²¿ÊðºÍ¸´ÖÆ

2.ËæÊ±À©Õ¹»òÊÕËõÈÝÆ÷¹æÄ£

3.½«ÈÝÆ÷×éÖ¯³É×飬²¢ÇÒÌṩÈÝÆ÷¼äµÄ¸ºÔؾùºâ

4.ºÜÈÝÒ×µØÉý¼¶Ó¦ÓóÌÐòÈÝÆ÷µÄа汾

5.ÌṩÈÝÆ÷µ¯ÐÔ£¬Èç¹ûÈÝÆ÷ʧЧ¾ÍÌæ»»Ëü£¬µÈµÈ

Kubernetes²»Ìṩ£º

1.Öмä¼þ£¨ÀýÈçÏûÏ¢×ÜÏߣ©¡¢Êý¾Ý´¦Àí¿ò¼Ü£¨ÈçSpark£©¡¢Êý¾Ý¿â£¨Èçmysql£©£¬Ò²²»Ìṩ¼¯Èº´æ´¢ÏµÍ³£¨ÈçCeph£©¡£

2.Ô´´úÂëµ½¾µÏñµÄ´¦Àí£¬¼´²»²¿ÊðÔ´´úÂëÒ²²»»á¹¹½¨µÄÓ¦Ó㬳ÖÐø¼¯³É(Continuous Integration: CI)µÄ¹¤×÷Ò²ÐèÒªÓÉÓû§°´×Ô¼ºÏîÄ¿¾ö¶¨¡£

3.²»ÌṩӦÓÃÅäÖÃϵͳ¡£

4.²»Ìṩ»úÆ÷ÅäÖá¢Î¬»¤¡¢¹ÜÀí¡£

Kubernetes¼¯ÈºÓÉ2Àà½Úµã×é³É£ºMasterºÍNode¡£

ÔÚMasterÉÏÔËÐÐetcd¡¢kube-apiserver¡¢kube-scheduler¡¢kube-controller-magagerËĸö×é¼þ£¬ÆäÖкó3¸ö×é¼þ¹¹³ÉÁËKubernetesµÄ×Ü¿ØÖÐÐÄ£¬¸ºÔð¶Ô¼¯ÈºÖÐËùÓÐ×ÊÔ´½øÐйܿغ͵÷¶È¡£

ÔÚNodeÉÏÔËÐÐkubelet¡¢kube-proxy¡¢dockerdaemonÈý¸ö×é¼þ£¬ÆäÖÐǰ2¸ö×é¼þ¸ºÔð¶Ô±¾½ÚµãÉϵÄPodµÄÉúÃüÖÜÆÚ½øÐйÜÀí£¬ÒÔ¼°ÊµÏÖ·þÎñ´úÀíµÄ¹¦ÄÜ¡£

ÁíÍâÔÚËùÓнáµãÉ϶¼¿ÉÒÔÔËÐÐkubectlÃüÁîÐй¤¾ß£¬ËüÌṩÁËKubernetesµÄ¼¯Èº¹ÜÀí¹¤¾ß¼¯¡£

etcd£ºÊÇÒ»¸ö¸ß¿ÉÓõÄkey/value´æ´¢ÏµÍ³£¬ÓÃÓڳ־û¯K8s¼¯ÈºÄÚÖеÄËùÓÐ×ÊÔ´¶ÔÏó£¬ÀýÈ缯ȺÖеÄNode¡¢Service¡¢Pod¡¢RC¡¢NamespaceµÈ¡£

kube-apiserver£º·â×°Á˲Ù×÷etcdµÄ½Ó¿Ú£¬ÒÔRESTµÄ·½Ê½¶ÔÍâÌṩ·þÎñ£¬ÕâЩ½Ó¿Ú»ù±¾É϶¼ÊǼ¯Èº×ÊÔ´¶ÔÏóµÄÔöɾ¸Ä²éÒÔ¼°¼àÌý×ÊÔ´±ä»¯µÄ½Ó¿Ú£¬Èç´´½¨Pod¡¢´´½¨RC£¬¼àÌýPod±ä»¯µÄ½Ó¿Ú¡£kube-apiserverÊÇÁ¬½ÓÆäËü·þÎñ×é¼þµÄÊàŦ¡£

kube-scheduler£º¼¯ÈºÖеĵ÷¶ÈÆ÷£¬¸ºÔðPodÔÚ¼¯Èº½ÚµãÖеĵ÷¶È·ÖÅä¡£

kube-controller-manager£º¼¯ÈºÄÚ²¿µÄ¹ÜÀí¿ØÖÆÖÐÐÄ£¬Ö÷ҪʵÏÖKubernetes¼¯ÈºµÄ¹ÊÕϼì²éºÍ»Ö¸´×Ô¶¯»¯µÄ¹¤×÷¡£±ÈÈçendpoints¿ØÖÆÆ÷¸ºÔðEndpoints¶ÔÏóµÄ´´½¨£¬¸üС£node¿ØÖÆÆ÷¸ºÔð½ÚµãµÄ·¢ÏÖ£¬¹ÜÀíºÍ¼à¿Ø¡£¸´ÖÆ¿ØÖÆÆ÷¸ºÔðpodµÄÊýÁ¿·ûºÏÔ¤ÆÚ¶¨Òå¡£

kubelet£º¸ºÔð±¾NodeÉϵÄPod´´½¨¡¢Ð޸ġ¢¼à¿Ø¡¢É¾³ýµÈÈ«ÉúÃüÖÜÆÚ¹ÜÀí£¬ÒÔ¼°Pod¶ÔÓ¦µÄÈÝÆ÷¡¢¾µÏñ¡¢¾íµÄ¹ÜÀí£¬Í¬Ê±¶¨Ê±Éϱ¨±¾NodeµÄ״̬ÐÅÏ¢¸økube-apiserver¡£

kube-proxy£ºÊµÏÖÁËServiceµÄ´úÀíÒÔ¼°Èí¼þģʽµÄ¸ºÔؾùºâÆ÷¡£

ÏÂÃæÖ÷Òª½éÉÜK8sµÄһЩ»ù±¾¸ÅÄʹ´ó¼Ò¶ÔK8sÓиöÁ˽⡣

Pod£ºPodÊÇKubernetesµÄÀï¿É²¿ÊðµÄºÍ¹ÜÀíµÄ×îСµ¥Ôª¡£

LabelandSelector£ºLabelÒÔkey/value¼üÖµ¶ÔµÄÐÎʽ¸½¼Óµ½¸÷ÖÖ¶ÔÏóÉÏ£¬Selector¿ÉÒÔ¸ù¾ÝLabelÀ´Ñ¡Ôñ¶ÔÏó¡£

ReplicationController£ºPodµÄ¸±±¾¿ØÖÆÆ÷¡£

Service£ºÒ»×éÌṩÏàͬ·þÎñµÄpodµÄ¶ÔÍâ·ÃÎʽӿڡ£

Namespace£º½«¶ÔÏóÂß¼­·Ö×é¡£

ÆäÓàÈçVolume¡¢PV¡¢ PVC¡¢HPA¡¢Deployment¡¢RS¡¢DaemonSetµÈ¾Í²»½éÉÜÁË¡£

PodÊÇKubernetesµÄÀï¿É²¿ÊðµÄºÍ¹ÜÀíµÄ×îСµ¥Ôª£¬Ò»¸ö»ò¶à¸öÈÝÆ÷¹¹³ÉÒ»¸öPod£¬Í¨³£PodÀïµÄÈÝÆ÷ÔËÐÐÏàͬµÄÓ¦Óá£Pod°üº¬µÄÈÝÆ÷¶¼ÔËÐÐÔÚͬһ¸öËÞÖ÷»úÉÏ£¬¿´×÷Ò»¸öͳһ¹ÜÀíµ¥Ôª¡£

ÿ¸öPodÖж¼ÓÐÒ»¸öpauseÈÝÆ÷£¬pauseÈÝÆ÷×öΪPodµÄÍøÂç½ÓÈëµã£¬PodÖÐÆäËûµÄÈÝÆ÷»áʹÓÃÈÝÆ÷Ó³ÉäģʽÆô¶¯²¢½ÓÈëµ½Õâ¸öpauseÈÝÆ÷¡£ÊôÓÚͬһ¸öPodµÄËùÓÐÈÝÆ÷¹²ÏíÍøÂçµÄnamespace¡£

Ò»¸öPod¿ÉÒÔ±»Ò»¸öÈÝÆ÷»¯µÄ»·¾³¿´×öÊÇÓ¦ÓòãµÄÂß¼­ËÞÖ÷»ú(Logical Host)£¬Ã¿¸öPodÖÐÓжà¸öÈÝÆ÷£¬Í¬Ò»¸öPodÖеĶà¸öÈÝÆ÷ͨ³£ÊǽôÃÜñîºÏµÄ¡£Í¬Ò»¸öpodÖеÄÈÝÆ÷¹²ÏíÈçÏÂ×ÊÔ´£º

PID Ãû×ֿռ䣺PodÖв»Í¬Ó¦ÓóÌÐò¿ÉÒÔ¿´µ½ÆäËüÓ¦ÓóÌÐòµÄ½ø³ÌID¡£

ÍøÂçÃû×ֿռ䣺PodÖеĶà¸öÈÝÆ÷·ÃÎÊͬһ¸öIPºÍ¶Ë¿Ú¿Õ¼ä¡£

IPCÃû×ֿռ䣺PodÖеÄÓ¦ÓÃÄܹ»Ê¹ÓÃSystemV IPCºÍPOSIXÏûÏ¢¶ÓÁнøÐÐͨÐÅ¡£

UTSÃû×ֿռ䣺PodÖеÄÓ¦Óù²ÏíÒ»¸öÖ÷»úÃû¡£

Volumes£ºPodÖеĸ÷¸öÈÝÆ÷Ó¦Óû¹¿ÉÒÔ·ÃÎÊPod¼¶±ð¶¨ÒåµÄ¹²Ïí¾í¡£

PodµÄÉúÃüÖÜÆÚ£¬Í¨¹ýÄ£°å¶¨ÒåPod£¬È»ºó·ÖÅäµ½Ò»¸öNodeÉÏÔËÐУ¬ÔÚPodËù°üº¬µÄÈÝÆ÷ÔËÐнáÊøºóPodÒ²½áÊø¡£

ÔÚÕû¸ö¹ý³ÌÖУ¬PodµÄ״̬£º

¹ÒÆð ©U PodÒѱ»Ìá½»µ½Master£¬µ«Ò»¸ö»ò¶à¸öÈÝÆ÷¾µÏñÉÐδ´´½¨¡£°üÀ¨µ÷¶ÈºÍÏÂÔØ¾µÏñ£¬¿ÉÄÜÐèÒªÒ»¶Îʱ¼ä¡£

ÔËÐÐ ©U PodÒѰ󶨵½µÄ½Úµã£¬ºÍËùÓÐÈÝÆ÷¾µÏñÒÑ´´½¨Íê³É¡£ÖÁÉÙÒ»¸öÈÝÆ÷ÊÇÈÔÔÚÔËÐУ¬»òÕýÔÚÆô¶¯»òÖØÐÂÆô¶¯¡£

³É¹¦ ©U PodµÄËùÓÐÈÝÆ÷ÒѾ­³É¹¦µÄÖÕÖ¹£¬²¢²»»áÖØÐÂÆô¶¯¡£

ʧ°Ü ©U PodµÄËùÓÐÈÝÆ÷ÒѾ­¶¼ÖÕÖ¹£¬ÖÁÉÙÒ»¸öÈÝÆ÷ÒѶ¼ÖÕֹʧ°Ü £¨ÒÔ·ÇÁãÍ˳ö״̬Í˳ö£©¡£

δ֪ ©U ³öÓÚijÖÖÔ­ÒòµÄPod״̬ÎÞ·¨»ñµÃ£¬Í¨³£ÓÉÓÚÔÚÓëÖ÷»úµÄPodͨÐÅ´íÎó¡£

ÈÝÆ÷̽²âµÄÕï¶Ï·½Ê½£º

ExecAction £ºÔÚcontainerÖÐÖ´ÐÐÖ¸¶¨µÄÃüÁî¡£µ±ÆäÖ´Ðгɹ¦Ê±£¬½«ÆäÍ˳öÂëÉèÖÃΪ0£»

TCPSocketAction £ºÖ´ÐÐÒ»¸öTCP¼ì²éʹÓÃcontainerµÄIPµØÖ·ºÍÖ¸¶¨µÄ¶Ë¿Ú×÷Ϊsocket¡£Èç¹û¶Ë¿Ú´¦ÓÚ´ò¿ª×´Ì¬ÊÓΪ³É¹¦£»

HTTPGetAcction £ºÖ´ÐÐÒ»¸öHTTPĬÈÏÇëÇóʹÓÃcontainerµÄIPµØÖ·ºÍÖ¸¶¨µÄ¶Ë¿ÚÒÔ¼°ÇëÇóµÄ·¾¶×÷Ϊurl£¬Óû§¿ÉÒÔͨ¹ýhost²ÎÊýÉèÖÃÇëÇóµÄµØÖ·£¬Í¨¹ýscheme²ÎÊýÉèÖÃЭÒéÀàÐÍ(HTTP¡¢HTTPS)Èç¹ûÆäÏìÓ¦´úÂëÔÚ200~400Ö®¼ä£¬ÉèΪ³É¹¦¡£

̽²âµÄ½á¹ûÓУº

Success £º±íʾͨ¹ý¼ì²â

Failure £º±íʾûÓÐͨ¹ý¼ì²â

Unknown £º±íʾ¼ì²âûÓÐÕý³£½øÐÐ

̽²âµÄÖÖÀࣺ

LivenessProbe £º±íʾcontainerÊÇ·ñ´¦ÓÚlive״̬¡£Èç¹ûLivenessProbeʧ°Ü£¬LivenessProbe½«»á֪ͨkubelet¶ÔÓ¦µÄcontainer²»½¡¿µÁË¡£Ëæºókubelet½«killµôcontainer£¬²¢¸ù¾ÝRestarPolicy½øÐнøÒ»²½µÄ²Ù×÷¡£Ä¬ÈÏÇé¿öÏÂLivenessProbeÔÚµÚÒ»´Î¼ì²â֮ǰ³õʼ»¯ÖµÎªSuccess£¬Èç¹ûcontainerûÓÐÌṩLivenessProbe£¬ÔòÒ²ÈÏΪÊÇSuccess£»

ReadinessProbe £º±íʾcontainerÊÇ·ñÒÔ¼°´¦ÓڿɽÓÊÜserviceÇëÇóµÄ״̬ÁË¡£Èç¹ûReadinessProbeʧ°Ü£¬endpointscontroller½«»á´ÓserviceËùÆ¥Åäµ½µÄendpointÁбíÖÐÒÆ³ý¹ØÓÚÕâ¸öcontainerµÄIPµØÖ·¡£Òò´Ë¶ÔÓÚServiceÆ¥Åäµ½µÄendpointµÄά»¤ÆäºËÐÄÊÇReadinessProbe¡£Ä¬ÈÏReadinessµÄ³õʼֵÊÇFailure£¬Èç¹ûÒ»¸öcontainerûÓÐÌṩReadinessÔò±»ÈÏΪÊÇSuccess¡£

¶ÔÈÝÆ÷ʵʩÅä¶î£¬Ö»ÒªÔÚPodµÄ¶¨ÒåÎļþÖÐÉ趨resourcesµÄÊôÐԾͿÉÒÔΪÈÝÆ÷Ö¸¶¨Åä¶î£¬Ä¿Ç°ÈÝÆ÷Ö§³ÖµÄCPUºÍMemoryÁ½ÖÖ×ÊÔ´µÄÅä¶î¡£requestsÖ¸¶¨±ØÐë±£Ö¤µÄ×îС×ÊÔ´£¬limitsÏÞÖÆ×î´ó×ÊÔ´¡£

LabelÒÔkey/value¼üÖµ¶ÔµÄÐÎʽ¸½¼Óµ½¸÷ÖÖ¶ÔÏóÉÏ£¬ÈçPod¡¢NodeµÈ¡£Label¶¨ÒåÁËÕâЩ¶ÔÏóµÄ¿Éʶ±ðÊôÐÔ£¬ÓÃÀ´¶ÔËüÃǽøÐйÜÀíºÍÑ¡Ôñ¡£Label¿ÉÒÔÔÚ´´½¨¶ÔÏóʱָ¶¨Ò²¿ÉÒÔÔÚ¶ÔÏó´´½¨ºóͨ¹ýapi½øÐÐÌí¼Ó¡£

ÔÚΪ¶ÔÏó¶¨ÒåºÃÁËLabelºó£¬ÆäËü¶ÔÏó¾Í¿ÉÒÔʹÓÃLabel SelectorÀ´Ñ¡Ôñ»¹ÓÐÖ¸¶¨LabelµÄ¶ÔÏó¡£

ÓÐЧµÄLabel keyÓÐÁ½¸ö²¿·Ö©U¿Éѡǰ׺ºÍÃû³Æ£¬ÒÔÒ»¸öÕýб¸Ü£¨/£©·Ö¸ô¡£Ãû³Æ²¿·ÖÊDZØÐëµÄ²¢ÇÒ³¤¶ÈΪ 63 ¸ö×Ö·û»ò¸üÉÙ£¬¿ªÊ¼ºÍ½áÊøÒÔ×ÖĸÊý×Ö×Ö·û ([a-z0-9A-Z]) Öмä¿ÉÒÔÓÐÆÆÕۺţ¨-£©£¬Ï»®Ïß (_)£¬Ô²µã£¨.£©ºÍ×ÖĸÊý×Ö¡£Ç°×ºÊÇ¿ÉÑ¡µÄ¡£Èç¹ûÖ¸¶¨£¬Ç°×º±ØÐëÊÇ DNS ×ÓÓò©UһϵÁÐµÄ DNS ±êÇ©·Ö¸ôÓõ㣨.£©£¬²»³¤ÓÚ 253 ¸ö×Ö·û×ÜÊý£¬Æä´ÎÊÇб¸Ü£¨/£©¡£Èç¹ûÊ¡ÂÔǰ׺£¬Ôò±êÇ©¼üÊÇÐëÍÆ¶¨ÎªË½ÈËÓû§¡£kubernetes.io/ ǰ׺Ϊ Kubernetes ºËÐÄ×é¼þ±£Áô¡£

ÓÐЧµÄLabel value±ØÐëÊÇ 63 ¸ö×Ö·û»ò¸üÉÙ£¬±ØÐëΪ¿Õ»ò¿ªÊ¼ºÍ½áÊøÒÔ×ÖĸÊý×Ö×Ö·û ([a-z0-9A-Z])Öмä¿ÉÒÔÓÐÆÆÕۺţ¨-£©£¬Ï»®Ïß (_)£¬Ô²µã£¨.£©ºÍ×ÖĸÊý×Ö¡£

ÓÐ2ÖÖLabel Selector£º»ùÓÚµÈʽµÄ(Equality-based requirement)ºÍ»ùÓÚ¼¯ºÏµÄ(Set-based requirement)£¬ÔÚʹÓÃʱ¿ÉÒÔ½«¶à¸öLabel½øÐÐ×éºÏÀ´Ñ¡Ôñ¡£

»ùÓÚµÈʽµÄLabel SelectorʹÓõÈʽµÄ±í´ïʽÀ´½øÐÐÑ¡Ôñ¡£

¡¤ name=redis£ºÑ¡ÔñËùÓаüº¬LabelÖÐkey=¡°name¡±ÇÒvalue=¡°redis¡±µÄ¶ÔÏó¡£

¡¤ tier!=frontend£ºÑ¡ÔñËùÓаüº¬LabelÖÐkey=¡°tier¡±ÇÒvalue!=¡°frontend¡±µÄ¶ÔÏó¡£

»ùÓÚ¼¯ºÏµÄLabel SelectorʹÓü¯ºÏ²Ù×÷µÄ±í´ïʽÀ´½øÐÐÑ¡Ôñ¡£

¡¤ name in(redis-master, redis-slave)£ºÑ¡ÔñËùÓаüº¬LabelÖÐkey=¡°name¡±ÇÒvalue=¡°redis-master¡±»ò¡±redis-slave¡±µÄ¶ÔÏó¡£

¡¤ tier notin(frontend)£ºÑ¡ÔñËùÓаüº¬LabelÖÐkey=¡°tier¡±ÇÒvalue²»µÈÓÚ¡±frontend¡±µÄ¶ÔÏó¡£

¿ÉÒÔ½«¶à¸öLabel Selector½øÐÐ×éºÏ£¬Ê¹Óá±,¡±½øÐзָ»ùÓÚµÈÓÚµÄLabel SelectorºÍ»ùÓÚ¼¯ºÏµÄLabel Selector¿ÉÒÔÈÎÒâ×éºÏ¡£ÀýÈ磺

name=redis,tier!=frontend

name in(redis-master, redis-slave), tier=backend

ʹÓÃLabel¿ÉÒÔ¸ø¶ÔÏó´´½¨¶à×é±êÇ©£¬Service£¬RC×é¼þͨ¹ýLabel SelectorÀ´Ñ¡Ôñ¶ÔÏó·¶Î§£¬Label ºÍ Label Selector¹²Í¬¹¹³ÉÁËKubernetesϵͳÖÐ×îºËÐĵÄÓ¦ÓÃÄ£ÐÍ£¬Ê¹µÃ¶ÔÏóÄܹ»±»¾«Ï¸µÄ·Ö×é¹ÜÀí£¬Í¬Ê±ÊµÏÖÁ˸߿ÉÓÃÐÔ¡£

Replication ControllerºËÐÄ×÷ÓÃÊÇÈ·±£ÔÚÈκÎʱºò¼¯ÈºÖÐÒ»¸öRCËù¹ØÁªµÄPod¶¼±£³ÖÒ»¶¨ÊýÁ¿µÄ¸±±¾´¦ÓÚÕý³£ÔËÐÐ״̬¡£Èç¹û¸ÃPodµÄ¸±±¾ÊýÁ¿Ì«¶à£¬ÔòReplication Controller»áÏú»ÙһЩPod¸±±¾£»·´Ö®Replication Controller»áÌí¼Ó¸±±¾£¬Ö±µ½PodµÄ¸±±¾ÊýÁ¿´ïµ½Ô¤ÉèµÄ¸±±¾ÊýÁ¿¡£

×îºÃ²»ÒªÔ½¹ýRCÖ±½Ó´´½¨Pod£¬ÒòΪReplication Controller»áͨ¹ýRC¹ÜÀíPod¸±±¾£¬ÊµÏÖ×Ô¶¯´´½¨¡¢²¹×ã¡¢Ìæ»»¡¢É¾³ýPod¸±±¾£¬ÕâÑù¾ÍÄÜÌá¸ßÓ¦ÓõÄÈÝÔÖÄÜÁ¦£¬¼õÉÙÓÉÓÚ½Úµã±ÀÀ£µÈÒâÍâ×´¿öÔì³ÉµÄËðʧ¡£¼´Ê¹Ó¦ÓóÌÐòÖ»ÓÐÒ»¸öPod¸±±¾£¬Ò²Ç¿ÁÒ½¨ÒéʹÓÃRCÀ´¶¨ÒåPod¡£

µ±Podͨ¹ýRC´´½¨ºó£¬¼´Ê¹ÐÞ¸ÄRCµÄÄ£°å¶¨Ò壬Ҳ²»»áÓ°Ïìµ½ÒѾ­´´½¨µÄPod¡£´ËÍâPod¿ÉÒÔͨ¹ýÐ޸ıêÇ©À´ÊµÏÖÍÑÀëRCµÄ¹Ü¿Ø£¬¸Ã·½·¨¿ÉÒÔÓÃÓÚ½«Pod´Ó¼¯ÈºÖÐÇ¨ÒÆ¡¢Êý¾ÝÐÞ¸´µÈµ÷ÊÔ¡£¶ÔÓÚ±»Ç¨ÒƵÄPod¸±±¾£¬RC»á×Ô¶¯´´½¨Ò»¸öи±±¾Ìæ»»±»Ç¨ÒƵĸ±±¾¡£ÐèҪעÒâµÄÊÇ£¬Í¨¹ýkubectlɾ³ýRCʱ»áÒ»ÆðɾµôRCËù´´½¨µÄPod¸±±¾£¬µ«ÊÇͨ¹ýREST APIɾ³ýʱ£¬ÐèÒª½«replicasÉèÖÃΪ0£¬µÈµ½Podɾ³ýºóÔÙɾ³ýRC¡£

ÖØÐµ÷¶È£ºÈçÇ°ÃæËù˵£¬²»ÂÛÊÇÏëÔËÐÐ1¸ö¸±±¾»¹ÊÇ1000¸ö¸±±¾£¬Replication Controller¶¼ÄÜÈ·±£Ö¸¶¨ÊýÁ¿µÄ¸±±¾´æÔÚÓÚ¼¯ÈºÖУ¬¼´Ê¹·¢Éú½Úµã¹ÊÕÏ»òPod¸±±¾±»ÖÕÖ¹ÔËÐеÈÒâÍâÇé¿ö¡£

ÉìËõ£ºÐÞ¸ÄReplication ControllerµÄreplicasµÄÊôÐÔÖµ£¬¿ÉÒԷdz£ÈÝÒ×µÄʵÏÖÀ©´ó»òËõС¸±±¾µÄÊýÁ¿¡£ÀýÈ磬ͨ¹ýÏÂÁÐÃüÁî¿ÉÒÔʵÏÖÊÖ¹¤ÐÞ¸ÄÃûΪfooµÄRC¸±±¾ÊýÁ¿Îª3£ºkubectl scale ¨Creplicas=3 rc/foo

¹ö¶¯¸üУº¸±±¾¿ØÖÆÆ÷±»Éè¼Æ³Éͨ¹ýÖð¸öÌæ»»PodµÄ·½Ê½À´¸¨Öú·þÎñµÄ¹ö¶¯¸üС£ÍƼöµÄ·½·¨ÊÇ´´½¨Ò»¸öеÄÖ»ÓÐÒ»¸ö¸±±¾µÄRC£¬ÈôеÄRC¸±±¾ÊýÁ¿¼Ó1£¬Ôò¾ÉµÄRC¸±±¾ÊýÁ¿¼õ1£¬Ö±µ½Õâ¸ö¾ÉµÄRC¸±±¾ÊýÁ¿Îª0£¬È»ºóɾ³ý¾ÉµÄRC¡£ÕâÑù¼´Ê¹ÔÚ¹ö¶¯¸üеĹý³ÌÖз¢ÉúÁ˲»¿ÉÔ¤²âµÄ´íÎó£¬Pod¼¯ºÏµÄ¸üÐÂÒ²¶¼Ôڿɿط¶Î§Ö®ÄÚ¡£ÔÚÀíÏëÇé¿öÏ£¬¹ö¶¯¸üпØÖÆÆ÷ÐèÒª½«×¼±¸¾ÍÐ÷µÄÓ¦Óÿ¼ÂÇÔÚÄÚ£¬±£Ö¤ÔÚ¼¯ÈºÖÐÈκÎʱ¿Ì¶¼ÓÐ×ã¹»ÊýÁ¿µÄ¿ÉÓõÄPod

ËäȻÿ¸öPod¶¼»á±»·ÖÅäÒ»¸öµ¥¶ÀµÄIPµØÖ·£¬µ«Õâ¸öIPµØÖ·»áËæ×ÅPodµÄÏú»Ù¶øÏûʧ¡£Òý³öµÄÒ»¸öÎÊÌâÊÇ£ºÈç¹ûÓÐÒ»×éPod×é³ÉÒ»¸öÓ¦Óü¯ÈºÀ´Ìṩ·þÎñ£¬ÄÇô¸ÃÈçºÎ·ÃÎÊËüÃÇÄØ£¿

Service¾ÍÊÇÓÃÀ´½â¾öÕâ¸öÎÊÌâµÄ£¬Ò»¸öService¿ÉÒÔ¿´×÷Ò»×éÌṩÏàͬ·þÎñµÄPodµÄ¶ÔÍâ½Ó¿Ú£¬ServiceÊÇͨ¹ýLabelSelectorÑ¡ÔñÒ»×éPod×÷Óúó¶Ë·þÎñÌṩÕß¡£

¾Ù¸öÀý×Ó£ºredisÔËÐÐÁË2¸ö¸±±¾£¬ÕâÁ½¸öPod¶ÔÓÚǰ¶Ë³ÌÐòÀ´ËµÃ»ÓÐÇø±ð£¬ËùÒÔǰ¶Ë³ÌÐò²¢²»¹ØÐÄÊÇÄĸöºó¶Ë¸±±¾ÔÚÌṩ·þÎñ¡£²¢ÇÒºó¶ËPodÔÚ·¢Éú±ä»¯Ê±£¬Ç°¶ËÒ²ÎÞÐë¸ú×ÙÕâЩ±ä»¯¡£Service¾ÍÊÇÓÃÀ´ÊµÏÖÕâÖÖ½âñîµÄ³éÏó¸ÅÄî¡£

PodµÄIPµØÖ·ÊÇÓÉDocker Daemon¸ù¾Ýdocker0ÍøÇŵÄIPµØÖ·¶Î½øÐзÖÅäµÄ£¬µ«ServiceµÄCluster IPµØÖ·ÊÇKubernetesϵͳÖеÄÐéÄâIPµØÖ·£¬ÓÉϵͳ¶¯Ì¬·ÖÅä¡£

ServiceµÄCluster IPÏà¶ÔÓÚPodµÄIPµØÖ·À´ËµÏà¶ÔÎȶ¨£¬Service±»´´½¨Ê±¼´±»·ÖÅäÒ»¸öIPµØÖ·£¬ÔÚÏú»Ù¸ÃService֮ǰ£¬Õâ¸öIPµØÖ·¶¼²»»áÔٱ仯ÁË¡£¶øPodÔÚKubernetes¼¯ÈºÖÐÉúÃüÖÜÆÚ½Ï¶Ì£¬¿ÉÄܱ»Replication ControllerÏú»Ù¡¢Ôٴδ´½¨£¬Ð´´½¨µÄPod¾Í»á±»·ÖÅäÒ»¸öеÄIPµØÖ·¡£

ÈçºÎͨ¹ýService Cluster IP·ÃÎʵ½ºó¶ËµÄPodÄØ£¿KubernetesȺ¼¯ÖеÄÿ¸ö½ÚµãÔËÐÐkube-proxy¡£¸Ã³ÌÐò¸ºÔð¶ÔServiceʵÏÖÐéÄâIPµÄʵÏÖ¡£ÔÚ Kubernetes v1.0£¬´úÀí¼´ÊÇ´¿´âÔÚÓû§¿Õ¼ä¡£ÔÚKubernetes v1.1Ìí¼ÓÁËiptables´úÀí£¬µ«ÊDz¢²»ÊÇĬÈϵIJÙ×÷ģʽ¡£ÔÚKubernetes v1.2ĬÈÏÓÃiptables´úÀíģʽ¡£ÔÚiptables´úÀíģʽÏÂkube-proxy»á¹Û²ìKubernetes Master½ÚµãÌí¼ÓºÍɾ³ýService¶ÔÏóºÍEndpoint¶ÔÏóµÄÐÐΪ£¬¶ÔÓÚÿ¸ö·þÎñ£¬kube-proxy»áÔÚ±¾»úµÄiptablesÖа²×°ÏàÓ¦µÄ¹æÔò£¬iptablesͨ¹ýÕâЩ¹æÔò½«»á²¶»ñµ½¸ÃServiceµÄÁ÷Á¿²¢½«ËûÃÇÖØ¶¨Ïòµ½Ò»¸öºó¶ËµÄPod¡£Ä¬ÈÏÇé¿öϺó, ºó¶ËµÄÑ¡ÔñÊÇËæ»úµÄ¡£

µ«ÊÇÒ²¿ÉÒÔÑ¡Ôñ»ùÓÚ¿Í»§¶ËIPµÄsessionaffinity£¬¿ÉÒÔͨ¹ýÉèÖÃservice.spec.sessionAffinity=ClientIP(ĬÈÏֵΪ¡°None¡±)À´Ñ¡Ôñ¸Ã·½Ê½¡£ÓëÓû§¿Õ¼äµÄ´úÀíÒ»Ñù£¬¿Í»§¶Ë²»ÖªµÀKubernetes»òService»òPod£¬ÈκζÔÓÚServiceµÄIP:PortµÄ·ÃÎʶ¼»á±»´úÀíµ½ºó¶Ë¡£µ«ÊÇiptablesµÄ´úÀí±ÈÓû§¿Õ¼ä´úÀíÊǸü¿ì¡¢ ¸ü¿É¿¿¡£

KubernetesÖ§³ÖÁ½ÖÖÖ÷ÒªµÄģʽÀ´ÕÒµ½Service£ºÒ»¸öÊÇÈÝÆ÷µÄService»·¾³±äÁ¿£¬ÁíÒ»¸öÊÇDNS¡£ÔÚ´´½¨Ò»¸öPodʱ£¬kubeletÔÚ¸ÃPodµÄËùÓÐÈÝÆ÷ÖÐΪµ±Ç°ËùÓÐServiceÌí¼ÓһϵÁл·¾³±äÁ¿¡£

KubernetesÖ§³ÖÐÎÈç¡°{SVCNAME}SERVICE_HOST¡±ºÍ¡°{SVCNAME}_SERVICE_PORT¡±µÄ±äÁ¿¡£ÆäÖС°{SVCNAME}¡±ÊÇ´óдµÄServiceName£¬Í¬Ê±Service Name°üº¬µÄ¡°-¡±·ûºÅ»áת»¯Îª¡°¡±·ûºÅ¡£ÀýÈ磬ÒÑ´æÔÚÃû³ÆÎª¡°redis-master¡±µÄService£¬Ëü¶ÔÍⱩ¶6379µÄTCP¶Ë¿Ú£¬ÇÒ¼¯ÈºIPΪ10.0.0.11¡£kubelet»áΪн¨µÄÈÝÆ÷Ìí¼ÓÒÔÏ»·¾³±äÁ¿£º

REDIS_MASTER_SERVICE_HOST=10.0.0.11

REDIS_MASTER_SERVICE_PORT=6379

REDIS_MASTER_PORT=tcp://10.0.0.11:6379

REDIS_MASTER_PORT_6379_TCP=tcp://10.0.0.11:6379

REDIS_MASTER_PORT_6379_TCP_PROTO=tcp

REDIS_MASTER_PORT_6379_TCP_PORT=6379

REDIS_MASTER_PORT_6379_TCP_ADDR=10.0.0.11

ͨ¹ý»·¾³±äÁ¿À´´´½¨Service»á´øÀ´Ò»¸ö²»ºÃµÄ½á¹û£¬¼´Èκα»Ä³¸öPodËù·ÃÎʵÄService£¬±ØÐëÏÈÓÚ¸ÃPod´´½¨£¬·ñÔòºÍÕâ¸öºó´´½¨µÄServiceÏà¹ØµÄ»·¾³±äÁ¿£¬½«²»»á±»¼ÓÈë¸ÃPodµÄÈÝÆ÷ÖС£

ÁíÒ»¸öͨ¹ýÃû×ÖÕÒµ½·þÎñµÄ·½Ê½ÊÇDNS¡£DNS·þÎñÆ÷ͨ¹ýKubernetes API Server¼à¿ØÓëServiceÏà¹ØµÄ»î¶¯¡£µ±¼à¿Øµ½Ìí¼ÓServiceµÄʱ£¬DNS·þÎñÆ÷Ϊÿ¸öService´´½¨Ò»ÏµÁÐDNS¼Ç¼¡£ÀýÈ磺Óиö½Ð×ö¡±my-service¡°µÄservice£¬Ëû¶ÔÓ¦µÄkubernetesnamespaceΪ¡±my-ns¡°£¬ÄÇô»áÓÐËû¶ÔÓ¦µÄdns¼Ç¼£¬½Ð×ö¡±my-service.my-ns¡°¡£ÄÇôÔÚmy-nsµÄnamespaceÖеÄpod¶¼¿ÉÒÔ¶Ômy-service×öname½âÎöÀ´ÇáËÉÕÒµ½Õâ¸öservice¡£ÔÚÆäËûnamespaceÖеÄpod½âÎö¡±my-service.my-ns¡°À´ÕÒµ½Ëû¡£½âÎö³öÀ´µÄ½á¹ûÊÇÕâ¸öservice¶ÔÓ¦µÄcluster ip¡£

ServiceµÄClusterIPµØÖ·Ö»ÄÜÔÚ¼¯ÈºÄÚ²¿·ÃÎÊ£¬Èç¹û¼¯ÈºÍⲿµÄÓû§Ï£ÍûServiceÄܹ»Ìṩһ¸ö¹©¼¯ÈºÍâÓû§·ÃÎʵÄIPµØÖ·¡£Kubernetesͨ¹ýÁ½ÖÖ·½Ê½À´ÊµÏÖÉÏÊöÐèÇó£¬Ò»¸öÊÇ¡°NodePort¡±£¬ÁíÒ»¸öÊÇ¡°LoadBalancer¡±¡£

ÿ¸öservice¶¼Óиötype×ֶΣ¬Öµ¿ÉÒÔÓÐÒÔϼ¸ÖÖ£º

¡¤ ClusterIP£ºÊ¹Óü¯ÈºÄÚµÄ˽ÓÐip ¡ª¡ª ÕâÊÇĬÈÏÖµ¡£

¡¤ NodePort£º³ýÁËʹÓÃcluster ipÍ⣬Ҳ½«serviceµÄportÓ³É䵽ÿ¸önodeµÄÒ»¸öÖ¸¶¨ÄÚ²¿portÉÏ£¬Ó³ÉäµÄÿ¸önodeµÄÄÚ²¿port¶¼Ò»Ñù¡£

¡¤ LoadBalancer£ºÊ¹ÓÃÒ»¸öClusterIP & NodePort£¬µ«ÊÇ»áÏòcloud providerÉêÇëÓ³Éäµ½service±¾ÉíµÄ¸ºÔؾùºâ¡£

Èç¹û½«type×Ö¶ÎÉèÖÃΪNodePort£¬kubernetesmaster½«»áΪserviceµÄÿ¸ö¶ÔÍâÓ³ÉäµÄport·ÖÅäÒ»¸ö¡±±¾µØport¡°£¬Õâ¸ö±¾µØport×÷ÓÃÔÚÿ¸önodeÉÏ£¬ÇÒ±ØÐë·ûºÏ¶¨ÒåÔÚÅäÖÃÎļþÖеÄport·¶Î§£¨Îª¨Cservice-node-port-range£©¡£Õâ¸ö±»·ÖÅäµÄ¡±±¾µØport¡°¶¨ÒåÔÚserviceÅäÖÃÖеÄspec.ports[*].nodePort×ֶΣ¬Èç¹ûΪÕâ¸ö×Ö¶ÎÉ趨ÁËÒ»¸öÖµ£¬ÏµÍ³½«»áʹÓÃÕâ¸öÖµ×÷Ϊ·ÖÅäµÄ±¾µØport »òÕß ÌáʾÄãport²»·ûºÏ¹æ·¶¡£

Kubernetes Ö§³ÖÔÚÒ»¸öÎïÀí¼¯ÈºÉÏ´´½¨¶à¸öÐéÄâȺ¼¯¡£ÕâЩÐéÄâȺ¼¯±»³ÆÎªÃüÃû¿Õ¼ä¡£´ó¶àÊýKubernetes×ÊÔ´(ÀýÈç: pods, services, replication controllers, and others) ÔÚÃû³Æ¿Õ¼äÖС£µ«ÊÇnamespace×ÊÔ´±¾Éí²»ÔÚÃû³Æ¿Õ¼äÖС£»¹ÓÐһЩµ×²ã×ÊÔ´ÈçNode, PersistentVolumes²»ÔÚÃû³Æ¿Õ¼äÖС£

Kubernetes¼¯ÈºÆô¶¯ºó£¬»á´´½¨Ò»¸öÃûΪ¡°default¡±µÄNamespace£¬Èç¹û²»ÌرðÖ¸Ã÷Namespace£¬Ôò´´½¨µÄPod¡¢RC¡¢Service¶¼½«±»´´½¨µ½¡°default¡±µÄNamespaceÖС£

µ±Äã´´½¨Ò»¸ö·þÎñʱ£¬Ëü½«´´½¨ÏàÓ¦µÄ DNS ÌõÄ¿¡£´ËÌõÄ¿ÊÇ´°Ìå..svc.cluster.local£¬ÕâÒâζ×ÅÈç¹ûÒ»¸öÈÝÆ÷Ö»ÊÇʹÓà Ëü½«½âÎöΪÃüÃû¿Õ¼äµÄ±¾µØµÄ·þÎñ¡£ÕâÊÇÓÃÓÚ¿ç¶à¸öÃüÃû¿Õ¼ä£¬±ÈÈ翪·¢¡¢·ÖÆÚºÍÉú²úʹÓÃÏàͬµÄÅäÖá£Èç¹ûÄãÏëÒª´ïµ½Õû¸öÃüÃû¿Õ¼ä£¬ÄúÐèҪʹÓÃÍêÈ«ÏÞ¶¨µÄÓòÃû³Æ(FQDN)¡£

ʹÓÃNamespaceÀ´×éÖ¯KubernetesµÄ¸÷ÖÖ¶ÔÏ󣬿ÉÒÔʵÏÖ¶ÔÓû§µÄ·Ö×飬¼´¡°¶à×â»§¡±µÄ¹ÜÀí¡£¶Ô²»Í¬µÄ×â»§»¹¿ÉÒÔ½øÐе¥¶ÀµÄ×ÊÔ´Åä¶îÉèÖú͹ÜÀí£¬Ê¹µÃÕû¸ö¼¯ÈºµÄ×ÊÔ´ÅäÖ÷dz£Áé»î¡¢·½±ã¡£Ò»¸ö¼¯ÈºÖеÄ×ÊÔ´×ÜÊÇÓÐÏ޵쬵±Õâ¸ö¼¯Èº±»¶à¸ö×â»§µÄÓ¦ÓÃͬʱʹÓÃʱ£¬ÎªÁ˸üºÃµØÊ¹ÓÃÕâÖÖÓÐÏ޵Ĺ²Ïí×ÊÔ´£¬ÐèÒª½«×ÊÔ´Åä¶îµÄ¹ÜÀíµ¥ÔªÌáÉýµ½×â»§¼¶±ð£¬Í¨¹ýÔÚ²»Í¬×â»§¶ÔÓ¦µÄNamespaceÉÏÉèÖöÔÓ¦µÄResourceQuota¼´¿É´ïµ½Ä¿µÄ¡£

½éÉÜÍêK8sºó£¬ÏÂÃæÎÒÃÇ¿ªÊ¼µÚ¶þ²¿·Ö£¬K8sÔÚÐÂÒ»´úÊý×Ö»¯ÆóÒµÔÆÆ½Ì¨µÄʹÓá£

¾­¹ýǰ¼¸½Ú΢¿ÎÌõĽéÉÜ£¬´ó¼ÒÓ¦¸ÃÖªµÀÎÒÃǵÄDevOpsÊÇÓÉÒ»¸ö¸öÁìÓòϵͳ×é³É£¬¸÷ÁìÓòϵͳ¸ºÔðÌṩ²»Í¬µÄÄÜÁ¦¡£SEMÁìÓòϵͳÖ÷ÒªÊÇÓÃÓÚ×â»§ºÍ΢·þÎñµÄ×ÊÔ´¹ÜÀíÒÔ¼°ÈÝÆ÷µÄµ÷¶È¹ÜÀí¡£¿ÉÒÔ¿´µ½ÕâЩÄÜÁ¦»ù±¾ºÍK8sÌṩµÄÄÜÁ¦Æ¥Å䣬Òò´ËÔÚÐÂÒ»´úÊý×Ö»¯ÆóÒµÔÆÆ½Ì¨Àï¾ÍÊÇʹÓÃK8s×÷Ϊһ¸öµ×²ãµÄÈÝÆ÷µ÷¶Èƽ̨À´Ö§³ÅÉϲã΢·þÎñµÄ²¿ÊðÔËÐС£

SEMÓëDevOpsÆäËûÁìÓòϵͳÖеÄTM¡¢SRM¡¢DPR»áÓÐÒÀÀµºÍ½»»¥¡£

TM»áÔÚ´´½¨×⻧ʱÓëSEMÓн»»¥¡£TMÔÚ´´½¨×⻧ʱºò»áĬÈϸø¸Ã×⻧ͬʱ´´½¨¿ª·¢¡¢²âÊÔ¡¢Ô¤·¢¡¢ÉÏÏß4Ì×»·¾³£¬ÕâʱTM¾ÍÐèÒªµ÷ÓÃSEMµÄ½Ó¿Ú£¬´´½¨ÏàÓ¦µÄ»·¾³¡£ÕâЩ»·¾³ÔÚK8sÖÐÎÒÃÇʹÓÃNamespaceÀ´±íʾ¡£Òò´Ë¿ÉÒÔÔÚ´´½¨ÕâЩ»·¾³µÄʱºòͬʱָ¶¨Åä¶î¡£

SRM»áÔÚ²¿Êð×é¼þʱÓëSEMÓн»»¥¡£SRMÔÚ²¿Êð×é¼þʱ£¬»áµ÷ÓÃSEMµÄ²¿Êð½Ó¿Ú£¬Ö¸¶¨²¿Êð½éÖÊ¡¢²¿Êð»·¾³¡¢ÄÚ´æ¡¢cpuµÈ¡£

SEMÔÚ¾ßÌåÖ´Ðв¿ÊðµÄ¹ý³ÌÖлáÒÀÀµDPR£¬ÏÂÔØ²¿Êð°ü¡£

Ò»¸ö¡°×â»§¡±¿ÉÒÔÓжà¸ö¡°»·¾³¡±£¬¡°»·¾³¡±ÊDZíʾµÄÒ»¸ö´Ó¡°¼¯Èº¡±Öа´ÕÕÖ¸¶¨µÄ¡°×ÊÔ´Åä¶î¡±¶ø»®·Ö³öÀ´µÄÐéÄ⼯Ⱥ¡£¡°ÈÝÆ÷×顱»áÔËÐÐÔÚ¡°»·¾³¡±Àï¡£

¡°¼¯Èº¡±±íʾµÄÊÇÓɶà¸ö¡°½áµã¡±×é³ÉµÄÎïÀí»·¾³¡£¡°½áµã¡±¿ÉÒÔÊÇÎïÀí»ú»òÐéÄâ»ú¡£

¡°²¿Êð°ü¡±»á±»°´ÕÕ¡°²¿Êð¹æ¸ñ¡±²¿Êðµ½ ¡°ÈÝÆ÷×顱£¬¡°ÈÝÆ÷×顱°üº¬Ò»×é¡°ÈÝÆ÷¡±ºÍ¶à¸ö¡°¾í¡±£¬¡°ÈÝÆ÷¡±¾ÍÊÇÒ»¸öDockerµÄContainer¡£¡°¾í¡±¿ÉÒÔÊÇÒ»¸ö¡°±¾µØÄ¿Â¼¡±»òÕßÊÇÒ»¸ö¡°RBD¡±¡£

¡°ÈÝÆ÷×顱ͨ¹ý¡°·þÎñ¡±¶ÔÍⱩ¶¿É·ÃÎʵĽӿڡ£

¡°ÈÝÆ÷×顱ͨ¹ý¡°¸´ÖÆ¿ØÖÆÆ÷¡±À´±£Ö¤¸ß¿ÉÓá£

ÒÔMySQL¾ÙÀý£¬SEM»á¸ù¾Ý²¿Êð¹æ¸ñ£º

1.Ñ¡ÔñÖ¸¶¨µÄ»·¾³£¨¿ª·¢¡¢²âÊÔ¡¢Ô¤ÉÏ¡¢·¢²¼£©

2.´Ó˽¿âÏÂÔØÖ¸¶¨µÄ¾µÏñÃû³Æ¡¢°æ±¾

3.ÉèÖÃÈÝÆ÷µÄCPU¡¢ÄÚ´æµÄÏÞ¶î

4.ÉèÖÃMySQLµÄ·þÎñ¶Ë¿Ú¡¢Óû§Ãû£¯ÃÜÂ룬Êý¾Ý¿âÃû

5.ÉèÖÃMySQLµÄÊý¾Ý¾í

ÕâÀﲿÊðʱ»áÓöµ½µÄÎÊÌ⣺

1.·þÎñ²¿ÊðºóÈçºÎ·ÃÎÊ

¿ÉÒÔ¸ù¾Ý·þÎñ²¿ÊðºóµÄIPÈ¥·ÃÎÊ·þÎñ£¬µ«ÊÇÏÞÖÆ¾ÍÊDZ»ÒÀÀµµÄ·þÎñÐèÒªÏȲ¿Êð£¨ÈçAÒÀÀµB£©£¬¾ÍÒªÏȵÈB²¿ÊðÍêºó£¬ÐèÒª¸ù¾Ý·µ»ØµÄ·þÎñipºÍ¶Ë¿ÚÐÞ¸ÄAµÄÅäÖÃÔÙ´ò°üA£¬ÔÙ²¿ÊðA¡£µ±È»Õâ¸öÐÞ¸ÄAµÄÅäÖÃÒ²¿ÉÒÔͨ¹ýÅäÖÃÖÐÐÄÔÚAÆô¶¯Ê±ÔÙ×¢È룬¶ø²»ÐèÒªÌáǰÔÚ´ò°ü×¢Èë¡£

ʹÓÃSkyDNS£¬·þÎñÖ±½ÓµÄÒÀÀµµôÓòÉÓÃÓòÃûµÄ·½Ê½µôÓã¬ÕâÑù¾Í¿ÉÒÔ×öµ½AºÍBͬʱ´ò°ü£¬²¢ÇÒÈç¹ûAÖ§³ÖÖØÁ¬¹¦ÄÜ£¬AºÍB»¹¿ÉÒÔÒ»Æð²¿Êð¡£

2.ÈÝÆ÷µÄÆ¯ÒÆÔì³ÉÊý¾Ý¶ªÊ§

ÎÒÃÇÒ»¿ªÊ¼Ê¹ÓõÄÊǰÑËÞÖ÷»úĿ¼×÷Ϊ¾í£¬µ«ÊÇÓöµ½ÁËÒ»¸öÎÊÌ⣬¾ÍÊÇÔÚ¶à¸öÈÝÆ÷Ò»Æð²¿Êðʱ£¬Èç¹ûÈÝÆ÷µÄlimit×ÊÔ´ÉèÖùý´ó£¬»á´¥·¢ËÞÖ÷»ú×ÊÔ´¹ýÔØ£¬Ôì³ÉÈÝÆ÷Æ¯ÒÆ£¬ÈÝÆ÷Æ¯ÒÆºóµÄ½á¹û¾ÍÊÇMySQLµÄÊý¾ÝÖ»´æÔÚµÚÒ»´Î±»µ÷¶Èµ½µÄËÞÖ÷»úÉÏ¡£·¢ÏÖºóÎÒÃDzÉÓÃÁËNFSµÄ·½Ê½£¬½«ËùÓÐK8sµÄ½áµãµÄ±¾µØ³Ö¾Ã»¯Ä¿Â¼¶¼´ÓNFS mount¡£

²úÆ·×é¼þµÄ²¿Ê𣬼´Ó¦Óò¿Ê𣬺ÍÈý·½²úÆ·²¿ÊðÓÐЩ²î±ð£¬²î±ðÊÇ»á´æÔÚÒ»¸ö»ù´¡¾µÏñ£¬Ê×ÏÈ»áÔÚÏÂÔØÕâ¸ö»ù´¡¾µÏñ²¢´´½¨Æô¶¯ÈÝÆ÷£¬ÔÚÈÝÆ÷Æô¶¯Ê±ÓÖ»áÔٴδÓDPRÏÂÔØ²¿Êð°ü£¬È»ºó½âѹ²¿Êð°ü²¢Ö´Ðв¿Êð°üÀïµÄstart.sh¡£

Ϊʲô²»ÓÃsidecarģʽ£¿

Õâ¾ÍÊÇsidecarģʽµÄÁ÷³Ì£¬Í¨¹ýCI´ÓGitHubÉÏÏÂÔØ´úÂë²¢±àÒë³Éwar£¬ÔÙͨ¹ýimage builder°Ñwar°ü±àÒë³É¾µÏñ£¬×îºóÔÚÒ»¸öPodÀïÔËÐÐ2¸öÈÝÆ÷£¬Ò»¸öÊÇ»ù´¡ÈÝÆ÷£¨Tomcat£©£¬ÁíÒ»¸öÊÇÓ¦ÓþµÏñ¡£2¸öÈÝÆ÷¹²ÓÃÒ»¸öPodµÄemptyDir£¬tomcat°ÑemptyDir×÷Ϊ×ÔÉíµÄwebappsĿ¼£¬Ó¦ÓþµÏñ»á°ÑÓ¦Óýâѹµ½emptyĿ¼£¬ÕâÑùtomcat¾ÍÄܼÓÔØÓ¦Óá£

ÐèҪעÒâµÄÊÇ£¬Í¬Ò»¸öPodÀïµÄÈÝÆ÷´´½¨ºÍÆô¶¯ÊÇûÓÐÏȺó˳ÐòµÄ£¬ÒòΪtomcatÖ§³Ö¶¯Ì¬¼ÓÔØÓ¦Óã¬ËùÒÔ¼´Ê¹tomcatÏÈÆô¶¯£¬¶øºóÓ¦ÓþµÏñÔÙ½âѹӦÓÃÒ²²»»áÓÐÎÊÌâ¡£¶øÎÒÃÇÊÇSpringBootµÄÓ¦Ó㬿ÉÒÔ¼òµ¥ÈÏΪÊÇÒ»¸öjavaµÄÓ¦Óã¬ÐèҪͨ¹ýjava -jarµÄ·½Ê½ÔËÐУ¬ÕâʱÔÙʹÓÃsidecarģʽ¾Í»áÓпÉÄÜÔÙÖ´ÐÐjava -jarʱӦÓû¹Ã»Óб»½âѹ£¬µ±È»Õâ¿ÉÒÔͨ¹ýÔÚÆô¶¯½Å±¾ÀïÂÖѯÅжÏjar°üÊÇ·ñ´æÔÚÀ´½â¾ö¡£

SEM¡¢DockerRegistry¡¢K8sMaster¡¢K8sNodeX¶¼ÔÚÒ»¸öÎïÀíÍø¶ÎÀï(10.15.15.0/24)£¬È»ºóÔÚËùÓеÄK8s NodeÉÏÓÖ´´½¨Ò»¸öOverlayNetwork(10.16.16.0/24)¡£

»ùÓÚÉÏÃæµÄ²¿Êð½á¹¹£¬ÓÐ4¸öͨÐÅÎÊÌâÒª½â¾ö£º

1.Container to Container

»ùÓÚµÚÒ»²¿·ÖµÄ½éÉÜ£¬ÔÚK8sÀïͬһ¸öPodÀïµÄËùÓÐÈÝÆ÷ÓµÓÐͬÑùµÄÍøÂç¿Õ¼ä£¬ËùÒÔͬһ¸öPodµÄÈÝÆ÷ºÍÈÝÆ÷Ö®¼ä¿ÉÒÔͨ¹ý127.0.0.1À´»¥Ïà·ÃÎÊ£¨Ã¿¸öPodÖж¼ÓÐÒ»¸öpauseÈÝÆ÷£¬pauseÈÝÆ÷×öΪPodµÄÍøÂç½ÓÈëµã£¬PodÖÐÆäËûµÄÈÝÆ÷»áʹÓÃÈÝÆ÷Ó³ÉäģʽÆô¶¯²¢½ÓÈëµ½Õâ¸öpauseÈÝÆ÷¡£ÊôÓÚͬһ¸öPodµÄËùÓÐÈÝÆ÷¹²ÏíÍøÂçµÄnamespace¡££©

2.Pod to Pod £¨Overlay network£©

ÿ¸öPod¶¼ÓÐÒ»¸öIP£¬Õâ¸öIP²»ÊÇËÞÖ÷»úµÄIP£¬Õâ¸öIPÊÇͨ¹ýdocker0·ÖÅäµÄ£¬PodºÍPodÖ®¼ä¿ÉÒÔÖ±½Óͨ¹ýIP·ÃÎÊ¡£PodºÍPodµÄ»¥Í¨ÊÇÒÀ¿¿Flannel¡£

3.Pod to Service £¨¨Cservice-ip-range£©

ÿ¸öServiceÓÐ×Ô¼ºµÄIP£¬Õâ¸öIPÊÇK8s×Ô¶¯·ÖÅäµÄÐéIP£¬ÐéIPµÄ·¶Î§¿ÉÒÔͨ¹ýÔÚÆô¶¯kube-apiserverʱָ¶¨¡°¨Cservice-ip-range¡±À´È·¶¨¡£¶ÔÓÚÿһ¸öService£¬kube-proxy¶¼»áÐÞ¸ÄiptablesµÄrules¡£Iptables»á½«¶ÔService IP¡¢PortÇëÇóÖØ¶¨Ïòµ½ºó¶ËµÄPod IP¡¢Port¡£

4.External to internal£¨¨Cservice-node-port-range£©

¶ÔÓÚ´ÓÍⲿ·ÃÎÊK8s¼¯ÈºÄÚµÄService£¬ÐèÒªÔÚËÞÖ÷»úÉÏ×ö¶Ë¿ÚÓ³É䣬K8s½«»áΪserviceµÄport·ÖÅäÒ»¸ö¡±±¾µØport¡°£¬Õâ¸ö±¾µØport×÷ÓÃÔÚÿ¸önodeÉÏ£¬ÇÒ±ØÐë·ûºÏ¶¨ÒåÔÚÅäÖÃÎļþÖеÄport·¶Î§£¨Îª¨Cservice-node-port-range£©¡£µ±ÓÐÍⲿ·ÃÎÊnodeµÄ¡±±¾µØport¡°Ê±£¬iptables»á½«ÇëÇóÖØ¶¨Ïòµ½ºó¶ËPodµÄIP¡¢¶Ë¿Ú¡£

FlannelÊÇCoreOSÍŶÓÕë¶ÔKubernetesÉè¼ÆµÄÒ»¸öÍøÂç¹æ»®·þÎñ£»¼òµ¥À´Ëµ£¬ËüµÄ¹¦ÄÜÊÇÈü¯ÈºÖеIJ»Í¬½ÚµãÖ÷»ú´´½¨µÄDockerÈÝÆ÷¶¼¾ßÓÐÈ«¼¯ÈºÎ¨Ò»µÄÐéÄâIPµØÖ·£¬²¢Ê¹DockerÈÝÆ÷¿ÉÒÔ»¥Á¬¡£

FlannelʵÖÊÉÏÊÇÒ»ÖÖ¡°¸²¸ÇÍøÂç(overlay network)¡±£¬Ò²¾ÍÊǽ«TCPÊý¾Ý°ü×°ÔÚÁíÒ»ÖÖÍøÂç°üÀïÃæ½øÐзÓÉת·¢ºÍͨÐÅ£¬Ä¿Ç°ÒѾ­Ö§³ÖUDP¡¢VxLAN¡¢AWS VPCºÍGCE·ÓɵÈÊý¾Ýת·¢·½Ê½¡£ ĬÈϵĽڵã¼äÊý¾ÝͨÐÅ·½Ê½ÊÇUDPת·¢¡£

Êý¾Ý´ÓÔ´ÈÝÆ÷Öз¢³öºó£¬¾­ÓÉËùÔÚÖ÷»úµÄdocker0ÐéÄâÍø¿¨×ª·¢µ½flannel0ÐéÄâÍø¿¨£¬ÕâÊǸöP2PµÄÐéÄâÍø¿¨£¬flanneld·þÎñ¼àÌýÔÚÍø¿¨µÄÁíÍâÒ»¶Ë¡£

Flannelͨ¹ýEtcd·þÎñά»¤ÁËÒ»ÕŽڵã¼äµÄ·ÓÉ±í¡£Ô´Ö÷»úµÄflanneld·þÎñ½«Ô­±¾µÄÊý¾ÝÄÚÈÝUDP·â×°ºó¸ù¾Ý×Ô¼ºµÄ·ÓɱíͶµÝ¸øÄ¿µÄ½ÚµãµÄflanneld·þÎñ£¬Êý¾Ýµ½´ïÒÔºó±»½â°ü£¬È»ºóÖ± ½Ó½øÈëÄ¿µÄ½ÚµãµÄflannel0ÐéÄâÍø¿¨£¬È»ºó±»×ª·¢µ½Ä¿µÄÖ÷»úµÄdocker0ÐéÄâÍø¿¨£¬×îºó¾ÍÏñ±¾»úÈÝÆ÷ͨÐÅһϵÄÓÐdocker0·Óɵ½´ïÄ¿±êÈÝÆ÷¡£

ÕâÊÇÒ»ÕÅÎÒÃÇ4Ôµ×ÔÚaliyunÉϵÄdevops»ù´¡¼Ü¹¹Í¼£¬ECS - K8s MasterºÍ ECS - K8sNode ×é³ÉÁËÒ»¸öK8s¼¯Èº£¬×óÃæÖм䷽¿éµÄÊÇÐÂÒ»´úÊý×Ö»¯ÆóÒµÔÆÆ½Ì¨µÄ¸÷¸öÁìÓòϵͳµÄ΢·þÎñ¡£ÏÖÔÚ¸÷ÁìÓòϵͳµÄ΢·þÎñÊÇÖ±½Ó×÷ΪÔÚdockerµÄcontianerÔËÐС£Ã»ÓÐ×ö¸ß¿ÉÓõÄÊÂÇ飬ÔÚºóÐøµÄ¼Æ»®ÀïÎÒÃÇ»á¶ÔÁìÓòϵͳ×÷һЩ¸ß¿ÉÓõÄÉè¼Æ¡£

ºóÐøÎÒÃÇ´òË㽫ÁìÓòϵͳ¶¼°áÉÏK8s¼¯Èº£¬ÕâÑù¾Í»á´æÔÚ2¸ö¼¯ÈºÒ»¸öÊÇÐÂÒ»´úÊý×Ö»¯ÆóÒµÔÆÆ½Ì¨ÁìÓòϵͳµÄK8s¼¯Èº£¬Ò»¸öÊÇÓû§Î¢Ó¦ÓõÄK8s¼¯Èº¡£

ÒÔSEMΪÀý£¬ÔÚÐÂÒ»´úÊý×Ö»¯ÆóÒµÔÆÆ½Ì¨ÁìÓòϵͳµÄK8s¼¯ÈºÖУ¬»á´´½¨Ò»¸ö¶àPodµÄRCÀ´±£Ö¤SEMÓ¦Óñ¾ÉíµÄ¸ß¿ÉÓ㬶øºóͨ¹ý²¿Êð¶àÖ÷µÄMySQLʵÏÖÊý¾Ý¿â·þÎñµÄ¸ß¿ÉÓá£

MySQL ¶àÖ÷¶à»î Galera

¶ÔÓÚK8sµÄ¸ß¿ÉÓã¬Ö÷Òª¾ÍÊǶÔMaster½áµãÉϵĽø³Ì×ö¸ß¿ÉÓ㬴ó¸Å˼·¾ÍÊÇ£º

1.etcd×ö¼¯Èº£¬²¢²ÉÓ÷ֲ¼Ê½´æ´¢

2.µ¥¸öapiserverͨ¹ýsystemd·þÎñ»¯±£Ö¤Ê§°Üºó×ÔÖØÆô£¬¶à¸öapiserverͨ¹ý

3.loadbalance¶ÔÍⱩ¶

4.µ¥¸öschedulerͨ¹ýsystemd·þÎñ»¯±£Ö¤Ê§°Üºó×ÔÖØÆô£¬¶à¸öschedulerͨ¹ýÑ¡¾Ù£¬±£Ö¤Ö»ÓÐÒ»¸öscheduler¿ÉÒÔʹÓÃ

5.µ¥¸öcontrollermanagerͨ¹ýsystemd·þÎñ»¯±£Ö¤Ê§°Üºó×ÔÖØÆô£¬¶à¸öcontrollermanagerͨ¹ýÑ¡¾Ù£¬±£Ö¤Ö»ÓÐÒ»¸öcontrollermanager¿ÉÒÔʹÓÃ

Õâ¸öK8sµÄ¸ß¿ÉÓ÷½°¸²Î¿¼µÄÊǹٷ½µÄ·½°¸£¬²»Ì«Ò»ÑùµÄµØ·½¾ÍÊÇK8sµÄ±¾Éí×é¼þÊÇͨ¹ýsystemdÀ´±£Ö¤¿ÉÓÃÐÔ¡£

 

   
2707 ´Îä¯ÀÀ       31
Ïà¹ØÎÄÕÂ

DevOpsתÐÍÈÚÈëµ½ÆóÒµÎÄ»¯
DevOps ÄÜÁ¦Ä£ÐÍ¡¢Ñݽø¼°°¸ÀýÆÊÎö
»ùÓÚ DevOps ÀíÄîµÄ˽ÓÐ PaaS ƽ̨ʵ¼ù
΢Èí¿ª·¢ÍŶӵÄDevOpsʵ¼ùÆôʾ
Ïà¹ØÎĵµ

DevOpsÇý¶¯Ó¦ÓÃÔËά±ä¸ïÓë´´ÐÂ
ÔËά¹ÜÀí¹æ»®
ÈçºÎʵÏÖÆóÒµÓ¦Óò¿Êð×Ô¶¯»¯
ÔËά×Ô¶¯»¯Êµ¼ù֮·
Ïà¹Ø¿Î³Ì

×Ô¶¯»¯ÔËά¹¤¾ß£¨»ùÓÚDevOps£©
»¥ÁªÍøÔËάÓëDevOps
MySQLÐÔÄÜÓÅ»¯¼°ÔËάÅàѵ
ITϵͳÔËά¹ÜÀí
×îл¼Æ»®
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢ 6-12[ÏÃÃÅ]
È˹¤ÖÇÄÜ.»úÆ÷ѧϰTensorFlow 6-22[Ö±²¥]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 6-30[±±¾©]
ǶÈëʽÈí¼þ¼Ü¹¹-¸ß¼¶Êµ¼ù 7-9[±±¾©]
Óû§ÌåÑé¡¢Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À 7-25[Î÷°²]
ͼÊý¾Ý¿âÓë֪ʶͼÆ× 8-23[±±¾©]
 
×îÐÂÎÄÕÂ
DevOps µÀ·¨ÊõÆ÷£¬Á¢Ì廯ʵʩ¿ò¼Ü
DevOps ÖиßЧ²âÊÔ»ù´¡¼Ü¹¹µÄ×î¼Ñʵ¼ù
DevOps ÔÚ¹«Ë¾ÏîÄ¿ÖеÄʵ¼ùÂ䵨
ÈçºÎ»ùÓÚ Kubernetes ¹¹½¨ÍêÕûµÄ DevOps Á÷Ë®Ïß
°¢ÀïÔÆKubernetesʵս
×îпγÌ
DevOpsÌåϵʵ¼ù¡¢¹¤¾ßÓëÆ½Ì¨
»ùÓÚKubernetesµÄDevOpsʵ¼ù
»¥ÁªÍøÔËάÓëDevOps
»ùÓÚKubernetes¹¹½¨ÆóÒµÈÝÆ÷ÔÆ
ÆóÒµ¼¶DevOps¹¤×÷ÌåϵÓëÆ½Ì¨
³É¹¦°¸Àý
±±¾© DevOpsÌåϵʵ¼ù¡¢¹¤¾ßÓëÆ½Ì¨
ÉñÁúÆû³µ DevOpsÌåϵʵ¼ù¡¢¹¤¾ßÓëÆ½Ì¨
ÖйúÒÆ¶¯Í¨ÐÅ ÍøÂç¹æ»®Óë¹ÜÀí
ijº½¿Õ¹«Ë¾ IT¹æ»®ÓëÆóÒµ¼Ü¹¹
ij½ðÈÚ¹«Ë¾ IT·þÎñ¹ÜÀí£¨ITIL V3£©