Files
CategoryResourceRepost/极客时间专栏/geek/左耳听风/程序员练级攻略/85 | 程序员练级攻略:容器化和自动化运维.md
louzefeng bf99793fd0 del
2024-07-09 18:38:56 +00:00

15 KiB
Raw Blame History

这篇文章我们来重点学习 Docker 和 Kubernetes它们已经是分布式架构和自动化运维的必备工具了。对于这两个东西你千万不要害怕因为技术方面都不算复杂只是它们的玩法和传统运维不一样所以你不用担心只要你花上一点时间一定可以学好的。

Docker

  • 你可以先看一下Docker的官方介绍 [Docker Overview](https://docs.docker.com/engine/docker-overview/) 。
  • 然后再去一个Web在线的Playground上体验一下 [Katacoda Docker Playground](https://www.katacoda.com/courses/docker/playground) 或者是 [Play With Docker](https://training.play-with-docker.com/) 。
  • 接下来,跟着 [Learn Docker](https://github.com/dwyl/learn-docker) 这个文档中的教程自己安装一个Docker的环境实操一把。
  • 然后跟着 [Docker Curriculum](https://docker-curriculum.com/) 这个超详细的教程玩一下Docker。
  • 有了上述的一些感性体会之后你就可以阅读Docker官方文档 Docker Documentation这是学习Docker最好的方式。

    如果你想了解一下Docker的底层技术细节你可以参看我的文章。

    还有一些不错的与Docker网络有关的文章你需要阅读及实践一下。

    Docker有下面几种网络解决方案CalicoFlannelWeave ,你需要学习一下。另外,还需要学习一下 netshoot 这是一个很不错的用来诊断Docker网络问题的工具集。

    关于这几个容器网络解决方案的性能对比,你可以看一下下面这几篇文章或报告。

  • [Battlefield: Calico, Flannel, Weave and Docker Overlay Network](http://chunqi.li/2015/11/15/Battlefield-Calico-Flannel-Weave-and-Docker-Overlay-Network/)
  • [Comparison of Networking Solutions for Kubernetes](http://machinezone.github.io/research/networking-solutions-for-kubernetes/)
  • [Docker Overlay Networks: Performance analysis in high-latency enviroments](http://www.delaat.net/rp/2015-2016/p50/report.pdf)
  • 如果你对Docker的性能有什么问题的话你可以看一下下面这些文章。

  • [IBM Research Report: An Updated Performance Comparison of Virtual Machines and Linux Containers](https://domino.research.ibm.com/library/cyberdig.nsf/papers/0929052195DD819C85257D2300681E7B/$File/rc25482.pdf)
  • [An Introduction to Docker and Analysis of its Performance](http://paper.ijcsns.org/07_book/201703/20170327.pdf)
  • 下面是一些和存储相关的文章。

  • [Storage Concepts in Docker: Network and Cloud Storage](http://cloud-mechanic.blogspot.de/2014/10/storage-concepts-in-docker-network-and.html)
  • [Storage Concepts in Docker: Persistent Storage](http://cloud-mechanic.blogspot.de/2014/10/storage-concepts-in-docker-persistent.html)
  • [Storage Concepts in Docker: Shared Storage and the VOLUME directive](http://cloud-mechanic.blogspot.de/2014/10/storage-concepts-in-docker.html)
  • 然后是跟运维相关的文章。

    最后,推荐看看 Valuable Docker Links ,其中收集并罗列了一系列非常不错的 Docker 文章。

    最佳实践

    下面分享一些与Docker相关的最佳实践。

  • [Best Practices for Dockerfile](https://docs.docker.com/develop/develop-images/dockerfile_best-practices/) Docker官方文档里的Dockerfile的最佳实践。
  • [Docker Best Practices](https://github.com/FuriKuri/docker-best-practices) 这里收集汇总了存在于各个地方的使用Docker的建议和实践。
  • [Container Best Practices](http://docs.projectatomic.io/container-best-practices/) 来自Atomic项目是一个介绍容器化应用程序的架构、创建和管理的协作型文档项目。
  • [Eight Docker Development Patterns](http://hokstad.com/docker/patterns) 八个Docker的开发模式共享基础容器、共享同一个卷的多个开发容器、开发工具专用容器、测试环境容器、编译构建容器、防手误的安装容器、默认服务容器、胶黏容器如英文链接不能访问可阅读[中文版本](https://www.infoq.cn/article/2014/10/seven-docker-develop-pattern))。
  • Kubernetes

    Kubernetes 是Google开源的容器集群管理系统是Google多年大规模容器管理技术Borg的开源版本也是CNCF最重要的项目之一主要功能包括

    • 基于容器的应用部署、维护和滚动升级;
    • 负载均衡和服务发现;
    • 跨机器和跨地区的集群调度;
    • 自动伸缩;
    • 无状态服务和有状态服务;
    • 广泛的Volume支持
    • 插件机制保证扩展性。

    Kubernetes发展非常迅速已经成为容器编排领域的领导者。

    首先我推荐你阅读Kubernetes前世今生的一篇论文。

    学习Kubernetes有两个免费的开源电子书。

  • 《[Kubernetes Handbook](https://jimmysong.io/kubernetes-handbook/)》这本书记录了作者从零开始学习和使用Kubernetes的心路历程着重于经验分享和总结同时也会有相关的概念解析。希望能够帮助你少踩坑少走弯路还会指引你关注kubernetes生态周边如微服务构建、DevOps、大数据应用、Service Mesh、Cloud Native等领域。
  • 《[Kubernetes指南](https://kubernetes.feisky.xyz/zh/)》这本书旨在整理平时在开发和使用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](http://thenewstack.io/ebookseries/) ,非常完整和详实的 Docker 和 Kubernetes 生态圈的所有东西。