V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
caicloud2015
V2EX  ›  Docker

Docker Swarm 新版本发布对 Kubernetes 的意义

  •  
  •   caicloud2015 · 2016-08-03 14:58:04 +08:00 · 2857 次点击
    这是一个创建于 3034 天前的主题,其中的信息可能已经有所发展或是发生改变。

    相比于普通的软件的开发速度,容器编排领域的发展速度相当惊人。基于容器的初创公司呈爆发式增长,这个领域的竞争也愈加激烈。这是一个好的开始,但是技术的选择却成为一个难题。在这样的情况下,我们目前关注了 Docker 和 Swarm 。

    在 Apprenda ,我们的目标就是提交一个有创意的,稳定的,可以在长时间内比较好维护的编排技术。一个健康的社区有三个关键点。在对技术,社区和不同容器编排工具解决方案进行漫长的商业评估之后,我们选择了 Kubernetes 。然而,随着其它容器集群管理选项的增加,要重点了解相比于 Kubernetes 他们分别可以提供什么样的功能进行对比。

    Docker 即将发布 1.12 版本,这次的发布直接跟 Kubernetes 进行竞争。这次的新版本都是在名为 SwarmKit 的编排系统的基础上建立起来的。 Docker Swarm 目前增加了一些有趣的新功能,也属于 Docker 的一部分。比如, Docker CLI 增加了一个将 Swarm 集群实例化的新功能。将 Swarm 实例化其实也就是创建一个 Swarm Manager 和 CA 证书的意思。值得注意的是,这个 CA 证书可以在不需要外部系统的情况下为 Swarm Manager 和所有 Swarm 集群生成证书,同时所有节点之间的交流由 TLS 来保证安全。这也就意味着不会再有不安全的 Swarm 集群了。对于创建和使用 Swarm 的开发者来说,安全已经完全是透明的了。

    CLI 同样也有一些新的命令要把节点添加到已经存在的 Swarm 集群中。要注意的是,节点中有 manager 或者 worker 两者之一,但是 worker 可以被升级到 manager , manager 可以被降级到 worker 。 Swarm managers 使用 RAFT 协议来选举 leader ,并且确定共识,这跟 Kubernetes 运用 etcd 工作的机制有点相似。另一方面, workers 使用 Gossip 协议来交流他们之间各自的状态,这样的话, Docker 用户就不再需要外部实体,也不需要键值存储来跟踪不断变化的集群拓扑。

    同样,逻辑服务的概念对 Docker 来说也是很新的,是一个被 Docker Cloud 启发的概念。这个服务包括了一对多容器实例,而且这个逻辑观点的介绍使得服务管理更加容易。服务可以被创建,更新和扩容,这也就导致了容器的配置,更新和杀死。

    Docker1.12 的一个弱点就是服务发现,在 Kubernetes 中,服务发现还是运行得很顺畅的。更加重要的是,自从项目的开始,“ service ”为容器代理的概念已经存在于 Kubernetes 中。它只是简单地联系你的集群中的 service , Kubernetes 确保你在容器服务之后连接到正确的 pod (一个或者多个容器的组合)。 Kubernetes 也是被设计成模块化,可扩展的,这样的话,它的组件就可以轻松交换,这就使其更加适合你的整体需求。

    从 Docker 发布的这个新版本面临来自 Kubernetes 的竞争, Kubernetes 被设计来帮助更新配置,缩放,操作主机上集群间的容器。鉴于 Kubernetes 超强的社区,已经有很多公司在使用 Kubernetes 了。 Kube (社区是这么叫它的)同样也获得了企业客户的普遍接受,这些客户同样也希望使用新云原生算法来创建容器化应用程序。

    Kubernetes 对自身的定义就是:将容器集群作为单个的系统进行管理,以此来加速开发,简化操作。 Kubernetes 是一个开源平台,但是它同时也是 CNCF ( Cloud Native Computing Foundation )开发和管理的社区。它从根本上就跟由初创公司控制,不属于开源社区的 Docker / Swarm 不一样。 Kubernetes 很厉害,因为它带来的是谷歌十多年大规模运行容器的经验, Red Hat 在企业多年部署和管理开源平台的经验, CoreOS 灵活开发的经验,以及来自很多其他组织和社区成员的优点。

    鉴于强大的多元化社区, Kuberentes 是一个跟 Swiss Army Chainsaw 一样灵活有弹性的平台。你可以在裸机上运行 Kubernetes ,或者在你能想到的任意云提供商上运行。 Kubernetes 另一个很棒的功能就是它同时支持多种类型的容器,比如 Docker 和 RKT 容器,以及多种容器的集群。

    最后, Apprenda 已经被提交到 Kubernetes 。这是我们所尝试过最强壮的解决方法,同时我们相信它在我们壮大的时候也还是会支持我们。 Apprenda 和 Red Hat 也期望 Kubernetes 能够支持 Windows ,并且能够运行 windows 容器。要记住的是,其它集群编排服务也不差,但是,就像我开篇提到的——这个领域发展得很快,我们要确保我们处理的是最主动,最稳定和最成熟的项目。我们对 Kubernetes 十分满意,而且自从 1.0 版本发布以来,就一直在生产过程中使用它了。

    对于 Kubernetes1.3 版本的发布,我们满怀期待,同时新功能 PetSet (也就是之前的 nominal services )提供新的有状态的基本单元来运行你的 pods ,这就需要强大的辨识和存储功能。我们对 Kubernetes1.3 中的“集群联盟”附加的功能也满怀期待!

    我很感激整个 Kubernetes 社区为这个项目已经做的和继续做的努力!这真是一个很棒的技术,也是 Apprenda 所需的重要基石。

    原文链接: https://apprenda.com/blog/docker-swarm-kubernetes/#rd?sukey=3997c0719f151520686cd977fdb4b7a67ceaf1c8ff9d9c095f0bff7a2dc64b2204d2a77024513815816d04e3b5809ebd

    尊重知识产权,人人有责,小伙伴们转载请与我们联系:)

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2689 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 03:13 · PVG 11:13 · LAX 19:13 · JFK 22:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.