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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
KubernetesЧӦ
 
  4109  次浏览      27
 2018-5-15 
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚinfoq£¬±¾ÎÄͨ¹ýÃèÊö´´½¨ÈÝÆ÷»¯£¬ÈÝÆ÷»¯Éè¼ÆÄ£Ê½½éÉÜÁËKubernetes£¬Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£

±¾ÎÄÒªµã

1.ÎÒÃǸüÇãÏòÓÚ½«KubernetesÊÓΪһ¸ö»ù±¾µÄ·¶Ê½£¬ËüÔÚ¶à¸öά¶ÈÉ϶¼ÓÐÒâÒ壬¶ø²»½ö½öÊÇÒ»¸öÄܹ»ÓëÖ®½»»¥µÄAPI¡£

2.KubernetesΪ»ùÓÚÓïÑԵĹ¹½¨¿éÔö¼ÓÁËÒ»¸öȫеÄά¶È£¬ËüÌṩÁËÒ»×éеķֲ¼Ê½Ô­ÓïºÍÔËÐÐʱ»·¾³£¬ÓÃÓÚ´´½¨·Ö²¼ÓÚ¶à¸ö½ø³ÌºÍ½ÚµãÉϵķֲ¼Ê½ÏµÍ³¡£

3.´´½¨ÈÝÆ÷»¯Ó¦ÓóÌÐòµÄºËÐÄÔ­ÔòÊǽ«ÈÝÆ÷¾µÏñµ±×ö»ù±¾µÄÔ­Ó°ÑÈÝÆ÷±àÅÅÆ½Ì¨µ±×öÄ¿±êÈÝÆ÷µÄÔËÐÐʱ»·¾³¡£ÆäÖеÄÔ­Ôò°üÀ¨µ¥Ò»¹Ø×¢£¨single concern£©¡¢×ÔÎÒ¿ØÖÆ£¨self-containment£©¡¢¾µÏñ²»±äÐÔ£¨image immutability£©¡¢¸ß¿É¹Û²âÐÔ£¨high observability£©¡¢ÉúÃüÖÜÆÚÒ»ÖÂÐÔ£¨lifecycle conformance£©¡¢¹ý³ÌÒ»´ÎÐÔ£¨process disposability£©ÒÔ¼°ÔËÐÐʱÏÞÖÆ£¨runtime confinement£©¡£

4.ÈÝÆ÷Éè¼ÆÄ£Ê½µÄÖØµãÊǹ¹½¨ÈÝÆ÷ºÍÆäËü·Ö²¼Ê½Ô­ÓҪʹÓÃ×î¼ÑµÄ·½Ê½À´½â¾öµ±Ç°ÃæÁÙµÄÌôÕ½¡£ÕâЩģʽ°üÀ¨¿ç¶·Ä£Ê½£¨sidecar£©¡¢´óʹģʽ£¨ambassador£©¡¢ÊÊÅäÆ÷ģʽ£¨adapter£©¡¢³õʼ»¯Æ÷ģʽ£¨initializer£©¡¢¹¤×÷¶ÓÁÐģʽ£¨work queue£©¡¢×Ô¶¨Òå¿ØÖÆÆ÷ģʽ£¨custom controller£©ÒÔ¼°×Ô¸Ð֪ģʽ£¨self awareness£©¡£

5.ÈÝÆ÷µÄ×î¼Ñʵ¼ùÓë¾µÏñ´óС¡¢¶Ë¿Ú¹æ¸ñ¡¢ÈÝÁ¿Ê¹ÓᢾµÏñÔªÊý¾ÝµÈµÈ¶¼Óйء£

Kubernetes£¨k8s£©Ôں̵ܶÄÒ»¶Îʱ¼äÄÚ×ß¹ýÁ˺ܳ¤µÄÒ»¶Î·¡£½ö½öÁ½ÄêÒÔǰ£¬Ëü»¹ÐèÒªÓëCoreOSµÄFleet¡¢Docker Swarm¡¢Cloud Foundry Diego¡¢HashiCorpµÄNomad¡¢Kontena¡¢RancherµÄCattle¡¢Apache Mesos¡¢Amazon ECSµÈ½øÐоºÕù£¬À´Ö¤Ã÷×Ô¼º±ÈÄÇЩ²úÆ·¶¼ÒªÓÅÐã¡£¶øÏÖÈç½ñÒѾ­ÊÇÍêÈ«²»Í¬µÄÒ»·ù¾°ÏóÁË¡£ÆäÖеÄһЩ¹«Ë¾¹«¿ªÐû²¼ÁËÏîÄ¿µÄÖÕÖ¹²¢ÇÒ¿ªÊ¼¼ÓÈëµ½KubernetesÕóÓªÖУ¬»¹ÓÐһЩ¹«Ë¾Ã»Óй«¿ªÐû²¼×Ô¼ºÏîÄ¿µÄʧ°Ü£¬¶øÊÇÔÚÕ½ÂÔÉÏÐû²¼Á˶ÔKubernetesµÄ²¿·ÖÖ§³Ö»òÕßÍêÈ«ÕûºÏ£¬ÕâÒ²¾ÍÒâζ×ÅËûÃǵÄÈÝÆ÷±àÅŹ¤¾ß½«»á°²¾²¶ø»ºÂýµØËÀµô¡£²»ÂÛÊÇÄÄÒ»ÖÖÇé¿ö£¬k8s¶¼ÊÇ×îºóÒ»¸ö»îÏÂÀ´µÄƽ̨¡£³ý´ËÖ®Í⣬²»½ö½öÊÇÓû§ºÍ°×½ðÔÞÖúÉÌÃÇ£¬Ô½À´Ô½¶àµÄ´ó¹«Ë¾¶¼½«¼ÌÐø¼ÓÈëµ½KubernetesµÄÉú̬ϵͳÖУ¬½«×Ô¼ºµÄÒµÎñÍêȫѺעÓÚKubernetesµÄ³É¹¦¡£ÎÒÃÇÊ×ÏÈÄÜÏëµ½µÄÓÐGoogleµÄKubernetes Engine¡¢Red HatµÄOpenShift¡¢MicrosoftµÄAzure Container Service¡¢IBMµÄ Cloud Container Service¡¢OracleµÄContainer Engine¡£

