Container Orchestration: 快速入门

自20世纪70年代以来,容器技术就已经出现,但直到2013年Docker首次亮相后才开始发挥作用。从那时起,容器已经流行起来;它们正在显著地改变DevOps的布局以及我们构建、运输和运行分布式应用程序的方式。那么,docker的增长和容器的使用是同步发展的,这不是巧合。

然而,运行一个容器就像一个单独的乐器,单独演奏它的交响乐乐谱。容器编排允许你,指挥,通过管理和塑造整个合奏的声音来统一管弦乐队。

容器编排工具为跨多个主机协调创建、管理和更新多个容器提供了有用且强大的解决方案。此外,编排允许您在服务和进程任务之间异步共享数据。在生产环境中,可以在多个服务器上运行每个服务的多个实例,以使应用程序具有高度可用性。我们越简化编排,就越能深入应用程序并分解较小的微服务。

这就提出了一个问题,你选择哪种工具来指挥交响乐?

在本文中,我将比较容器编排中的三个主要参与者,以帮助您选择合适的一个。

概要

容器编排严重依赖于您的基础设施,这意味着了解这些解决方案如何与您当前的云提供商/内部部署解决方案集成是很重要的。您愿意购买一个云提供商的整个工具链吗?或者你需要更多样化的东西?

Kubernetes凭借其可配置性、可靠性和庞大的社区,正在成为容器编排领域的当前领导者,超越Docker Swarm。Kubernetes是由Google创建的一个开源项目,它与整个Google云平台协调工作。此外,它在几乎所有基础设施上都运行良好。

Swarm是Docker自己的编排工具,现在已与Docker engine完全集成,并利用标准API和网络。Swarm模式内置于Docker CLI中,无需额外安装,易于获取新的Swarm命令。部署服务可以像使用“docker service create”命令一样简单。docker swarm通过在性能、灵活性和简单性方面取得进步,以获得重新采用,与kubernetes抗争,争取在人气竞赛中领先。

AmazonElasticContainerService(ECS)是Amazon的专有容器调度程序,旨在与其他AWS服务协调工作。这意味着以AWS为中心的解决方案(如监视、负载平衡和存储)可以轻松地集成到您的服务中。如果您正在使用Amazon的替代云提供商,或者您在本地运行您的工作负载,那么ECS可能不适合。

Kubernetes

Kubernetes(缩写为k8s或kube)是Google对容器管理的开源解决方案。它可以在多种生产环境中工作,包括裸机、虚拟机、大多数云提供商,以及三者的组合/混合。

集群包括几个主要组件:

  • pods:在同一节点上一起创建、调度和部署的一个或多个容器组。

  • 标签:分配给标识、服务和复制控制器的键值标签(例如名称)。

  • 服务:服务为一组pods命名,充当负载均衡器,将流量引导到正在运行的容器。

  • 复制控制器:一个框架,负责确保在任何给定时间安排和运行特定数量的POD复制副本。

Kubernetes的安装是这三种安装中最复杂的,但是使用正确的工具,安装过程更简单。为了与现有协调系统或裸机环境的集成,Kubeadm工作得很好。helm是一个流行的工具,可简化安装和管理kubernetes应用程序的安装和管理。Kube的一个主要优点是,您可以对其配置进行最终控制,而更常见的平台有大量文档来支持您的定制设置。除此之外,如果遇到任何问题,Kubernetes还可以利用大量的用户和资源来支持Slack、StackOverflow和Github。

Kubernetes的核心功能是能够做任何你想做的事情,尽管与Docker Swarm相比,部署,管理和实现你想要的东西可能更复杂。

Docker Swarm

Docker Swarm扩展了单主机Docker,允许开发人员快速轻松地部署多个容器和微服务。在这三种工具中,它是最轻量级和最容易转换的工具,因为它已经内置到Docker engine中。

