介绍
2006 年,几位 Google 工程师开始研究名为 Cgroups(控制组)的 Linux 内核功能,以限制和隔离硬件资源的使用(例如,RAM、CPU、磁盘 I/O、网络等)。 最终,该功能在 2008 年与 Linux 主线内核合并,为我们今天使用的所有容器化技术铺平了道路,如 Docker、Cloudfoundry、LXC 等。
自 2013 年以来,容器化的概念已成为各个领域的重要趋势,例如网络托管和软件开发。 它既是传统技术的替代品,也是虚拟化技术的伴侣。 由于硬件级虚拟化必须运行整个客户操作系统,因此它可能会占用大量资源。 或者,容器本质上共享主机的内核,这意味着硬件资源不会被定向到运行各种独立的操作系统任务。 但总的来说,容器可以实现更快、更安全的应用程序部署。
在今天的文章中,我们将介绍用于管理您的容器软件的前五种免费容器化工具,按每个用户数量的顺序列出 堆栈共享.
Kubernetes
Kubernetes 是迄今为止最常用的容器化工具。 它是一个开源容器编排软件,用于管理各种容器化应用程序。 谷歌最初开发了 Kubernetes,但将其捐赠给 Cloud Native Computing Foundation(Google 和 Linux Foundation 之间的合作,专注于推进容器技术)在其最初发布后不久。
容器化越来越受欢迎。 因此,管理大量容器化应用程序更具挑战性。 Kubernetes 使我们能够有效地管理和扩展大型集群,并提供诸如负载平衡、应用程序推出和回滚的自动化、存储编排、敏感信息的存储和管理以及自我修复(自我监控)等优势特性。
Kubernetes 集群包含一组运行容器化应用程序的工作节点和一个用于组织和管理集群的控制平面。 每个 Kubernetes 集群都需要至少有一个节点。
我们可以在每个节点上托管 Pod。 Pod 是我们可以在 Kubernetes 中部署和管理的最小计算单元,是我们应用程序的组件。 位于控制平面核心的 API 服务器支持用户、集群上的单元和外部组件之间的通信。
码头工人撰写
码头工人撰写 是一个 Docker 工具,可以配置、管理和运行多容器 Docker 应用程序。 它允许我们创建和启动服务,以及定义和应用存储在 docker-compose.yaml 配置文件中的各种规则。
尽管该工具旨在应用配置文件并避免手动运行各种 shell 脚本,但仍有一些基本步骤:
- 使用 Dockerfile 定义我们应用程序的环境。
- 使用 docker-compose.yaml 配置文件在我们的应用程序中定义服务。
- 使用 docker-compose up 命令一次性启动我们的应用程序和服务。
注意:我们在 docker-compose.yaml 文件中定义的规则替换了常规的 Docker 命令。
Docker Compose 有几个优点,例如通过 YAML 轻松快速地配置、在单个主机上部署、良好的安全性、多功能性。 Docker Compose 用于各种应用程序环境(生产、登台、开发、测试)。
Docker Compose 工具可以在 Windows、MacOS 和 64 位 Linux 操作系统上运行。 所有列出的操作系统都需要 Docker Engine 才能充分利用 Docker Compose 的潜力。 码头引擎 可以安装在本地机器或远程服务器上。
舵
舵 是一个 Kubernetes 包管理器 它将各种应用程序和服务打包、配置和部署到 Kubernetes 集群中。 简单地说,Helm 就是 apt 之于 Ubuntu,yum 之于 CentOS。
Helm 有几个不同的用途,例如创建和共享应用程序(Helm 图表)和管理 Kubernetes 中的发布、创建 Kubernetes 应用程序的构建以及管理 Kubernetes 清单文件。
在 Helm 的核心,我们有前面提到的 Helm 图表。 它们是定义特定 Kubernetes 资源的各种文件的组合,如下所示。 此文件集合位于单个图表的一个目录中。 这些图表用于简单的任务(在 Kubernetes 上安装 WordPress)和复杂的部署(全栈 Web 应用程序)。
testchart/
charts/ - dir containing charts upon which our current chart depends on
crds/ -- dir for custom resource definitions
templates/ -- dir with templates that can generate Kubernetes manifest files
Chart.yaml -- necessary yaml file that contains information about the chart
values.yaml -- yaml file for defining default config values for this chart
LICENSE -- optional file to define a license for the chart
README.md -- optional human readable README file
每个图表都有一个名为 Chart.yaml 的描述符 YAML 文件和一个或多个 Kubernetes 清单文件(模板)。 Chart.yaml 文件可以包含必须定义的各种字段:
- apiVersion:图表 API 版本。
- 名称:图表名称。
- 版本:SemVer2 版本。
有很多 已准备好部署的现有图表 使用各种应用程序,但如果您想创建自己的 Helm Chart,请按照以下命令操作。
helm create testchart
该命令将自动创建一个包含我们定义的文件(如上所列)的 testchart 目录,您可以根据需要通过编辑它们来开始自定义图表。
牧场主
Rancher 是一个开源的云编排和集群管理工具 这可以在生产环境中部署以及运行和管理容器。 它本质上简化了在您选择的云或基础架构平台上操作容器集群。
Rancher 为其用户提供了多种集群部署选择。 用户可以:
- 在裸机服务器上使用 RKE(Rancher Kubernetes Engine)创建 Kubernetes 集群。
- 导入、配置和管理他们预制的 Kubernetes 集群。
- 利用来自其他基础设施提供商的各种云服务,例如 Google Kubernetes Engine (GKE)、Amazon Kubernetes Engine (AKS) 或 Amazon Elastic Kubernetes Service (EKS)。
值得注意的是,Rancher 服务器可以 已安装 在 Kubernetes 集群或单个节点(Docker 容器)上,但节点必须满足某些要求,这些要求因 Rancher 部署的大小和不同的用例场景而异。
Rancher 团队有几个 最佳实践建议 确保良好的稳定性和性能:
- 将 Rancher 安装在没有在 Kubernetes 集群上运行其他进程或服务的单独集群上。
- 备份状态文件。 这对于集群维护和恢复至关重要。
- 通过禁用交换、确保良好的网络连接和调整正确的网络端口来优化 Kubernetes 的节点。
- 将集群中的节点部署在同一数据中心位置,以确保节点和集群整体的高性能。
码头工人群
Docker Swarm 是一种容器编排工具,可以在各种 Docker 应用程序上运行,并使其用户能够在一台或多台主机上创建、部署和管理多个容器(构成 Docker 集群)。 在 Docker 集群中,所有进程都由 swarm manager 控制,而单个节点(Docker 守护进程)使用 Docker API 进行交互。
Docker Swarm 有几个有价值的特性:
- 去中心化访问,使不同的用户和团队能够访问和管理集群。
- 良好的安全水平。
- 负载均衡。
- 多主机网络。 当集群有更新时,地址会分配给网络上的容器。
- 环境回滚。 如果有更新问题,我们可以通过回滚到以前的版本来解决问题。
- 可扩展性。
Docker Swarm 是 Kubernetes 的可比替代品。 在 Kubernetes 使用 Kubelets 的地方,Docker Swarm 在特定节点上使用 Docker 守护进程。 Docker 控制节点创建集群,而 Kubernetes 使用 Kubernetes Engine。 Kubernetes 内置监控和自动伸缩,Docker Swarm 具有自动负载均衡,直接集成的命令行界面,更易于安装和使用,更轻量级。
结论
在今天的文章中,我们查看了最常用的五种容器化工具。 自 2013 年引入容器化概念以来,该技术已大大改进并极大地加快了应用程序环境及其部署的工作流程。
如果您计划构建容器化基础架构,Liquid Web 有许多可用的托管解决方案,包括专用、VPS、私有选项 Cloud和服务器集群。 立即联系我们在 Hosting® 中最有帮助的人,以了解有关设置自定义选项的更多信息!