µ«ÊÇÕâЩÒâζ×ÅÊ²Ã´ÄØ£¿Ê×ÏÈ£¬ÕâÒâζ×Å¿ª·¢ÈËÔ±±ØÐëÒªÕÆÎÕÒ»¸öÓë90%µÄÈÝÆ÷¹¤×÷Ïà¹ØµÄÈÝÆ÷±àÅÅÆ½Ì¨¡£ÕâÊÇÒ»¸öѧϰKubernetesºÜºÃµÄÀíÓÉ¡£Í¬Ê±Õ⻹Òâζ×ÅÎÒÃÇÒѾ­ÉîÉîµØÒÀÀµÓÚKubernetes£¬Kubernetes¾ÍÏñÈÝÆ÷ÁìÓòÖеÄAmazon¡£ÔÚKubernetesÉϽøÐÐÉè¼Æ¡¢ÊµÏÖºÍÔËÐÐÓ¦ÓóÌÐò¿ÉÒÔÈÃÄãÔÚ²»Í¬µÄÔÆÌṩÉÌ¡¢Kubernetes·¢ÐаæºÍ·þÎñÌṩÉÌÖ®¼ä×ÔÓɵضÔÓ¦ÓóÌÐò½øÐÐÒÆ¶¯¡£ËüÄÜÈÃÄãÓлú»áÕÒµ½KubernetesÈÏÖ¤µÄ¿ª·¢ÈËÔ±£¬ÈÃËûÃÇÀ´¿ª·¢Ò»¸öÏîÄ¿²¢ÇÒÔÚÒÔºóµÄÔËÐйý³ÌÖгÖÐøÌṩ֧³Ö¡£Kubernetes²»ÊÇVM£¬Ò²²»ÊÇJVM£¬ËüÊÇȫеÄÓ¦ÓóÌÐò¿ÉÒÆÖ²²ã£¬ËüÊÇ´ó¼Ò¹²Í¬µÄÑ¡Ôñ¡£

¶ÔKubernetesµÄÉî¶ÈÒÀÀµ

ÏÂͼÊÇÒ»¸öÈÝÆ÷»¯·þÎñµÄͼ±í£¬ÆäÖбíÃ÷Á˸÷þÎñ¶ÔKubernetesµÄÒÀÀµ³Ì¶È£º

ͼ1 - KubernetesÉϵÄÓ¦ÓóÌÐòÒÀÀµ

Çë×¢Ò⣬ÎÒ²¢Ã»ÓÐдµ½KubernetesÊÇÓ¦ÓóÌÐò¿ÉÒÆÖ²ÐÔAPI£¬ËüÊÇÒ»¸ö²ã¡£ÉÏͼÏòÎÒÃÇչʾÁËÖ»ÓÐÏÔʽ´´½¨µÄk8s¶ÔÏó²ÅÄܹ»µ÷ÓÃk8s API¡£µ«ÊÂʵÉÏ£¬ÎÒÃÇÓëÆ½Ì¨Ö®¼äµÄ¹ØÏµ¸ü¼Ó½ôÃÜ¡£k8sÌṩÁËÒ»×éÍêÕûµÄ·Ö²¼Ê½Ô­ÓÈçPod¡¢·þÎñ¡¢¿ØÖÆÆ÷µÈ£©£¬ËüÃÇÄܹ»Âú×ãÎÒÃǵÄÐèÇó²¢ÇÒÇý¶¯ÎÒÃǶÔÓ¦ÓóÌÐòµÄÉè¼Æ¡£ÕâЩеÄÔ­ÓïºÍƽ̨ÈÝÁ¿¾ö¶¨ÁËÎÒÃÇÓÃÀ´ÊµÏÖδÀ´ËùÓзþÎñµÄÖ¸µ¼Éè¼ÆÔ­ÔòºÍÉè¼ÆÄ£Ê½¡£·´¹ýÀ´£¬ËüÃÇÒ²»áÓ°ÏìÎÒÃÇÓÃÀ´Ó¦¶ÔÈÕ³£ÌôÕ½µÄ¼¼Êõ£¬ÉõÖÁ»áÓ°Ïìµ½ÎÒÃÇËùνµÄ¡°×î¼Ñʵ¼ù¡±¡£Òò´Ë£¬ÎÒÃǸüÇãÏòÓÚ½«KubernetesÊÓΪһ¸ö»ù±¾µÄ·¶Ê½£¬ËüÔÚ¶à¸öά¶ÈÉ϶¼ÓÐÒâÒ壬¶ø²»½ö½öÊÇÒ»¸öÄܹ»ÓëÖ®½»»¥µÄAPI¡£

KubernetesЧӦ