Swarm是一组节点,包括:

  • 管理节点:控制编排、集群管理和任务分配。

  • 工作节点:工作人员的唯一目的是运行由管理节点分配的容器和服务。

  • 服务:服务描述了您希望单个容器如何在您的节点上分布自己。要创建服务,请指定与普通“docker run”中一样的准确信息,以及新参数(即容器副本数量)。

  • 任务:根据Swarm 管理的说法,单个容器将工作放在这些“槽”中。

Swarm非常适合刚开始使用容器或不需要配置每个细节的人。最重要的是,Swarm允许您轻松地将容器缩放到惊人的数量。

Swarm模式安装不需要特别的复杂,因为它已经是Docker engine的一部分。该功能是标准的,从Docker 1.12及更高版本开始。查看Caylent最近在Amazon Web服务上创建高可用性Docker Swarm的博客文章,了解如何轻松设置自己的Swarm。

弹性容器服务(Amazon ECS)

Amazon ECS是AWS自己的容器管理服务,它是一个于Docker兼容的服务,允许您在EC2实例上运行容器化应用程序,是Kube和Swarm的替代方案。

虽然Docker以其简单性赢得了所有人的青睐,但AmazonECS是一个相对复杂的工具,因为您必须学习一个全新的平台。ECS内的组件包括:

  • ECS集群:运行任务的ec2实例组。

  • 任务定义:JSON格式的文本文件,其中包含与“docker run”命令基本相同的信息。此外,还包括在一台主机上运行哪些容器的详细信息。

  • 服务:在集群中运行和维护指定数量的任务定义实例的工具。

  • 服务调度器:持续监视正在运行的任务,并确保正确的数字已启动。此外,如果任务失败,该功能会重新安排任务。

  • 容器代理:此功能允许您将集群实例连接到容器。

AmazonECS为那些寻求容器和其他AWS服务之间集成的用户提供了最大的价值。它是一个完全管理的服务,提供高可用性、可扩展性和安全性。除此之外,您的AWS支持计划还将其作为标准包括在内。

另外,如果您已经在AWS上,则不需要安装任何额外的软件来操作集群。

概述

最终,选择正确的容器编排工具取决于您的优先级。考虑到您需要什么技术来与之协同工作。

你和AWS有联系吗?如果Google Cloud是您的提供商,那么将ECS用于Kubernetes可能是有意义的,反之亦然。Kubernetes应该是你的首选。(特别是考虑到最近发布的重大公告:2017年发明。EKS是AWS新推出的托管Kubernetes服务,与ECS完全兼容。EKS不仅仅是Kubernetes, 因此应该可以使用现有的工具和应用程序,这为将来在AWS上实现完全托管的解决方案铺平了道路。)

不过,如果你喜欢Docker CLI,并不想用新工具,那就坚持Docker Swarm的简单性。不过,请记住,在2017年,Docker还宣布了即将对Kubernetes的支持。

小声讨论...

k8s,docker swam,amazon ecs,你会选择哪一个?

长按二维码 ▲

订阅「架构师小秘圈」公众号

如有启发,帮我点个在看,谢谢↓

