×÷Ϊһ¸ö¼¯ÖÐÓÚ¸´ÔÓµÄÏîÄ¿¼¯³ÉµÄ¼¼Êõ¹«Ë¾£¬²»µ«Í³Ò»ÒÅÁôϵͳ¶øÇÒÄ£¿é»¯µÄ½â¾ö·½°¸£¬È·±£³Ö¾ÃµÄ¿ÉÀ©Õ¹ÐÔ£¬ÎÒÃÇÕýÔÚ´ÓÊ´óÁ¿µÄÏîÄ¿£¬°üÀ¨¿Í»§Èí¼þ¿ª·¢£»´ò°ü£¬¿ªÔ´ºÍSaaSÈí¼þ¼¯³É£»»ù´¡ÉèÊ©ÉèÖ㻺ͲúÆ·ÔËÓªÓëά»¤¡£
´ÓÒ»¸ö¼¼ÊõµÄ½Ç¶ÈÀ´¿´£¬ÎÒÃǵķ½·¨ÓÀÔ¶ÊÇÎ޹صġ£ÎÒÃÇÓëJavaºÍ.NETºó¶Ë¡¢webºÍÒÆ¶¯¶Ë£¨ËùÓÐÆ½Ì¨£©¡¢AmazonºÍAzureÔÆ·þÎñºÍ»ù´¡ÉèÊ©£¬ºÍ¼´Ê¹ÊDZ¾µØ²¿ÊðÒ»Æð¹¤×÷¡£
¶ÔÎÒÃǶøÑÔ£¬ÈÝÆ÷»¯×÷Ϊ¹ÜÀí¸´ÔÓϵͳºÍ½ø³ÌµÄÒ»ÖÖ·½·¨£¬ÒѾºÜ³¤Ò»¶Îʱ¼ä³ÉΪʵ¼ÊµÄ±ê×¼£¬µ«ÊÇËæ×ÅÈç´Ë¶àµÄ¸´ÔÓÐԺͼ¼ÊõÔÚÆð×÷Óã¬ÎÒÃÇÓÀÔ¶ÔÚѰÕÒÐµķ½·¨À´Ìá¸ßÎÒÃǵŤ×÷ЧÂÊ£¬Öظ´ÎÒÃÇËù×öµÄ£¬²¢ÇÒÈÃÎÒÃǵÄÍŶӼ¯ÖÐÓÚÿ¸öÏîÄ¿¶ÀÌØµÄÒµÎñÐèÇó¡£
ʵÏÖÕâ¸öµÄÒ»¸ö·½·¨¾ÍÊÇͨ¹ýÒ»¸öÁé»î¿É¿¿µÄƽ̨µÄÓ¦ÓÃÀ´¹ÜÀí¸´ÔӵĶ༯ȺÈÝÆ÷Èí¼þ¡ª¡ªÎªÁ˸÷ÖÖ¸÷ÑùµÄDevOpsÐèÒªºÍÖ§³Ö²úÆ·ÔËÓªºÍÔÙʹÓ㬹¹½¨¿ÉÖØ¸´Ê¹ÓõÄ×é¼þ¡£
ÔÚÆ½Ì¨ÐèÇóÖУ¬ÎÒÃÇÈ·ÈÏÁËÒÔϼ¸µã£º
¾¡¿ÉÄܱÜÃâ±»³§ÉÌËø×¡¿ÉÐÐÐÔ¡£Æ½Ì¨ÐèÒª¿ÉÒÆÖ²ÐÔ(Äܹ»ÔÚ²»Í¬µÄÔÆºÍ±¾µØÉÏÔËÐÐ)£¬Ëü±ØÐëÒÀÀµÓÚ¿ª·Å±ê×¼ºÍÐÒé¡£Ëü»¹ÐèÒª×÷Ϊ´óÁ¿ÏîÄ¿¡¢·þÎñºÍ×éÖ¯µÄ»ù´¡¡£
ÊÊÓÃÓÚ²»Í¬µÄÒµÎñ»·¾³¡£Õâ¾ÍÐèÒªÓÐÐí¿ÉµÄ¿ªÔ´¼¼Êõ¡¢ÉÌÒµÖ§³ÖµÄ¿ÉÓÃÐÔºÍÃâ·ÑÑ¡Ïî¡£
¿ÉÀ©Õ¹ÐÔ¡£Ö§³Ö´Ó³¬Ð¡(ÀýÈçÒ»¸öÎïÀí»òÐéÄâ½Úµã)µ½´óÐÍ(¼¸Ê®¸ö½Úµã)µ½³¬´ó(³É°ÙÉÏǧ¸ö½Úµã)µÄÅäÖá£
¿É¿¿ÐÔ¡£¶ÔÓÚ²»Í¬µÄ»·¾³ºÍËõ·Å£¬ÎÒÃÇÐèÒª¶Ô¸÷ÖÖ×ÔÎÒ»Ö¸´ºÍ¹ÊÕÏ×ªÒÆµÄÖ§³Ö¡£
Áé»îÐԺ͹¦Äܷḻ¡£ÎÒÃÇÏ£ÍûÓÐһЩ¿ª·¢¡¢¸ßЧDevOpsºÍ²úÆ·ÔËÓª×Ô¶¯»¯ËùÐèµÄ¹¦ÄܺͳéÏó¡£
²¿Êð¼òµ¥¡£Ò×ÓÚ²¿ÊðºÍÉèÖò»Í¬µÄ»·¾³£¬×îºÃÊÇ¿ªÏä¼´Óá£Ëü»¹ÐèÒªÇáÁ¿¼¶¡¢Éú²ú¾ÍÐ÷ºÍ¾¹ýʵս²âÊÔ¡£
½â¾ö·½°¸Â·¾¶
һЩ¿ò¼Ü´æÔÚ£¬µ«ÊÇÏÂÃæµÄÈý¸öÊÇÏÖʵµÄ¾ºÕùÕߣº
¡¤ Docker Swarm
¡¤ Kubernetes
¡¤ HashicorpµÄstack ¹¤¾ß¡ª¡ªnomad, consul, etc.
¡¤ (²¢ÇÒÈÙÓþÍÆ¼ö Apache Mesos)
ÔÚ½øÐÐÁËһЩÑо¿ºÍÔÐÍ¿ª·¢Ö®ºó£¬ÎÒÃǽ«Kubernetes×÷Ϊ±ê×¼DevOpsºÍ¼¯Èº±àÅÅÆ½Ì¨µÄÖ÷ÒªºòÑ¡¶ÔÏó£¬ÔÒòÓкܶࡣ
KubernetesµÄÓŵã
ÏêϸÃèÊöÎÒÃÇÈçºÎ±È½Ï¹¤¾ß²»ÊÇÎÒÃÇÕâÆªÎÄÕµÄÄ¿µÄ£¬µ«ÊÇÎÒ»¹ÊÇÏë¸ø¸öС½áÀ´ËµÃ÷ÏÂKubernetesµ½µ×ÄÄÀïºÃ£º
podÀíÄһÌ×co-locatedÈÝÆ÷·Ç³£Ç¿´ó,Ëü½â¾öÁËDocker ComposeÏàͬµÄÎÊÌ⣬µ«¸ü¼ÓÓÅÑÅ¡£pod£¬²»ÊÇÈÝÆ÷£¬Êµ¼ÊÉÏÊÇKubernetesµÄÒ»¸ö¹¤×÷¸ºÔص¥Ôª¡£
ƽ¸²¸ÇÍøÂçµØÖ·¿Õ¼ä£¬Ã¿¸öpodµÃµ½Ò»¸öΨһµÄIPµØÖ·£¬Í¨¹ý±¾µØÖ÷»úºÍÈÝÆ÷ÄÚpodͨÐÅ¡£
¡°·þÎñ¡±¸ÅÄîͨ¹ýÎȶ¨µÄ¸²¸ÇÍøÂçIPµØÖ·µÄL3ƽºâµÄÒ»Ì×pod£¬ÌṩÁ˼òµ¥µÄ·þÎñ·¢ÏÖ¡£
DNSfurtherÌá¸ß·þÎñ·¢ÏÖ¡£podÄܹ»Í¨¹ýËüÃǵÄÃû×ÖÕÒµ½·þÎñ¡£
Ãû³Æ¿Õ¼ä¡£ÕâЩ¿ÉÒÔ½«¶ÔÏó·Ö³É×飬²¢Îªµ¥¸ö¼¯ÈºÖеĶà×â»§ÌṩһÖÖ·½·¨¡£
Ò»Ì׷ḻµÄpod¿ØÖÆÆ÷¿ÉʵÏÖ¿ªÏä¼´Óãº
ÓÃÓڶԳƼ¯ÈºµÄ²¿Ê𡢸±±¾ºÍ¸´ÖÆ¿ØÖÆÆ÷£»
Ϊ×é¼þ±êʶµÄ¼¯ÈºÉèÖÃpetÊǺÜÖØÒªµÄ£»
ÓÃÓÚ¸¨Öú×é¼þµÄDaemon¼¯£¬ÀýÈçÈÕÖ¾ÍÐÔËÈ˺ͱ¸·Ý½ø³Ì£»
ÓÃÓÚ·´Ïò´úÀíºÍL7¸ºÔØÆ½ºâµÄlngresses£¬ÒÔ¼°¸ü¶à¡£
¸½¼þµÄ¸ÅÄî,Ìṩ¡°ºáÇйØÏµ¡±µÄÌØÐÔ¡£
·á¸»¡¢³Ö¾Ã´æ´¢¹ÜÀí¹¦ÄÜ¡£
Óë´ó¶àÊýIaaSÔÆÌṩÉÌʵÏÖÁ¼ºÃµÄ¼¯³É¡£
×ܶøÑÔÖ®£¬ÔÚÎÒ¿´À´£¬KubernetesÔÚ¡°Ì«ÉÙ¸ÅÄÐèҪд¸ü¶àÒýÓôúÂ롱ºÍ¡°Ì«¶à¸ÅÄϵͳ²»¹»Áé»î¡±Ö®¼äÕÒµ½ÁËÕýÈ·µÄƽºâ¡£
KubernetesµÄȱµã
²»ÐÒµÄÊÇ£¬¼´±ãÊÇÌ«ÑôÒ²Óкڵ㡣KubernetesÊdzöÁËÃûµÄÔÚÉú²úϵͳÖÐÄÑÓá£
ÎÒÃÇÆ½Ì¨¹¹½¨½ø³ÌµÄÐèÇóÊÇÖ÷ÒªÀ´Ô´ÓÚÒ»°ãƽ̨ÐèÇó£¬ÎÒÃÇÏë×öµÄÊÇÒÔϼ¸µã£º
ÉèÖÃÒ»¸ö¡°vanilla¡±Kubernetes¼¯Èº£¬²»ÊÇ»ùÓÚKubernetesµÄ×Ô¶¨Òå²úÆ·¡£
Äܹ»×Ô¶¨Ò弯ȺÅäÖò¢ÇÒÒ×ÓÚ¹¹½¨½ø³Ì¡£
¼ò»¯¹¹½¨½ø³ÌºÍ¾¡¿ÉÄܵļõÉÙ¹ÜÀíÔ±»·¾³µÄÐèÇó¡£
Èò¿Êð½ø³ÌÇá±ãºÍ¿ÉÖØ¸´Ê¹Óã¬ÒÔ±ãÎÒÃÇÄܹ»ÔÚ¶àÖÖÆ½Ì¨ÉÏά»¤Ëü¡ª¡ªÖÁÉÙAzure£¬AWSºÍÂã»ú¡£
ÒÀÀµÔƹ©Ó¦ÉÌÌØ¶¨¹¤¾ß½øÐÐIaaS×ÊÔ´¹ÜÀí¡ª¡ªAWSµÄCloud Formation£¬AzureµÄResource
Manager ¡£
±£Ö¤×÷Ϊ½á¹ûµÄ²¿ÊðÊÇÉú²ú¾ÍÐ÷µÄ£¬¿É¿¿µÄ£¬×ÔÎÒÐÞ¸´µÄ£¬¿ÉÀ©Õ¹µÄµÈµÈ£¨¼´Âú×ãÉÏÊöƽ̨µÄËùÓÐÒªÇ󣩡£
ÓÐÐí¶à·½·¨¹¹½¨Ò»¸öKubernetes¼¯Èº¡ª¡ªËüÃÇÖеÄһЩÉõÖÁÊǹٷ½ÎļþºÍÃèÊöÖеÄÄÚÈÝ¡ª¡ªµ«ÊǶÔËûÃÇÿ¸ö½øÐе÷²é£¬ÎÒÃÇ¿´µ½²»Í¬µÄÎÊÌ⣬×èÖ¹ÁËËüÃdzÉΪ
EastBanc TechnologiesµÄÏîÄ¿µÄ±ê×¼¡£½á¹û£¬ÎÒÃÇÉè¼ÆºÍ¹¹½¨ÁËÒ»¸öKubernetes¼¯ÈºÉèÖúÍÅäÖýø³Ì£¬Ëü½«ÎªÎÒÃǹ¤×÷¡£
ÖØÐ¹¹ÏëKubernetes²¿Êð
ΪÁËÎÒÃǵÄKubernetes²¿Êð³ÌÐò£¬ÎÒÃǾö¶¨ÒÀÀµÔƹ©Ó¦É̹¤¾ß½øÐÐIaaS×ÊÔ´¹ÜÀí£¬Ò²¾ÍÊÇ AWSµÄCloud
Formation ºÍAzureµÄResource Manager¡£
ΪÁË´´½¨Ò»¸ö¼¯Èº£¬²»ÐèÒªÔÚÄã»úÆ÷ÉÏÉèÖÃÈκζ«Î÷£¬Ö»ÓÃCloud FormationÄ£°åºÍAWS¿ØÖÆÌ¨À´´´½¨Ò»¸öжÑÕ»¡£ÎÒÃÇʵÏÖµÄKubernetes¼¯ÈºÔÆÐγÉÄ£°å´´½¨Á˼¸¸ö×ÊÔ´£¬ÈçÏÂͼËùʾ£º