ÈÝÆ÷ºÍÈÝÆ÷±àÅŹ¤¾ßÌØÐÔÌṩÁËÒ»×éеijéÏóºÍÔ­ÓΪÁË»ñµÃÕâЩԭÓïµÄ×î¼Ñ¼ÛÖµ²¢ºâÁ¿ËüÃǵÄЧ¹û£¬ÎÒÃÇÐèÒªÒ»Ì×еÄÉè¼ÆÔ­ÔòÀ´Ö¸µ¼ÎÒÃǵÄʵ¼ù¡£´øÀ´µÄ½á¹û¾ÍÊÇ£¬Ëæ×ÅÎÒÃǸü¶àµÄʹÓÃÕâЩÐÂÔ­ÓÎÒÃǾÍÄܸüºÃµØ½â¾öÖØ¸´ÐÔµÄÎÊÌ⣬Äܹ»ÖØÐ·¢Ã÷ÂÖ×Ó¡£Õâ¾ÍÊÇÉè¼ÆÄ£Ê½µÄÓÃÎäÖ®µØ¡£Éè¼ÆÄ£Ê½ÎªÎÒÃÇÌṩÁËÈçºÎ¹¹½¨ÐÂÔ­ÓïÒÔ±ã¸ü¿ìµØ½â¾öÎÊÌâµÄ·½·¨¡£ËäȻԭÔò¸ü¼Ó³éÏ󡢸ü¼Ó»ù´¡¡¢±ä»¯Ò²¸üÉÙ£¬µ«ÊÇÉè¼ÆÄ£Ê½¿ÉÄÜ»áÊܵ½Ô­ÓïÐÐΪ±ä»¯µÄÓ°Ï졣ƽ̨ÉϵÄÒ»¸öÐÂÌØÐÔ¿ÉÄÜ»áʹµÃÒ»¸öÉè¼ÆÄ£Ê½³ÉΪ·´Ä£Ê½»òÕß²»ÄÇôÏà¹Ø¡£³ý´ËÖ®Í⣬»¹ÓÐÎÒÃÇÿÌìʹÓõÄʵ¼ùºÍ¼¼ÊõÒ²ÊÇÈç´Ë¡£ÕâЩ¼¼Êõº­¸ÇÁ˴ӷdz£Ï¸Î¢µÄ¼¼Êõ¼¼ÇÉ£¬µ½¸üÓÐЧµØÖ´ÐÐÈÎÎñ£¬ÔÙµ½¸ü¹ã·ºµÄ¹¤×÷·½·¨ºÍʵ¼ù·½·¨¡£µ±ÎÒÃÇ·¢ÏÖÁËÒ»ÖÖÉÔ΢ºÃÓÃÒ»µãµÄ·½·¨Äܹ»¸ü¿ì»òÕ߸ü¼òµ¥µØÍê³ÉÈÎÎñʱ£¬ÎÒÃǾͻá¸Ä½øµ±Ç°µÄ¼¼ÊõºÍʱ¼ä¡£Õâ¾ÍÊÇÎÒÃÇºÍÆ½Ì¨»¥Ïà´Ù½øµÄ·¢Õ¹Ä£Ê½¡£ÎÒÃÇΪʲôҪÕâô×öÄØ£¿ÒòΪ£¬ÎÒÃÇÕâÑù×ö¾ÍÄܹ»ÀûÓÃÕâ¸öÐÂÆ½Ì¨µÄÓÅÊÆºÍ¼ÛÖµÀ´Âú×ãÎÒÃÇ×Ô¼ºµÄÐèÇó¡£´ÓijÖÖÒâÒåÉÏÀ´Ëµ¡£KubernetesЧӦÊÇ×ÔÎÒÇ¿»¯µÄ£¬Ò²ÊÇ¶à·½ÃæµÄ£º

ͼ2 - Èí¼þ¿ª·¢ÉúÃüÖÜÆÚÖеÄKubernetesЧӦ

ÔÚ±¾ÎĵÄÊ£Óಿ·Ö£¬ÎÒÃǽ«Ì½Ñ°µØ¸üÉ²¢ÇÒ½«¶Ôÿ¸öÀà±ðµÄʾÀý½øÐÐÑо¿¡£

·Ö²¼Ê½³éÏóºÍÔ­Óï

ΪÁËÄܹ»²ûÊÍÎÒËù˵µÄеijéÏóºÍÔ­ÓÎÒ½«°ÑËüÃÇÓë´ó¼ÒÖÚËùÖÜÖªµÄÃæÏò¶ÔÏóÊÀ½çºÍJava½øÐбȽϡ£ÔÚÃæÏò¶ÔÏó±à³Ì£¨OOP£©µÄÊÀ½çÀÎÒÃÇÓÐÈçϵĸÅÄÀà¡¢¶ÔÏó¡¢°ü¡¢¼Ì³Ð¡¢·â×°¡¢¶à̬µÈµÈ¡£JavaÔËÐÐʱ»·¾³ÌṩÁËÒ»Ð©ÌØÐÔ²¢ÇÒËü¶Ô¶ÔÏóµÄÉúÃüÖÜÆÚºÍÕû¸öÓ¦ÓóÌÐò½øÐйÜÀí¡£JavaÓïÑÔºÍJVMÔËÐÐʱ»·¾³ÎªÓ¦ÓóÌÐòµÄ´´½¨ÌṩÁ˱¾µØµÄ¡¢½ø³ÌÄڵĹ¹½¨¿é¡£KubernetesΪÕâÖÖÖÚËùÖÜÖªµÄ˼άģʽÓÖÌí¼ÓÁËÒ»¸öеÄά¶È£¬ËüÌṩÁËÒ»×éеķֲ¼Ê½Ô­ÓïºÍÔËÐÐʱ»·¾³£¬ÓÃÒÔ´´½¨·Ö²¼ÓÚ¶à¸ö½ø³ÌÖ®¼äºÍ²»Í¬½ÚµãÉϵķֲ¼Ê½ÏµÍ³¡£ÓÐÁËKubernetes£¬ÎҾͲ»ÓÃÒÀÀµÓÚJavaÔ­ÓïÀ´ÊµÏÖÕû¸öÓ¦ÓóÌÐòµÄÐÐΪÁË¡£ÎÒÈÔÈ»ÐèҪʹÓÃÃæÏò¶ÔÏóµÄ¹¹½¨¿éÀ´´´½¨·Ö²¼Ê½Ó¦ÓóÌÐòµÄ×é¼þ£¬µ«ÊÇÎÒÒ²¿ÉÒÔʹÓÃKubernetesÔ­ÓïÀ´ÊµÏÖһЩӦÓóÌÐòµÄÐÐΪ¡£Ò»Ð©Kubernetes·Ö²¼Ê½³éÏóºÍÔ­ÓïµÄÀý×ÓÈçÏ£º

