五个Kubernetes成功秘诀
开始使用Kubernetes,使用这些专家建议来充分利用容器编排。
你可以找到很多人和数据,告诉你Kubernetes已经成为一个重要的开源成功项目。那些同样的人会赞扬像Kubernetes这样的编排工具的价值,以帮助大规模管理集容器化的应用程序。
例如,红帽技术公司的技术人员戈登·哈夫(Gordon Haff)和威廉·亨利(William Henry)在他们的电子书“从锅与桶到程序与应用:软件学习如何打包自己”中指出,符合OCI的容器运行时非常擅长管理单个容器。但是,当单数变成复数时,这又是一个命题:“当你开始使用越来越多的容器和集装箱化的应用程序,分解成数百个时,管理和编排就会变得棘手。
然而,你会找到许多专家,像哈夫和亨利,他们会向你保证Kubernetes是“容易的”。它是一个强大的平台,但是对于越来越多的软件团队来说,进入容器化的应用程序可能会有一个学习曲线,特别是容器化的微服务。
“现在云中存在的许多系统都是建立在基于虚拟机,虚拟磁盘等物理概念的抽象基础之上的,”Heptio的联合创始人兼首席技术官兼Kubernetes在Google的原始开发人员之一的Joe Beda说。 “Kubernetes引入了一系列逻辑抽象:容器,镜像,pod,服务,等等。学习这些可能需要一些时间,并为这套技术的学习曲线作出贡献。“
我们收集了一些重要的建议,帮助你做到这一点 ,学习和计划,让末的组织与Kubernetes取得长期的成功。
1.阅读,观看,聆听(并学习)
你在正确的轨道上:你现在已经阅读了Kubernetes。大多数专家建议在认真做好之前做一些功课。 Beda指出:“有很多很好的教程和讲座。
Retriever Communications首席技术官Nic Grange推荐Google开发者倡导者Kelsey Hightower提供的任何材料,首先是一个免费的Udacity课程Hightower和一个同事创建的可扩展微服务与Kubernetes。
Hightower也是两位作者的合着者,还有Beda和Kubernetes的创作者Brendan Burns,以及Grange也推荐的Kubernetes:Up and Running。
Haff和Henry的书为Kubernetes背后的原因提供了很好的背景知识,为什么编排如此重要,以及软件通向容器和微服务时代的进化道路的伟大入门。还可以查看红帽的Kubernetes指南,包括词汇表以及Kubernetes如何融入企业IT架构。
2.遵循理解概念的计划
一旦获得了“101”级的理解,就可以深入了解使Kubernetes工作的各种概念。正如Beda在上面所说的那样,他们和你以前的习惯是完全不同的。事实上,Beda建议在开始使用Kubernetes之前,先用容器自己开始学习过程。
Beda说:“以简单,永恒的方式简单打包应用程序,是学习应用程序首先部署的方式,以及如何监控,升级和增长应用程序的一大步。
然后,专门讨论Kubernetes的概念。只是不要试图一次处理所有事情。
Pepperdata高级架构师Kimoon Kim表示:“Kubernetes有许多不同的结构,新用户很容易迷路。 “从Kubernetes Pod的开始,然后和Kubernetes集群一起玩。 (稍后会详细介绍)稍后学习其他结构也是可以的。“
CYBRIC首席技术官兼联合创始人迈克·凯尔(Mike Kail)表示,这有助于制定一个计划或框架,一旦你把豆荚作为第一个概念来处理。他说:“我发现,开始使用像Kubernetes这样的新兴技术的最好方法是勾勒框架,然后以合乎逻辑的方式走过去,而不是试图从流水中喝酒。 Kail将其分解为:Kubernetes构建块(如Pod),服务(如ClusterIP),网络,卷管理以及服务发现/负载平衡。
3.Kubernetes测试
Kail说:“一旦你对这些核心概念有了很好的理解,那么从一个简单的应用程序部署开始,你就可以了解集群的行为和挑战。
你可以使用托管的云服务,或者在本地使用Kubernetes:Grange建议开源项目Minikube,它使你能够在笔记本电脑的虚拟机上运行单节点集群。
格兰奇补充说,让Kubernetes自己启动和运行是一些用户和团队最具挑战性的部分。 Grange指出,通过像Minikube这样的工具,你可以暂时跳过这一步,首先学习如何使用托管的Kubernetes实例部署和管理应用程序,然后返回并学习如何构建和管理自己的集群。
Netsil产品副总裁Arvind Soni认为这是正确的顺序:从学习如何管理自己的集群开始可能是不必要的痛苦。 Soni说:“你将会陷入建设和运营Kubernetes集群的挑战,而不是专注于学习可以从中获得的最终价值。
Beda说:“开始时不要担心管理集群,做任何简单的事情。
4.从非关键工作负载开始
一个成功的学习策略几乎总是涉及到一些反复试验:在生产环境中,没有一个老师像一个错误。通过预测那些早期的失误,你可以限制它们对低级应用程序的影响。随着你从“测试和学习”模式发展到“管理生产中的容器”模式,这一点尤为重要。当你考虑编排平台(如OpenShift)以可扩展的方式管理容器时,这也可能是重点。
“一旦你对这些概念和命令感到满意,你应该开始计划你将如何使用(Kubernetes)非关键的工作负载,”Grange建议。这通常是最好的开始,因为在部署更重要的工作负载时,它可以让你学习,犯错误,并且更自信。“
5.从概念转向更深入的学习