Kubernetes是当下最流行的容器编排平台,不管是生产环境的采用率,还是云原生生态都很强大。但Kubernetes并不是企业唯一的选择,还有不少的容器编排工具供企业选择,这些容器编排工具适合不同的基础架构环境。其中不少,已经获得了用户极高的认可和采用,比如OpenShift、AWS EKS、Docker Swarm等等。本文就帮大家梳理一下这些容器编排平台。
Openshift Origin((Origin Community Distribution))是一个开源上游社区项目,用于Openshift容器平台Openshift Online和OpenShift Dedicated。
Nomad组织了任何类型的应用程序(不仅仅是容器)。它为Docker、Windows、Java、VM等提供了一流的支持。
此外,Nomad可使旧版应用程序现代化,而无需重写;可轻松实现多云,与Terraform,Consul和Vault的本机集成。
Docker Swarm由两个主要组件组成,Manager管理器节点将任务分配给集群中的Worker Node。根据Raft一致性算法选举领导者。领导者负责处理所有集群管理和集群的任务编排决策。Worker Node从从管理节点接收任务并执行它们。
Docker Swarm的功能也很强大,它与Docker Engine集成进行集群管理;采用分布式设计;声明式服务模型;也包括如多主机联网、服务发现、负载均衡、滚动更新等功能特征。
Docker Compose用于定义和运行可协同工作的多容器应用程序。Docker Compose描述了相互共享的服务组,这些服务组共享软件依赖关系,并被编排和缩放。
可以使用YAML文件(dockerfile)配置应用程序的服务。然后,使用docker-compose up命令,从配置中创建并启动所有服务。
也可以使用Docker Compose将应用程序代码分解为几个独立运行的服务,这些服务使用内部网络进行通信。它提供了用于管理应用程序整个生命周期的CLI。传统上,Docker Compose一直定位在于开发和测试工作流,但现在更多面向生产环境的功能。
Docker Engine可以是配备有Docker Machine或整个Docker Swarm集群的独立实例。
主要特征有单个主机上的多个隔离环境;创建容器时保留卷数据;仅重新创建已更改的容器;变量和环境之间的合成移动等。
Marathon适用于Apache Mesos,具有协调应用程序和框架的能力。
Marathon的优势主要体现在高可用性,支持有状态应用,用户界面很友好,支持服务发现和负载均衡,健康检查,以及REST API等。
Cloudify可以帮助创建,修复,扩展和拆除容器集群。容器编排是提供可伸缩和高可用性基础设施的关键,容器管理器可以在其上运行。Cloudify提供了跨平台协调异构服务的能力。可以使用CLI和Cloudify管理器部署应用程序。
可以重用Azkfile.js文件来添加新组件或从头创建新组件。它可以被共享,这确保了不同程序员机器中的开发环境之间的完全平衡,并减少了部署期间出现错误的机率。