Pod£ºÏà¹ØÈÝÆ÷¼¯ºÏµÄ²¿Êðµ¥Ôª

Service£º·þÎñ·¢Ïֺ͸ºÔؾùºâÔ­Óï

Job£ºÒì²½µ÷¶È¹¤×÷µÄÔ­×Óµ¥Ôª

CronJob£ºÔÚδÀ´½øÐе÷¶È»òÕß¶¨ÆÚ½øÐе÷¶ÈµÄ¹¤×÷Ô­×Óµ¥Ôª

ConfigMap£ºÒ»ÖÖ¿ç·þÎñʵÀýµÄ·Ö·¢ÅäÖÃÊý¾ÝµÄ»úÖÆ

Secret£ºÒ»ÖÖ¹ÜÀíÃô¸ÐÅäÖÃÊý¾ÝµÄ»úÖÆ

Deployment£ºÒ»ÖÖÉùÃ÷ʽӦÓóÌÐò·¢²¼»úÖÆ

Namespace£ºÓÃÓÚ¸ôÀë×ÊÔ´³ØµÄ¿ØÖƵ¥Ôª

ÀýÈ磬ÎÒ¿ÉÒÔÒÀÀµÓÚKubernetesµÄ½¡¿µ¼à²â£¨ÈçÔ¤±¸¼ì²â»ò»îÐÔ¼ì²â£©À´»ñÈ¡ÎÒµÄÓ¦ÓóÌÐòµÄһЩ¿É¿¿ÐÔÐÅÏ¢¡£ÎÒ¿ÉÒÔʹÓÃKubernetes ServiceÀ´½øÐзþÎñ·¢ÏÖ£¬¶ø²»ÊÇÔÚÓ¦ÓóÌÐòÖнøÐпͻ§¶Ë·þÎñµÄ·¢ÏÖ¡£ÎÒÄÜʹÓÃKubernetes JobsÀ´¶ÔÒì²½Ô­×Ó¹¤×÷½øÐе÷¶È¡£ÎÒÒ²ÄÜʹÓÃConfigMapÀ´¶ÔÅäÖýøÐйÜÀí¡£ÎÒ»¹ÄÜʹÓÃKubernetes CronJob¶ÔÈÎÎñ½øÐÐÖÜÆÚÐÔµ÷¶È£¬ÕâÑù¾Í²»ÓÃʹÓûùÓÚJavaµÄQuartz¿â»òÕßȥʵÏÖExecutorService½Ó¿ÚÁË¡£

ͼ3 - ·Ö²¼Ê½ÏµÍ³Öб¾µØÔ­ÓïºÍ·Ö²¼Ê½Ô­Óﲿ·Ö

½ø³ÌÔ­ÓïºÍ·Ö²¼Ê½Ô­ÓïÓÐ×ÅÏà֮ͬ´¦£¬µ«ÊÇËüÃÇÖ®¼äûÓÐÖ±½ÓµÄ¿É±ÈÐԺͿÉÌæ»»ÐÔ¡£ËüÃÇÔËÐÐÓÚ²»Í¬µÄ³éÏ󼶱𣬾ßÓв»Í¬µÄÏȾöÌõ¼þºÍ±£Ö¤Ìõ¼þ¡£Ò»Ð©Ô­Óï¿ÉÒÔÔÚÒ»ÆðʹÓá£ÀýÈ磬ÎÒÃÇÈÔÈ»ÐèҪʹÓÃÀàÀ´´´½¨¶ÔÏó²¢ÇÒ½«Æä·ÅÈëÈÝÆ÷¾µÏñÖС£µ«ÊÇKubernetesÖÐһЩÏñCronJobÕâÑùµÄÔ­Óï¾ÍÄܶÔJavaÖеÄExecutorServiceÐÐΪ½øÐÐÍêÈ«µÄÌæ´ú¡£Ï±ßÓÐһЩ¸ÅÄîµÄͼ±í£¬ÊÇÎÒÔÚJVMºÍKubernetesÖ®¼äÕÒµ½µÄ¹²Í¬µã£¬µ«ÊDz¢²»ÊǺÜÉîÈë¡£

ͼ4- ±¾µØÔ­ÓïºÍ·Ö²¼Ê½Ô­Óï·ÖÀà

