我们的 Docker 和库本内斯旅程结束了。看完这本书,你应该已经知道 Kubernetes 是如何赞美 Docker 的了。你可以把它们看作软件栈的不同层;Docker 坐在下面,为单个容器提供服务,而 Kubernetes 在集群中编排和管理它们。Docker 变得越来越流行,许多人在开发或生产部署过程中使用它。仅举几个大的例子,它被贝宝、通用电气、Groupon、Spotify 和优步使用。它已经足够成熟,可以在生产环境中运行,我希望您也将使用它来成功部署和运行您的 Java 应用。
为了进一步扩展你对 Docker 和 Kubernetes 的了解,这里有大量的信息。诀窍是找到有价值的信息。在本章中,如果您想进一步扩展您的 Docker 和 Kubernetes 知识,我将介绍最有用的。
我们名单上的第一个将是令人敬畏的 Docker 名单。
令人敬畏的 Docker 可在 http://veggiemonk.github.io/awesome-docker/的 GitHub 上获得。作者经常更新列表,因此您可以在本地克隆 Git 存储库,并定期更新以查看新内容。Awesome Docker 包含诸如 Docker 简介、工具(以及开发人员工具、测试或实用程序等组)等部分。视频部分在学习 Docker 时特别有用,你可以在这里找到教程和培训。除了这个列表,很难找到更多有用的东西。
我建议继续学习 Docker 的第一个博客将是阿伦·古普塔的博客,可在 http://blog.arungupta.me 查阅。Arun 于 2014 年 7 月首次开始写关于 Docker 的博客,是 Couchbase 的开发人员宣传副总裁,Java 冠军,JUG 领导者,Docker 队长。他在博客上写了很多东西;您可以使用链接:http://blog.arungupta.me/tag/docker/使用#docker
标签过滤仅与 Docker 相关的内容。
你会在这里发现很多有用的东西,与 Java 开发和 Docker 相关。他还创作了一个伟大的 Docker 教程,可在 GitHub 上获得:https://github.com/arun-gupta/docker-tutorial。
接下来是官方 Docker 博客,可在https://blog.docker.com获得。你不会找到很多关于如何使用 Docker 的教程,但会有关于新版本及其功能的公告、更高级的 Docker 使用技巧以及 Docker 事件等社区新闻。
红帽开发者计划,在容器类别下,在https://developers.redhat.com/blog/category/containers/提供,也包含了很多关于 Docker 和容器技术的有用文章。
网上有很多 Docker 教程,但我发现其中一个特别有趣。这是卡塔科达的交互式 Docker 学习课程,可在https://www.katacoda.com/courses/docker获得。您将在这里找到 Docker 的完整功能集,从部署单个容器开始,经过添加标签、检查容器和优化映像构建等主题。它是互动的;你只需要一个现代化的浏览器,甚至不需要在本地机器上安装 Docker。学习起来非常完整和有趣。另一个是http://training.play-with-docker.com。它有三个部分:初级,包括运行单个容器等基础知识;中级,例如包括网络;高级,包括 Docker 安全性。有些课程任务是交互式的,你可以直接在浏览器中执行。
KubernetesKubernetesKubernetesKubernetesKubernetesKubernetesKubernetesKubernetesKubernetesKubernetes
当 Docker 开始越来越受欢迎时,对容器管理平台的需求开始受到关注。因此,更多关于 Kubernetes 的资源开始出现在互联网上。
与 Docker 类似,GitHubhttps://github.com/ramitsurana/awesome-kubernetes提供的令人敬畏的 Kubernetes 列表包含许多关于 Kubernetes 的有用资源。你会在这里发现很多;从介绍 Kubernetes 开始,通过有用的工具和开发人员平台的列表,一直到企业 Kubernetes 产品。甚至还有一个如何使用树莓 Pi 设备安装 Kubernetes 集群的教程链接!
官方的 Kubernetes 网站包含很多有趣的教程,从基础开始,浏览整个 Kubernetes 特性列表。教程列表可在https://kubernetes.io/docs/tutorials/获得。如果您还没有遵循我们的 Minikube 安装指南,我强烈建议您这样做,使用 Kubernetes 官方 Bootcamp,这是一个基于网络的交互式教程,其目标是使用 Minikube 部署本地开发 Kubernetes 集群。它可以在https://kubernetes . io/docs/教程/kubernetes-basic/cluster-interactive/上找到。
官方的 Kubernetes 博客可以在http://blog.kubernetes.io/找到。您将在这里找到关于新版本的公告、有用的技术文章和有趣的案例研究。
红帽企业 Linux 博客也包含了很多关于 Kubernetes 的有趣文章。它们用 Kubernetes 标签标记,因此您可以使用链接http://rhelblog.redhat.com/tag/kubernetes/轻松过滤掉它们。
如您所知,Kubernetes 支持扩展。有一个很好的资源跟踪一些 Kubernetes,可在https://github.com/coreos/awesome-kubernetes-extensions获得。例如,如果您需要将一些证书管理器集成到您的体系结构中,您可能会在那里找到合适的扩展。
除了有用的文章和教程,还有一些有用的工具或平台让使用 Kubernetes 变得更加有趣。现在让我们简单介绍一下。
牧场主,可在http://rancher.com获得,是一个值得在我们的书中单列一节的平台。这是一款开源软件,可以在任何基础设施上轻松部署和管理生产中的 Docker 容器和 Kubernetes。您可以使用最完整的容器管理平台,在任何基础架构上轻松部署和运行生产容器。
Kubernetes Helm(位于https://github.com/kubernetes/helm的 GitHub 上提供)引入了图表的概念,图表是预先配置的 Kubernetes 资源包,是 Kubernetes 精心策划的应用定义。Helm 是管理图表的工具;它简化了 Kubernetes 应用的安装和管理。可以把它想象成 Kubernetes 的apt/yum/homebrew
包管理器。您可以使用它来查找和使用打包为 Kubernetes 图表的流行软件,将您自己的应用共享为 Kubernetes 图表,并创建您的 Kubernetes 应用的可复制版本。当然,在 GitHub 上有一个单独的图表库:https://github.com/kubernetes/charts。目前,图表二进制存储库可在谷歌云上的https://console . Cloud . Google . com/storage/browser/kubernetes-charts/获得,其中包含许多有用的预打包工具,如 Ghost ( node.js
博客平台)、Jenkins、Joomla、MongoDb、MySQL、Redis、《我的世界》等。
kompose(https://github.com/kubernetes/kompose)是一个帮助将撰写配置文件移动到 Kubernetes 的工具。Kompose 是一个用于定义和运行多容器 Docker 应用的工具。如果您是一个 Kompose 用户,您可以使用它将 Docker Compose 文件转换为 Kubernetes 对象,从而将多容器配置直接移动到 Kubernetes 设置中。请注意,Docker Compose 格式到 Kubernetes 资源清单的转换可能并不精确,但是当第一次在 Kubernetes 上部署应用时,它有很大的帮助。
在 GitHubhttps://github.com/LeastAuthority/kubetop上再次可用的 Kubetop 与 Kubernetes 集群的top
命令相同。它非常有用;它列出了集群中所有正在运行的节点、节点上的所有单元以及这些单元中的所有容器。该工具为您提供关于每个节点的 CPU 和内存利用率的信息,类似于 Unix/Linux top
命令。如果您需要快速了解集群中消耗资源最多的是什么,快速命令行工具是一个非常方便的选择。
在 https://github.com/box/kube-applier`kube-applier`的 GitHub 上提供,可为您的 Kubernetes 集群实现自动化部署和声明式配置。它作为 Kubernetes 服务运行,获取一组托管在 Git 存储库中的声明性配置文件,并将它们应用于 Kubernetes 集群。
kube-applier
在集群中作为 Pod 运行,并持续监视 Git 存储库,以确保集群对象与存储库中相关联的spec
文件(JSON 或 YAML)是最新的。该工具还包含一个状态页面,并提供用于监控的指标。我发现它在日常开发中非常有用,在日常开发中,您的部署、服务或 pod 定义经常变化。
正如你所看到的,网络上有很多对 Docker 和 Kubernetes 有用的资源。读完这本书,你可能会想跳过大部分开头,直接进入更高级的主题。所有这些资源最好的一点是它们是免费的,所以基本上没有什么能阻止你探索托管容器的奇妙世界。尝试并学习,如果时机成熟,继续使用 Docker 和 Kubernetes 在您自己的基础架构或云上部署您的生产就绪型 Java 软件。看到您的 Java 应用如何自我扩展并成为防故障的,这将是令人惊讶的。Docker 和 Kubernetes 启用了它,现在您已经有了使用它的知识。Docker 和 Kubernetes 一起从根本上改变了技术领域的面貌,我希望它也将更好地改变您的开发和发布流程。