容器管理大战:Kubernetes vs.Docker Swarm与Amazon ECS相关推荐

  1. Docker,Docker-Compose,Docker Swarm,Kubernetes之间的区别

    来源:https://blog.csdn.net/notsaltedfish/article/details/80959913 Docker Docker 这个东西所扮演的角色,容易理解,它是一个容器 ...

  2. 如何使用Docker Swarm管理更多容器

    by nolan grace 通过诺兰·格雷斯 如何使用Docker Swarm管理更多容器 (How to manage more containers with Docker Swarm) Sca ...

  3. 在 Docker 中运行 MySQL:多主机网络下 Docker Swarm 模式的容器管理

    本文将以多主机网络环境为基础,探讨如何利用内置编排工具 Docker Swarm 模式对各主机上的容器加以管理. Docker Engine – Swarm 模式 在多台主机之上运行 MySQL 容器 ...

  4. docker swarm MySQL_容器与云|在 Docker 中运行 MySQL:多主机网络下 Docker Swarm 模式的容器管理...

    本文将以多主机网络环境为基础,探讨如何利用内置编排工具 Docker Swarm 模式对各主机上的容器加以管理. Docker Engine – Swarm 模式 在多台主机之上运行 MySQL 容器 ...

  5. 多主机网络下 Docker Swarm 模式的容器管理

    导读 本文将以多主机网络环境为基础,探讨如何利用内置编排工具 Docker Swarm 模式对各主机上的容器加以管理. Docker Engine – Swarm 模式 在多台主机之上运行 MySQL ...

  6. 论Docker swarm与Kubernetes孰强孰弱

    前言 有无数的辩论和讨论谈论Kubernetes和Docker.如果你没有深入研究,你会认为这两种开源技术都在争夺集装箱至上.让我们明确指出,Kubernetes和Docker Swarm不是竞争对手 ...

  7. Kubernetes与docker集群管理常见问题解析

    很荣幸受邀参加开源中国社区的高手问答,我是时速云团队的后端工程师,负责主机管理功能开发.在互动过程中,发现大家在使用/调研kubernetes(简称k8s)过程中遇到了很多问题,这里我总结为几点: l ...

  8. 美团点评Docker容器管理平台

    本文是郑坤根据第14期美团点评技术沙龙"你不知道的美团云"演讲内容整理而成,已发表在<程序员>杂志2017年1月刊. 美团点评容器平台简介 本文介绍美团点评的Docke ...

  9. docker swarm k8s比较_Docker 图形化管理又有更新了

    1. 前言 您是否还在命令行窗口中来监视 Docker 容器?乐此不彼地敲着 Docker 相关的命令,虽然这些命令并不是很复杂.今天介绍几款 Docker 的 GUI 监视工具来解放你的双手,把它们 ...

最新文章

  1. sybase 数据导入mysql_Windows环境下Sybase12.5 数据库创建与导入数据库.docx
  2. JavaScript学习知识点归纳
  3. 剖析Elasticsearch集群系列第二篇 分布式的三个C、translog和Lucene段
  4. ITK:计算PCA形状模型
  5. Python中使用xpath获取Scrtpt里面的内容
  6. Android实现传感器应用及位置服务
  7. python中raise stoplteration_Python 中的异常处理
  8. Axure软件的简单使用
  9. 微星网卡linux驱动,微星b360系列win10无法安装网卡驱动解决方法_武汉久龙电脑维修中心...
  10. css如何使文字抖动,CSS美化:实现抖音彩色文字抖动效果
  11. 测试智商的软件或网址,iq测试(sds在线测试)
  12. #Ubuntu# #机械键盘# 功能键/多媒体键切换无效
  13. 6月24日BEA成都User Group活动PPT下载
  14. ip地址位置提供商查询 cip.cc/ip
  15. 优思学院:通俗地谈谈FMEA
  16. 煮饭的机器人作文_做饭机器人作文
  17. cdma特有效应_CDMA技术基础知识
  18. 注册表去除桌面快捷方式小箭头引起此电脑右键管理无法使用
  19. 轧钢测径仪检测高线质量
  20. 麒麟950,麒麟960,麒麟970芯片处理器参数比较分析

热门文章

  1. [国家集训队]数颜色 / 维护队列 (带修莫队模板题)
  2. 2019 ICPC EC Finals C. Heretical … Möbius(中国剩余定理,序列检验)
  3. Codeforces Round #699 (Div. 2) E.Sorting Books(贪心+DP / 线段树)超高质量题解,看不懂来打我 ~
  4. 【图论专题】单源最短路的综合应用
  5. sqoop mysql parquet_sqoop一些语法的使用
  6. python——元素列表基础
  7. CentOS 7 yum安装Zabbix
  8. 构建高可用服务器之二 Keepalive参数详解
  9. 作业调度框架 Quartz 学习笔记(三) -- Cron表达式
  10. 利用epoll写一个迷你的网络事件库