ÎÒ֮ǰ·¢²¼¹ý¹ØÓÚ·Ö²¼Ê½³éÏóºÍÔ­ÓïµÄ²©ÎÄ¡£ÕâÀïµÄÒªµãÊÇ£¬×÷ΪһÃû¿ª·¢ÈËÔ±£¬Äã¿ÉÒÔʹÓÃÒ»×é¸ü·á¸»µÄ±¾µØºÍÈ«¾ÖÔ­ÓïÀ´Éè¼ÆºÍʵÏÖ·Ö²¼Ê½½â¾ö·½°¸¡£Ëæ×Åʱ¼äµÄÍÆÒÆ£¬ÕâЩеÄÔ­Óï²úÉúÁËеĽâ¾öÎÊÌâµÄ·½°¸£¬ÆäÖÐһЩ¸´ÔӵĽâ¾ö·½°¸±ä³ÉÁËÉè¼ÆÄ£Ê½¡£Õâ¾ÍÊÇÎÒÃǽ«½øÒ»²½½øÐÐ̽ÌÖµÄÎÊÌâ¡£

ÈÝÆ÷Éè¼ÆÔ­Ôò

Éè¼ÆÔ­ÔòÊDZàд¸ßÖÊÁ¿Èí¼þµÄ»ù±¾¹æÔòºÍ³éÏó×¼Ôò¡£ÕâЩԭÔòûÓÐÖ¸¶¨¾ßÌåµÄ¹æÔò£¬µ«ÊÇËüÃÇ´ú±íÁËÐí¶à¿ª·¢ÈËÔ±ËùÀí½â²¢ÇÒ¾­³£ÒýÓõÄÒ»ÖÖÓïÑÔºÍͨÓõÄÖǻۡ£ºÍRobert C. MartinËùÒýÈëµÄSOLIDÔ­Ôò£¨¸ÃÔ­ÔòÌṩÁËÈçºÎÄܹ»¸üºÃµØ±àÐ´ÃæÏò¶ÔÏóÈí¼þµÄÖ¸µ¼£©ÀàËÆ£¬Ò²ÓÐһЩÉè¼ÆÔ­ÔòÄܹ»ÓÃÓÚ´´½¨¸üºÃµÄÈÝÆ÷»¯Ó¦ÓóÌÐò¡£SOLIDÔ­ÔòʹÓÃÁËÃæÏò¶ÔÏóµÄÔ­ÓïºÍ¸ÅÄÀýÈ磬Àà¡¢½Ó¿ÚÒÔ¼°¼Ì³ÐµÈµÈ£©À´²ûÊÍÃæÏò¶ÔÏóÉè¼Æ¡£ÀàËÆµØ£¬ÏÂÃæÁгöµÄÕâЩ´´½¨ÈÝÆ÷»¯Ó¦ÓóÌÐòµÄÔ­ÔòʹÓÃÁËÈÝÆ÷¾µÏñÀ´×÷Ϊ»ù´¡Ô­ÓʹÓÃÈÝÆ÷±àÅŹ¤¾ßƽ̨×÷ΪĿ±êÈÝÆ÷µÄÔËÐÐʱ»·¾³¡£»ùÓÚÈÝÆ÷µÄÓ¦ÓóÌÐòÉè¼ÆÔ­ÔòÈçÏ£º

¹¹½¨Ê±

µ¥Ò»¹Ø×¢Ô­Ôò£¨Single Concern Principle£©£ºÃ¿Ò»¸öÈÝÆ÷¶¼Ó¦¸Ã½â¾öÒ»¸öÎÊÌ⣬²¢ÇÒ°ÑÕâÒ»¸öÎÊÌâ½â¾öºÃ¡£

×ÔÎÒ¿ØÖÆÔ­Ôò£¨Self-Containment Principle£©£ºÈÝÆ÷Ó¦¸ÃÖ»ÒÀÀµÓÚLinuxÄںˣ¬ÔÚÈÝÆ÷¹¹½¨Ê±²ÅÌí¼ÓÆäËüÍⲿµÄ¿â¡£

¾µÏñ²»±äÐÔÔ­Ôò£¨Image Immutability Principle£©£ºÈÝÆ÷»¯µÄÓ¦ÓóÌÐòÊDz»¿É±äµÄ£¬Ò»µ©¹¹½¨Íê³É£¬ÔÚ²»Í¬µÄ»·¾³ÏÂÒ²ÊDz»»á²úÉú±ä»¯µÄ¡£

ÔËÐÐʱ

¸ß¿É¹Û²âÐÔÔ­Ôò£¨High Observability Principle£©£ºÃ¿¸öÈÝÆ÷¶¼±ØÐëҪʵÏÖËùÓбØÒªµÄAPI£¬ÓÃÓÚ°ïÖúƽ̨ÒÔ×îºÃµÄ·½Ê½¶ÔÓ¦ÓóÌÐò½øÐмà²âºÍ¹ÜÀí¡£

ÉúÃüÖÜÆÚÒ»ÖÂÐÔÔ­Ôò£¨Lifecycle Conformance Principle£©£ºÈÝÆ÷Ó¦¸ÃÓÐÒ»ÖÖ·½·¨À´¶ÁÈ¡À´×ÔÆ½Ì¨µÄʼþ£¬²¢Í¨¹ý¶ÔÕâЩʼþµÄÏìÓ¦À´±£³ÖÒ»Ö¡£

¹ý³ÌÒ»´ÎÐÔÔ­Ôò£¨Process Disposability Principle£©£ºÓ¦ÓóÌÐòÈÝÆ÷»¯µÄ¹ý³ÌÓ¦¸Ã¾¡¿ÉÄܵĶÌÔÝ£¬ËüÃÇÐèҪʱ¿Ì×¼±¸×ű»ÁíÒ»¸öÈÝÆ÷ʵÀýËùÌæ»»¡£