ÈÃÎÒÃǸüÉîÈëµÄ¿´ÏÂÕâЩ×ÊÔ´£º
Master EIPΪKubernetesÖ÷½ÚµãÌṩÎȶ¨µÄ¹«¹²¶ËµãIPµØÖ·¡£
ÔÚÆô¶¯Ê±£¬KubernetesÖ÷³õʼ»¯½Å±¾»¹·ÖÅä±ê×¼µÄ˽ÓÐIPµØÖ·(127.20.128.9)ÒÔÈ·±£Ö÷½ÚµãÒ²ÓÐÒ»¸öÎȶ¨µÄ˽ÓÐIP£¬¶ËµãΪ½ÚµãKubelets¡£
Master EBSÔÚÆô¶¯Ê±¸½ÊôÓÚÖ÷½Úµã£¬²¢ÇÒÓÃÓÚ´æ´¢¼¯ÈºÊý¾Ý¡£
KubernetesmasterÔÚAuto Scaling GroupÖпªÊ¼£¬ÒÔÈ·±£AWSÍòÒ»¹ÊÕÏÄָܻ´¡£Ä¿Ç°£¬master
Auto Scaling Group¾ßÓÐ×îС¡¢ÏëµÃµ½µÄºÍ×î´óÊýÁ¿µÄʵÀýÉèÖÃΪ1¡£
ÔÚ¶à¸ö¿ÉÓÃÐÔÇøÓòÖÐAuto Scaling GroupÖÐÔËÐнڵ㡣
S3 bucketÓÃÓÚ·ÖÏíÖ¤Êétokens£¬ÎªÁ˽ڵãºÍ¿Í»§Á¬½Óµ½master¡£Master½«ÔÚµÚÒ»¸öÆô¶¯Ê±Éú³ÉÖ¤ÊéºÍtokens£¬²¢½«ËüÃÇÉÏ´«µ½bucketÖС£
masterºÍ½Úµã·ÖÅäIAMµÄ½ÇÉ«ÐèÒªAWS×ÊÔ´µÄ·ÃÎÊȨÏÞ¡£
masterºÍ½ÚµãʵÀý´ÓÒ»¸öAMI±»´´½¨£¬Ëæ×ÅKubernetesÔ¤ÏȰ²×°ËùÐèµÄËùÓÐÈí¼þ×é¼þ¡£
ΪÁËÅäÖÃKubernetesÈí¼þ×é¼þÔÚmasterºÍ½ÚµãÉÏÔËÐУ¬ÎÒÃÇʹÓÃÁ˱àдµÄ¶à½Úµã¼¯ÈºÅäÖ÷½·¨£¬ÔÚKubernetesµÄÎĵµÖÐÓÐÃèÊö¡£
ÏÂͼչʾÁËÅäÖýá¹û£º

