对新手来说,Kubernetes可能是一头野兽。我们体验到了诸多好处和便利,但在表面之下却发生了许多我们无法看到的事情。为了剥茧抽丝一探究竟,Akamai通过对著名仓库:Kelsey Hightower的Kubernetes the Hard Way创建fork,围绕Linode平台制定出一种更适合的方法。

延伸阅读,点击链接了解Akamai Cloud Computing
如果你以前没有接触过Kelsey的方法,他提供的内容绝对值得一看。毕竟他可是业界知名的Kubernetes布道师之一,也是该项目最早的贡献者之一。
如果你已经准备好真正深入了解Kubernetes的工作原理,本文将向你分享一些重要经验。你也许将能以此为契机,以一种截然不同的新方式去理解自己曾经认为理所当然的事情。希望这足以让你有兴趣亲自一试!
第1课:人都会犯错
Hightower的作品中最惊人的地方在于,会向你展示为什么Kubernetes的脚本部署应用如此广泛。他的方法很简单,就是带你了解运行这些部署时会发生什么。
当你同时在三个控制平面节点上运行同一条命令时,可能会出现简单的输入错误,进而需要返回来重新输入。你也可能在实验结束时才意识到这方面的烟雾测试(Smoke test)已经完全失败,需要重新启动。只有在我们犯错时才会学到最多东西,因为这样就能回过头来弄清楚自己到底做错了什么。事实上,整本教程中最有用的部分之一就是清理部分,因为你可能会遇到集群中的东西坏得无法修复的时候,这时候将只能从头开始。
是谁说Kubernetes很简单的?
第2课:Kubernetes并不是魔术
如果只用过托管的Kubernetes集群,你可能会觉得Kubernetes是个神奇的系统,能让你的东西一直运行下去。但深入学习下去就会发现,Kubernetes并不是魔术。它只是一堆代码,做着优秀软件最擅长的事:让你看起来像个魔术师。
当你磕磕绊绊地正确设置Linode上的主机名,或者试图弄明白Kubernetes的网络模型到底是怎么回事时,你就会清楚意识到:自己所面对的并不是什么神奇的容器仙药,不可能将它撒在基础设施上就能让一切难题迎刃而解。
最后,当你在部署Kubernetes集群时键入每一条命令,而不是仅仅按下按钮就将生产代码发布出去时,你就会明白为什么Kubernetes的按按钮式解决方案如此之好。这也意味着当集群出现问题时,你可以深入其中并解决问题,而原本你甚至可能都不知道具体是平台的哪一部分出现了问题。

第3课:阅读文档
首次阅读Hightower的教程时,笔者在读完一半时才意识到,文档链接的存在并不是为了好玩,而是必不可少的。要建立一个庞大的系统,必须通读Kubernetes文档。
当然,你也可以简单地将所有内容输入终端,获得运行小型Kubernetes集群所需的所有Linode实例,但这种方式要求你具备超人般的打字技巧,并确保永远不会出错。当然,你可能会在学习结束时对Kubernetes的运作有更多了解,但这远比不上亲自关注每个实验中的链接。
对某些读者来说,这个结论可能是显而易见的。不过有些人可能会经历这样的循环:无法确定如何让某个实验正常运行,于是直接跳到指南的"清理"部分重新开始。在此之前请先查看关键链接。顺便阅读一下文档,你会更快乐。
结论:别放弃!
如果你一直读到了这里,请接受我们的赞赏。你可能不需要最后的忠告,但我们还是要告诉你:别放弃!不管有多难,用这种"苦办法"建立Kubernetes集群并不是不可能完成的任务。毕竟,按按钮式的解决方案一直都在做这种事,甚至无需任何思考。如果电脑可以按照一堆指令操作,那么你也可以。
此外,看着自己部署到手工构建的Kubernetes集群上的网站,那种感觉有点像看到了只有徒步一天才能到达的高山湖泊。你会很庆幸自己坚持下来了。
Hightower的指南很实用,这也是我们将它fork并借此构建Linode专用资源的原因。这能让大家学到很多东西,但更重要的是,在做这件事的过程中可以获得乐趣:我们成功解决了棘手的问题。
如果你喜欢我们的文章,欢迎关注我们↓↓↓