这篇文章我们来重点学习 Docker 和 Kubernetes,它们已经是分布式架构和自动化运维的必备工具了。对于这两个东西,你千万不要害怕,因为技术方面都不算复杂,只是它们的玩法和传统运维不一样,所以你不用担心,只要你花上一点时间,一定可以学好的。
你可以先看一下Docker的官方介绍 Docker Overview 。
然后再去一个Web在线的Playground上体验一下, Katacoda Docker Playground 或者是 Play With Docker 。
接下来,跟着 Learn Docker 这个文档中的教程自己安装一个Docker的环境,实操一把。
然后跟着 Docker Curriculum 这个超详细的教程玩一下Docker。
有了上述的一些感性体会之后,你就可以阅读Docker官方文档 Docker Documentation 了,这是学习Docker最好的方式。
如果你想了解一下Docker的底层技术细节,你可以参看我的文章。
还有一些不错的与Docker网络有关的文章你需要阅读及实践一下。
Docker有下面几种网络解决方案:Calico 、Flannel 和 Weave ,你需要学习一下。另外,还需要学习一下 netshoot ,这是一个很不错的用来诊断Docker网络问题的工具集。
关于这几个容器网络解决方案的性能对比,你可以看一下下面这几篇文章或报告。
Battlefield: Calico, Flannel, Weave and Docker Overlay Network
Docker Overlay Networks: Performance analysis in high-latency enviroments
如果你对Docker的性能有什么问题的话,你可以看一下下面这些文章。
下面是一些和存储相关的文章。
然后是跟运维相关的文章。
最后,推荐看看 Valuable Docker Links ,其中收集并罗列了一系列非常不错的 Docker 文章。
最佳实践
下面分享一些与Docker相关的最佳实践。
Best Practices for Dockerfile ,Docker官方文档里的Dockerfile的最佳实践。
Docker Best Practices ,这里收集汇总了存在于各个地方的使用Docker的建议和实践。
Container Best Practices ,来自Atomic项目,是一个介绍容器化应用程序的架构、创建和管理的协作型文档项目。
Eight Docker Development Patterns ,八个Docker的开发模式:共享基础容器、共享同一个卷的多个开发容器、开发工具专用容器、测试环境容器、编译构建容器、防手误的安装容器、默认服务容器、胶黏容器(如英文链接不能访问,可阅读中文版本)。
Kubernetes 是Google开源的容器集群管理系统,是Google多年大规模容器管理技术Borg的开源版本,也是CNCF最重要的项目之一,主要功能包括:
Kubernetes发展非常迅速,已经成为容器编排领域的领导者。
首先,我推荐你阅读Kubernetes前世今生的一篇论文。
学习Kubernetes,有两个免费的开源电子书。
《Kubernetes Handbook》,这本书记录了作者从零开始学习和使用Kubernetes的心路历程,着重于经验分享和总结,同时也会有相关的概念解析。希望能够帮助你少踩坑,少走弯路,还会指引你关注kubernetes生态周边,如微服务构建、DevOps、大数据应用、Service Mesh、Cloud Native等领域。
《Kubernetes指南》,这本书旨在整理平时在开发和使用Kubernetes时的参考指南和实践总结,形成一个系统化的参考指南以方便查阅。
这两本电子书都不错,前者更像是一本学习教程,而且面明显广一些,还包括Cloud Natvie、Service Mesh以及微服务相关的东西。而后者聚焦于Kubernetes本身,更像一本参考书。
另外,我这两天也读完了《Kubernetes in Action》一书,感觉写的非常好,一本很完美的教科书,抽丝剥茧,图文并茂。如果你只想读一本有关Kubernetes的书来学习Kubernetes,那么我推荐你就选这本。
但是也别忘了Kubernetes的官方网站:Kubernetes.io,上面不但有全面的文档 ,也包括一个很不错的 官方教程 。
此外,还有一些交互式教程,帮助你理解掌握,以及一些很不错的文章推荐你阅读。
一些交互式教程
一些文章
这里还有一些不错的文档,你应该去读一下。
网络相关的文章
要学习Kubernetes,你只需要读一下,下面这个Kubernetes 101系列的文章。
CI/CD相关的文章
最佳实践
Docker和Kubernetes资源汇总
下面是 GitHub 上和 Docker & Kubernetes相关的Awesome系列。
虽然上面的这些系列非常全的罗列了很多资源,但是我觉得很不系统。对于系统的说明Docker和Kubernetes生态圈,我非常推荐大家看一下 The New Stack 为Kubernetes出的一系列的电子书或报告。
The New Stack eBook Series ,非常完整和详实的 Docker 和 Kubernetes 生态圈的所有东西。
总结一下今天的内容。Docker 和 Kubernetes已经成为分布式架构和自动化运维方面的不可或缺的两大基本构成,是你必需要学习的。虽然它们的玩法跟传统运维不一样,但技术方面并不算复杂,只要你花上一点时间,一定会学好的。
在这篇文章中,我推荐了Docker和Kubernetes基础技术方面的学习资料,并给出了存储、运维、网络、CI/CD等多方面的资料,同时列出了与之相关的最佳实践。相信认真学习和消化这些知识,你一定可以掌握Docker和Kubernetes两大利器。
下篇文章,我们将学习机器学习和人工智能方面的内容。敬请期待。
下面是《程序员练级攻略》系列文章的目录。
评论