ÔËÐÐʱÏÞÖÆÔ­Ôò£¨Runtime Confinement Principle£©£ºÃ¿¸öÈÝÆ÷¶¼Ó¦¸Ã¶ÔÆä×ÊÔ´ÐèÇó½øÐÐÉùÃ÷£¬²¢ÇÒ±£Ö¤Ó¦ÓóÌÐòÊÜÏÞÖÆÓÚÖ¸¶¨µÄ×ÊÔ´ÐèÇóÒ²ÊǺÜÖØÒªµÄ¡£

×ñÑ­ÕâЩԭÔòÄܹ»°ïÖúÎÒÃÇ´´½¨¸üÊʺÏÓÚKubernetesµÈÔÆÆ½Ì¨µÄÈÝÆ÷»¯Ó¦ÓóÌÐò¡£

ͼ5 - ÈÝÆ÷Éè¼ÆÔ­Ôò

ÕâЩԭÔò¶¼ÒѾ­±à×ë³ÉÎÄ£¬¿ÉÒÔµã»÷ÕâÀïÃâ·ÑÏÂÔØÕâ·Ý°×ƤÊé¡£ÉÏÊöͼƬ¾ÍÊÇÕâЩԭÔòµÄÔ¤ÀÀ¡£

ÈÝÆ÷Éè¼ÆÄ£Ê½

еÄÔ­ÓïÐèҪеÄÔ­ÔòÀ´½âÊÍÔ­ÓïÖ®¼äµÄ×÷Óá£ÎÒÃÇʹÓõÄÔ­ÓïÔ½¶à£¬¾ÍÄܽâ¾ö¸ü¸´ÔÓµÄÎÊÌ⣬Õâ¾ÍʹµÃÎÒÃÇÒâʶµ½¿ÉÖØÓõĽâ¾ö·½°¸£¬¼´Éè¼ÆÄ£Ê½¡£ÈÝÆ÷Éè¼ÆÄ£Ê½µÄÖØµãÊÇÓÃÄܹ»½â¾öµ±Ç°ÃæÁÙÌôÕ½µÄ×î¼Ñ·½Ê½À´¹¹½¨ÈÝÆ÷ºÍÆäËü·Ö²¼Ê½Ô­Óï¡£ÒÔϼò¶ÌµÄÁбíÊÇÓëÈÝÆ÷Ïà¹ØµÄÉè¼ÆÄ£Ê½£º

¿ç¶·Ä£Ê½£¨Sidecar Pattern£©£º¿ç¶·Ä£Ê½µÄÈÝÆ÷Äܹ»ÍØÕ¹ºÍÔöÇ¿ÏÈǰ´æÔÚµÄÈÝÆ÷µÄ¹¦Äܶø²»¶ÔÆä½øÐиı䡣

´óʹģʽ£¨Ambassador Pattern£©£ºÕâÖÖģʽÄܹ»Òþ²Ø¸´ÔÓÐÔ£¬²¢ÎªÈÝÆ÷Ìṩһ¸öͳһµÄÍⲿ½Ó¿Ú¡£

ÊÊÅäÆ÷ģʽ£¨Adapter Pattern£©£ºÊÊÅäÆ÷ģʽÊÇ´óʹģʽµÄ·´Ä£Ê½£¬ËüΪÀ´×ÔÍⲿÊÀ½çµÄpodÌṩÁËÒ»¸öͳһµÄ½Ó¿Ú¡£

³õʼ»¯Æ÷ģʽ£¨Initializer Pattern£©£º³õʼ»¯Æ÷ģʽµÄÈÝÆ÷Äܹ»½«³õʼ»¯Ïà¹ØµÄÈÎÎñÓëÖ÷Ó¦ÓóÌÐòÂß¼­Ïà·ÖÀë¡£

¹¤×÷¶ÓÁÐģʽ£¨Work Queue Pattern£©£º²ÉÓù¤×÷¶ÓÁÐģʽµÄÈÝÆ÷Äܹ»½«ÈÎÒâ´¦Àí´úÂë´ò°ü³ÉÈÝÆ÷»òÊý¾Ý£¬²¢ÇÒ¹¹½¨³ÉÒ»¸öÍêÕûµÄ¹¤×÷¶ÓÁÐϵͳ¡£

×Ô¶¨Òå¿ØÖÆÆ÷ģʽ£¨Custom Controller Pattern£©£ºÍ¨¹ýÕâÖÖģʽ£¬¿ØÖÆÆ÷¾ÍÄܹ۲ì¶ÔÏóµÄ±ä»¯£¬²¢¶ÔÕâЩ±ä»¯²ÉÈ¡»î¶¯£¬´Ó¶ø½«¼¯ÈºÇý¶¯ÖÁËùÐèµÄ״̬¡£ÕâÖÖµ÷½âģʽ¿ÉÓÃÓÚʵÏÖ×Ô¶¨ÒåÂß¼­²¢ÍØÕ¹Æ½Ì¨µÄ¹¦ÄÜ¡£

×Ô¸Ð֪ģʽ£¨Self Awareness Pattern£©£ºÕâÖÖģʽÃèÊöÁËÓ¦ÓóÌÐòÐèÒª½øÐÐ×ÔÉíÉó²é²¢ÇÒ»ñµÃ¹ØÓÚ×ÔÉíºÍÔËÐл·¾³ÔªÊý¾ÝµÄÇé¿ö¡£