¼¯Èº³õʼ»¯ÉèÖ÷ֳÉ3Àࣺ
Packer½Å±¾ÎªÁ˼¯Èº×¼±¸AMI
Cloud FormationÄ£°åΪÁ˼¯Èº´´½¨»ò¸üÐÂAWS×ÊÔ´
Bootstrap½Å±¾×÷Ϊmaster»ò½ÚµãʵÀýboot½ø³Ì×îºóÒ»²½ÔËÐÐ
AMI×¼±¸
ÎÒÃÇ»ùÓÚ¹Ù·½Kubernetes AMI k8s-debian-jessieΪ¼¯Èº¹¹½¨ÁËÒ»¸ö×Ô¶¨ÒåAMI£¬Ëü·´¹ýÀ´Ò²Ö»ÊÇÒ»¸ö±ê×¼µÄDebian
JessieÓ³Ïñ£¬°²×°ÁËһЩ¸½¼Ó°ü¡£
AMI×¼±¸Í¨¹ýpacker½Å±¾Ö´ÐС£½ÓÏÂÀ´µÄ²½Öè¾ÍÒªÖ´Ðеģº
¸üа²×°°ü¡£
´´½¨docker-bootstrapºÍkubelet-systemd·þÎñ¡£
¸üÐÂdocker-systemd flanneld·þÎñÅäÖÃ,ÕâÑùflanneld¸²¸ÇÍøÂç¿ÉÒÔÔÚ·þÎñÆ÷Æô¶¯Ê±ÅäÖá£
Pull etcd¡¢flanneldºÍ Kubernetes hyperkube Docker¾µÏñ£¬ÒÔÈ·±£¿ìËÙÆô¶¯¡£
´´½¨/etc/rc. /etc/kubernetes/bootstrap½Å±¾²¢Ìí¼ÓÆäÖ´Ðе½ /etc/rc.local
½Å±¾£¬ËùÒÔËü×÷ΪOSÆô¶¯Ë³ÐòµÄ×îºóÒ»²½ÔËÐеġ£
´Óhyperkubedocker¾µÏñÌáÈ¡hyperkube binary £¬°ÑËü·Åµ½/usr/bin£¬ÒÔ±ãkubelet½ø³Ì¿ÉÒÔÔÚdockerÈÝÆ÷Ö®ÍâÔËÐС£
×¼±¸¾²Ì¬podÇåµ¥ÎļþºÍÔÚ/etc/kubernetesÀïµÄKubernetesÅäÖÃÎļþ¡£
×¼±¸ÆäËû¸¨Öú¹¤¾ß£¬ÔÚʵÀýbootstrapÆÚ¼äʹÓÃ(ÀýÈçsafe_format_and_mount.sh½Å±¾)¡£
ÇåÀíÁÙʱºÍÈÕÖ¾Îļþ¡£
Cloud FormationÄ£°å
Cloud FormationÄ£°å´´½¨ºÍ³õʼ»¯AWS×ÊÔ´ÒѾÔÚÉÏÃæµÚÒ»ÕÅͼÀïչʾÁË¡£×÷ΪÕâ¸öÅäÖõÄÒ»²¿·Ö£¬ËüΪKubernetes
masterºÍ½ÚµãʵÀý´´½¨ÁËÆô¶¯ÅäÖöÔÏ󣬲¢ÇÒ½«ËüÃÇÓëmasterºÍ½ÚµãAuto Scaling Groups¹ØÁªÆðÀ´¡£
MasterºÍ½ÚµãÆô¶¯ÅäÖö¼°üÀ¨AWSÓû§Êý¾Ý½Å±¾£¬ÔÚ¼¸¸ö»·¾³±äÁ¿ÉèÖÃÀï´´½¨ /etc/kubernetes/stack-config.shÎļþ¡£
ÕâЩ»·¾³±äÁ¿ÊDZ»/etc/kubernetes/bootstrap½Å±¾Ê¹Óã¬À´È¡µÃ¹ØÓÚËüËùÕýÔÚÔËÐеĻ·¾³µÄÓï¾³ÐÅÏ¢¡£
ÌØ±ðÊÇMaster EIP£¬ÊµÀý½ÇÉ«£¨Kubernetes master»ò½Úµã£©£¬ºÍs3 bucketÃû³ÆÍ¨¹ýÕâÖÖ·½Ê½´«µÝ¡£
ʵÀý Bootstrap½Å±¾
ʵÀýbootstrap½Å±¾×÷ΪÔÚʵÀýÆô¶¯Ë³ÐòµÄ×îºóÒ»²½ÔËÐС£½Å±¾ÔÚmasterºÍ½ÚµãÉϹ¤×÷ÉÔ΢ÓÐЩ²»Í¬¡£½ÓÏÂÀ´µÄ²½Öè±ØÐë×÷ΪÕâ¸ö½ø³ÌµÄÒ»²¿·ÖÖ´ÐУº
ÔÚËùÓнڵãÉÏ:
´Ó/etc/kubernetes/stack-config.sh ¼ÓÔØÓï¾³ºÍ»·¾³ÐÅÏ¢¡£
ΪÁËKubernetesµþ¼ÓÍøÂ磬½ûÓÃʵÀýIPÔ´Ä¿µÄµØ£¬¼ì²éʹÓÃAWS CLIÀ´È·±£IP·Óɹ¤×÷Õý³£¡£
Ö»ÔÚmasterÉÏ:
¸½¼Ómaster EBSºÍÈ·±£Ëü±»¸ñʽ»¯²¢°²×°¡£
¸½¼ÓEIP´óʦ¡£
¹ØÁªÎȶ¨µÄ˽ÓÐIP¡£
¼ì²éÊÇ·ñtokenºÍÖ¤ÊéÎļþ´æÔÚS3 bucketºÍÖ¤ÊéÎļþ¡£
Èç¹ûS3 bucket²»°üº¬ËùÐèµÄÎļþ£¬Éú³ÉËüÃDz¢ÉÏ´«µ½bucket¡£
Èç¹ûS3 bucket°üº¬ËùÐèµÄÎļþ,ÏÂÔØµ½ /srv/kubernetesĿ¼¡£
Ö»ÔÚ½ÚµãÉÏ:
µÈ´ýÖªµÀS3 bucket°üº¬ËùÐèÎļþ¡£
ÏÂÔØÎļþµ½ /srv/kubernetes Ŀ¼¡£
È·±£docker-bootstrap·þÎñÒѾÆô¶¯¡£
Ö»ÔÚmasterÉÏ:
ÔÚdocker-bootstrapÖе±×÷Ò»¸öÈÝÆ÷ÔËÐÐetcd¡£
ÉèÖÃflanneldÅäÖÃÃØÔ¿¡£
ÔÚdocker-bootstrapÖе±×÷Ò»¸öÈÝÆ÷ÔËÐÐflanneld¡£
ÅäÖÃdocker£¬ÎªÊ¹ÓÃflanneld¸²¸ÇÍøÂçºÍÖØÆô¡£
ÅäÖÃkubeletºÍkube-proxy¡£
¿ªÊ¼kubelet·þÎñ¡£
ÔÚkubeletÔÚmasterÉÏÆô¶¯ºó£¬Ëü¸ºÔðÔÚ¾²Ì¬Çåµ¥ÎļþÖж¨ÒåµÄpodÖÐÆô¶¯ÆäËûKubernetes×é¼þ£¨ÀýÈç
apiserver, scheduler, controller-managerµÈµÈ£©£¬È»ºó±£³ÖËûÃÇÔËÐС£KubeletÔÚ½ÚµãÉÏÆô¶¯Ö»ÔÚÒ»¸öpodÀïÆô¶¯kube-proxy£¬È»ºóÁ¬½Óµ½master½øÐнøÒ»²½µÄÖ¸Áî¡£
м¯Èº
Ò»µ©masterÆô¶¯²¢ÍêÈ«³õʼ»¯£¬¹ÜÀíÔ±¾Í¿ÉÒÔ´ÓS3 bucketÏÂÔØKubernetes¿Í»§¶ËÅäÖÃÎļþ¡£bucketÖеÄÎļþÖ»ÄÜͨ¹ýmaster
EC2ʵÀý½ÇÉ«¡¢½ÚµãEC2ʵÀý½ÇÉ«ºÍAWSÕÊ»§¹ÜÀíÔ±·ÃÎÊ¡£
¼¯ÈºREST APIͨ¹ýÔÚ±ê×¼¶Ë¿ÚÉϵıê×¼¶Ë¿ÚÉϵÄHTTPSÌṩ¿ÉÓá£
°²È«£¬¿É¿¿ºÍ×÷Ϊ±ê×¼µÄ¿ÉÀ©Õ¹ÐÔ
ÓÉÓÚÎÒÃǵÄŬÁ¦£¬ÎÒÃÇÏÖÔÚÓÐÁËÒ»¸ö¼òµ¥µÄ·½·¨ÔÚAWSÉϽ¨Á¢Ò»¸ö¿É¿¿µÄ£¬Éú²ú¾ÍÐ÷µÄKubernetes¼¯Èº¡£
Cloud FormationÄ£°å¿ÉÒÔÓûò½øÒ»²½¶¨ÖÆ£¬ÒÔÂú×ãÌØ¶¨µÄÏîÄ¿ÐèÇó(ÀýÈçÌí¼Ó¶îÍâµÄAWS×ÊÔ´£¬ÀýÈçRDS£¬»ò¸ü¸Ä¼¯ÈºÔËÐеÄÇøÓò»ò¿ÉÓÃÐÔÇø(AZ))¡£ÎÒÃÇ»¹¿ÉÒÔºÜÈÝÒ×µØ×Ô¶¨ÒåÔÚ¼¯ÈºÉÏÔËÐеĸ½¼Ó×é¼þ¡£
´Ó°²È«ÐԵĽǶÈÀ´¿´£¬ÓÉÓÚÒÔÏÂÌØÐÔ£¬Ä¬ÈÏ·½Ê½ÏµÄм¯ÈºÊǰ²È«µÄ£¬¸ÐлÒÔÏÂÌØÐÔ£º
Ϊ¿Í»§ºÍ¼¯Èº½ÚµãµÄ·ÃÎÊ£¬Kubernetes¼¯ÈºetcdÅäÖÃÁË´«Êä²ã°²È«ÐÔ(TLS)¡£
ΪÁ˿ͻ§¶Ë·ÃÎʼ¯ÈºAPI·þÎñÆ÷ÅäÖÃÁËTLS¡£
ΪÁËÿ¸öKubernetes·þÎñ£¬Ä¬ÈÏKubernetes·ÃÎÊ¿ØÖÆÅäÖÃÁËÒ»¸öµ¥¶À¹ÜÀíÔ±Óû§ÕÊ»§ºÍ²»Í¬µÄ·þÎñÕË»§¡£
ËùÓÐÕÊ»§tokenºÍÃÜÂëÊÇËæ»úÉú³ÉµÄ¡£
ËùÓÐTLSÃÜÔ¿¡¢Ö¤ÊéºÍKubernetesÃØÃÜtokensºÍÃÜÂëÊÇͨ¹ýÒ»¸ö¶ÀÌØµÄS3 bucket£¬ÔÚÖ÷·þÎñÆ÷ºÍ·Ö²¼Ê½Ê×´ÎÆô¶¯Éú³ÉµÄ¡£
ÃÜÔ¿¡¢Ö¤ÊéºÍtokenÎļþÓÃÓÚÔÚmasterºÍ½ÚµãʵÀýÉÏÅäÖÃKubernetes×é¼þ£¬±»·Åµ½ÁÙʱÎļþϵͳ°²×°Ä¿Â¼£¬ËùÒÔÃØÃÜÐÅÏ¢²»±£´æÔÚ´ÅÅÌÉÏ(S3
bucket³ýÍâ)¡£
ÃØÃÜÎļþ·ÅÖõ½S3 bucketֻͨ¹ýACLÅäÖã¬Ö»ÊÚȨ·ÃÎʼ¯ÈºmasterºÍ½ÚµãʵÀýµÄ½ÇÉ«(AWSÕÊ»§¹ÜÀíÔ±)¡£
еļ¯ÈºÒ²Êǿɿ¿µÄ:
ÔÚ½ÚµãʧЧµÄÇé¿öÏ£¬Í¨¹ý½ÚµãµÄAuto Scaling Group½«Æô¶¯Ò»¸öнڵ㣬²¢ÇÒнڵã»á×Ô¶¯¼ÓÈ뼯Ⱥ£¬»Ö¸´¿ÉÓõļÆËãÄÜÁ¦¡£
ÔÚmasterʧ°ÜµÄÇé¿öÏ£¬Í¨¹ýmaster Auto Scaling GroupÒ»¸öеÄmasterʵÀý½«¿ªÊ¼¡£ÐµÄmasterʵÀý½«»á×Ô¶¯ÖØÐÂÁ¬½ÓmasterEIPºÍmaster
EBS£¬´Ó¶ø»Ö¸´ÒÔǰµÄ¼¯Èº¹¦ÄܺÍÅäÖá£
ͨ¹ý¿ìÕÕ±¸·ÝÅäÖÃʵÏÖ³£¹æEBS£¬¿É¿¿ÐÔ¿ÉÒÔ½øÒ»²½Ìá¸ß¡£Õâ¸ö¹ý³Ì±¾Éí¿ÉÒÔ×÷Ϊһ¸öpod»òÔÚKubernetes¼¯ÈºÖеĸ½¼Ó×é¼þÔËÐС£
½ÚµãAuto Scaling GroupĬÈÏÅäÖÿçÔ½¶à¸ö¿ÉÓÃÐÔÇøÓò¡£
¼¯ÈºÒ²¿ÉÉìËõ:
×îµÍµÄ¹æÄ£¿ÉÄÜÊÇÊÇÒ»¸öµ¥¶ÀµÄmaster½Úµã£¬¿ÉÒÔÔËÐÐÓû§¸ºÔØ£¬ÓÉÓÚmaster kubeletÅäÖÃ×¢²áÖ÷API·þÎñÆ÷¡£
Ëõ·Å¿ÉÒÔͨ¹ýÔÚ½ÚµãAuto Scaling GroupÌí¼Ó¸ü¶àµÄ½Úµã¡£
ÏÂÒ»²½¼°½ÓÏÂÀ´µÄ°²ÅÅ
ÒѾʵÏÖÁËÔÚÉú²úÖÐÔËÐÐKubernetes¼¯ÈºËùÐèµÄ×îÐ¡ÌØÐÔ¼¯£¬ÈÔÈ»ÓиĽøµÄ¿Õ¼ä¡£
µ±Ç°£¬¼¯ÈººÜÈÝÒ×Êܵ½master½ÚµãÕýÔÚÔËÐеĿÉÓÃÐÔÇøÓòʧ°ÜµÄÉ˺¦¡£ÓÉÓÚAWS EBSÏÞÖÆ£¬master
Auto Scaling Group±»¹ÊÒâÏÞÖÆÔÚÒ»¸ö¿ÉÓÃÇøÓò(EBS²»ÄÜÔÚÓëËü×î³õ´´½¨µÄ²»Í¬µÄAZÖÐʹÓÃ)¡£¿Ë·þÕâ¸öÎÊÌâÓÐÁ½ÖÖ·½·¨:
ͨ¹ý¶¨ÆÚ¿ìÕÕmaster EBSºÍ´Ó×îеĿìÕÕÔÚ²»Í¬µÄAZÀï×Ô¶¯»Ö¸´¡£ÕâÊÊÓÃÓÚÌØÐ¡ÐͲ¿Êð£¬Ö»ÐèÒª×ÔÎÒÐÞ¸´ºÍһЩͣ»úʱ¼äÊÇ¿ÉÒÔ½ÓÊܵġ£
ͨ¹ýÉèÖöàÖ÷»úKubernetesÅäÖá£ÓÃÓÚ´ó¹æÄ£²¿ÊðµÄĬÈÏÅäÖÃ(ʵ¼ÊÉÏÊÇ´ó¶àÊý²¿Êð)¡£
ÎÒÃÇÕýÔڼƻ®Á½¸ö¶¼Ö´ÐС£
¼´Ê¹ÉÏÃæÃèÊöµÄ¸Ä½ø£¬¼¯ÈºÈÔÈ»»áÊܵ½Õû¸öÇøÓòʧ°ÜµÄÓ°Ïì¡£Òò´Ë£¬ÎÒÃÇÕýÔڼƻ®ÒýÈ뼯ȺÁªºÏ×÷Ϊһ¸öÑ¡Ï²¢Îª¿çÇøÓòºÍ»ìºÏ²¿ÊðÌṩ²»Í¬µÄ×Ô¶¯»¯ÔÖÄѻָ´²ßÂÔ¡£
°²È«ÐÔÒ²¿ÉÒÔͨ¹ýEBS¼ÓÃܸĽø£¬Ç¶È빤¾ßÈçHashiCorp Vault£¬ÒÔ¼°¿ÉÄܸıäµÄÃØÃÜ·Ö²¼²ßÂÔ¡£
|