ÕâÒ»ÁìÓòµÄ»ù´¡¹¤×÷ÊÇÓÉBrendan BurnsºÍOppenheimerÔÚËûÃǵÄÈÝÆ÷Éè¼ÆÄ£Ê½µÄÂÛÎÄÖÐÍê³ÉµÄ¡£Ö®ºó£¬Brendan³ö°æÁËÒ»±¾¹ØÓÚ·Ö²¼Ê½ÏµÍ³Éè¼ÆÄ£Ê½Ïà¹ØÖ÷ÌâµÄÊé¡£Roland Hu?ºÍÎÒҲдÁËÒ»±¾Êé½Ð×ö¡¶Kubernetes Patterns¡·£¬ÀïÃæº­¸ÇÁËËùÓÐÕâЩÉè¼ÆÄ£Ê½ºÍ»ùÓÚÈÝÆ÷µÄÓ¦ÓóÌÐòµÄʹÓÃÓÃÀý¡£ÏÂͼÊÇÆäÖÐһЩģʽµÄ¿ÉÊÓ»¯¡£

ͼ6 - ÈÝÆ÷Éè¼ÆÄ£Ê½

Ô­ÓïÐèÒªÔ­ÔòºÍ¾«ÐÄÉè¼ÆµÄģʽ¡£½ÓÏÂÀ´ÈÃÎÒÃÇ¿´¿´Ê¹ÓÃKubernetesµÄ×î¼Ñʵ¼ùºÍһЩºÃ´¦¡£

ʵ¼ùºÍ¼¼ÇÉ

³ýÁËÔ­ÔòºÍģʽ֮Í⣬´´½¨Á¼ºÃµÄÈÝÆ÷»¯Ó¦ÓóÌÐò»¹ÐèÒªÊìϤÆäËûÓëÈÝÆ÷Ïà¹ØµÄ×î¼Ñʵ¼ùºÍ¼¼ÇÉ¡£Ô­ÔòºÍģʽÊdzéÏóµÄ¡¢»ù´¡µÄ¹Ûµã£¬ËüÃǵı仯ºÜÉÙ¡£×î¼Ñʵ¼ùºÍÏà¹ØµÄ¼¼ÇÉÔò¸ü¼Ó¾ßÌ壬¿ÉÄÜ»áÆµ·±µØ·¢Éú±ä»¯¡£ÒÔÏÂÊÇһЩ³£¼ûµÄÓëÈÝÆ÷Ïà¹ØµÄ×î¼Ñʵ¼ù£º

רעÓÚС¾µÏñ£ºÕâÄܼõСÈÝÆ÷µÄ´óС¡¢¹¹½¨Ê±¼äºÍ¸´ÖÆÈÝÆ÷¾µÏñʱµÄÍøÂçʱ¼ä¡£

Ö§³ÖÈÎÒâÓû§id£º±ÜÃâʹÓÃsudoÃüÁî»òÐèÒªÒ»¸öÌØ¶¨µÄuseridÀ´ÔËÐÐÄúµÄÈÝÆ÷¡£

±ê¼ÇÖØÒª¶Ë¿Ú£ºÊ¹ÓÃEXPOSEÃüÁîÖ¸¶¨¶Ë¿Ú£¬ÕâÄÜʹµÃÆäËûÈ˺ÍÈí¼þÄܹ»¸ü¼òµ¥µØÊ¹ÓÃÄãµÄ¾µÏñ¡£

Ϊ³Ö¾ÃÊý¾ÝʹÓÃ¾í£¨Volume£©£ºÔÚÈÝÆ÷±»Ïú»Ùºó£¬ÐèÒª±»±£´æµÄÊý¾Ý±ØÐ뱻дÈëµ½¾íÖС£

ÉèÖÃÓ³ÏñÔªÊý¾Ý£º¾µÏñÔªÊý¾ÝÒÔ±ê¼Ç¡¢±êÇ©ºÍ×¢Ê͵ÄÐÎʽ³öÏÖ£¬ÕâÄÜʹÄúÄܹ»ÄÜÈÝÒ×·¢ÏÖ×Ô¼ºµÄÈÝÆ÷¾µÏñ¡£

ͬ²½Ö÷»úºÍ¾µÏñ£ºÒ»Ð©ÈÝÆ÷»¯µÄÓ¦ÓóÌÐòÒªÇóÈÝÆ÷ÔÚijЩÊôÐÔÉÏÓëÖ÷»ú½øÐÐͬ²½£¬ÀýÈçʱ¼äºÍ»úÆ÷ID¡£

STDOUTºÍSTDERRÈÕÖ¾£º½«ÈÕÖ¾¼Ç¼µ½ÕâЩϵͳÁ÷Öжø²»ÊÇÎļþÀïÄܹ»È·±£ÈÕÖ¾±»ÕýÈ·µØÊÕ¼¯ºÍ¾ÛºÏ¡£

ÒÔϵÄÕâЩÁ´½ÓÊÇÈÝÆ÷Ïà¹Ø×î¼Ñʵ¼ùµÄһЩ×ÊÔ´£º

±àдDockerfilesµÄ×î¼Ñʵ¼ù

1.OpenShiftÖ¸µ¼Ô­Ôò

2.Kubernetes²úƷģʽ

3.KubernetesʾÀý

4.KubernetesÓÅÊÆ

ÕýÈçÄú´Ó±¾ÎÄÖÐËù¿´µ½µÄ£¬KubernetesÒÔÒ»ÖÖ»ù±¾µÄ·½Ê½À´Ö¸µ¼·Ö²¼Ê½ÏµÍ³µÄÉè¼Æ¡¢¿ª·¢ºÍ²Ù×÷¡£KubernetesµÄѧϰ·Ïß²¢²»¶Ì£¬¿çÔ½Kubernetes¼¼Êõºè¹µÐèҪʱ¼äºÍÄÍÐÄ¡£Õâ¾ÍÊÇΪʲôÎÒÏëÔÚÕâÀïºÍ¶ÁÕß̸̸Kubernetes¸ø¿ª·¢Õß´øÀ´µÄһϵÁкô¦¡£ÎÒÏ£ÍûÕ⽫ÓÐÖúÓÚÖ¤Ã÷ΪʲôѧϰKubernetesÊÇÖµµÃµÄ£¬²¢ÇÒΪʲôҪʹÓÃËüÀ´Ö¸µ¼ÄãµÄITÕ½ÂÔ¡£

×Ô·þÎñ»·¾³£ºËüʹµÃÍŶӺÍÍŶӳÉÔ±Äܹ»Á¢¼´´Ó¼¯ÈºÖзÖÀë³ö¸ôÀëµÄ»·¾³£¬ÒÔ±ã½øÐÐCICDºÍÓÃÓÚʵÑéÄ¿µÄ¡£

¶¯Ì¬·ÅÖÃÓ¦ÓóÌÐò£ºËüÔÊÐí»ùÓÚÓ¦ÓóÌÐòÐèÇ󡢿ÉÓÃ×ÊÔ´ºÍÖ¸µ¼²ßÂÔ£¬½«Ó¦ÓóÌÐòÒÔ¿ÉÔ¤²âµÄ·½Ê½·ÅÖõ½¼¯ÈºÖС£

ÉùÃ÷ʽ·þÎñ²¿Êð£ºÕâ¸ö³éÏó·â×°ÁËÒ»×éÈÝÆ÷µÄÉý¼¶ºÍ»Ø¹ö¹ý³Ì£¬²¢Äܹ»½«ÆäÖ´ÐÐΪ¿ÉÖØ¸´ºÍ¿É×Ô¶¯»¯µÄ»î¶¯¡£

ͼ7 - Kubernetes²¿ÊðºÍ·¢²¼Ê¾Àý

Ó¦ÓóÌÐòµ¯ÐÔ£ºÈÝÆ÷ºÍ¹ÜÀíÆ½Ì¨¿ÉÒÔͨ¹ý¶àÖÖ·½Ê½Ìá¸ßÓ¦ÓóÌÐòµÄµ¯ÐÔ£¬ÀýÈ磺

ÎÞÏÞÑ­»·£ºCPU¹²ÏíºÍÅä¶î

ÄÚ´æÐ¹Â¶£º×Ô¼ºÄÚ´æ²»×ã

´ÅÅÌÕ¼ÓãºÅä¶î

ForkÕ¨µ¯£º½ø³ÌÏÞÖÆ

¶Ï·Æ÷¡¢³¬Ê±¡¢ÒÔ¿ç¶·Ä£Ê½ÖØÆô

ÒԿ綷ģʽ½øÐйÊÕÏ×ªÒÆºÍ·þÎñ·¢ÏÖ

ʹÓÃÈÝÆ÷½øÐÐÏ̸߳ôÀë

ͨ¹ýµ÷¶ÈÆ÷½øÐÐÓ²¼þ¸ôÀë

ÈÝÁ¿×Ô¶¯ÉìËõºÍ×ÔÎÒ»Ö¸´

·þÎñ·¢ÏÖ¡¢¸ºÔؾùºâºÍ¶Ï·Æ÷£ºÆ½Ì¨ÔÊÐí·þÎñÔÚ²»Ê¹ÓÃÓ¦ÓóÌÐò´úÀíµÄÇé¿öÏ·¢ÏÖºÍʹÓÃÆäËû·þÎñ¡£´ËÍ⣬¿ç¶·Ä£Ê½µÄÈÝÆ÷ºÍIstio¿ò¼ÜµÈ¹¤¾ßµÄʹÓ㬿ÉÒÔÍêÈ«½«Ó¦ÓóÌÐòÖ®ÍâµÄÏà¹ØÍøÂçÖ°Ôð×ªÒÆµ½Æ½Ì¨¼¶±ðÖ®Íâ¡£

ÉùÃ÷ÐÔÓ¦ÓóÌÐòÍØÆË£ºÊ¹ÓÃKubernetes API¶ÔÏóÔÊÐíÎÒÃǶÔÈçºÎ²¿ÊðÎÒÃǵķþÎñ½øÐÐÃèÊöÒÔ¼°ËµÃ÷ËüÃÇ¶ÔÆäËû·þÎñºÍ×ÊÔ´µÄÒÀÀµ¡£½«ËùÓÐÕâЩÐÅÏ¢ÒÔ¿ÉÖ´ÐеĸñʽÌṩ¸øÎÒÃÇ£¬Ê¹ÎÒÃÇÄܹ»ÔÚ¿ª·¢µÄÔçÆÚ½×¶Î¶ÔÓ¦ÓóÌÐòµÄ²¿Êð½øÐвâÊÔ£¬²¢½«Æä×÷Ϊ¿É±à³ÌµÄÓ¦ÓóÌÐò»ù´¡¼Ü¹¹¡£

ͼ8 - ÉùÃ÷ÐÔÓ¦ÓóÌÐòÍØÆË¶ÔKubernetes×ÊÔ´ÃèÊö·ûÎļþµÄʹÓÃ

¹ØÓÚKubernetes£¬»¹Óиü¶àÎÒÃÇΪ֮¸Ðµ½Ð˷ܵÄÀíÓÉ¡£ÎÒÉϱßÁгöµÄÊÇÎҸоõºÜÓÐÓõĶ«Î÷£¬ÒòΪËüÃÇÀ´Ô´ÓÚÓпª·¢±³¾°µÄÈËÃÇ¡£

   
4109 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

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

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

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