以etcd为中心的容器编排工具,是一款用于管理docker的开源软件。etcd是一个分布式键值存储服务,可以为容器提供配置和服务的发现,而docker则是一种高效的容器管理工具,用以打包、运输、部署和运行应用程序。由此可见,etcd和docker的结合,使得etcddocker可以更好地管理和监控容器环境,保证容器集群的高可用。
一、ETCDDOCKER的优势
1、可靠性高。etcd是一种分布式键值存储服务,它的每个节点都会进行数据备份,这就能够保证数据在存储过程中不会丢失。而docker则是一种多样化的容器管理工具,使得etcddocker的容器在各种部署环境下都具备该有的可用性。
2、易于管理。etcddocker使用简便,只需通过一些命令即可创建,修改,删除容器实例,并可以进行批量操作。跟踪容器集群中各个容器的状态也很方便,对于进行性能调整,设定容器限制等操作都可以快捷完成。
3、成本低。etcddocker的成本较低,它能够使用现有的硬件资源,节省运维成本。另外,etcddocker能够实现更好的资源分配,保证容器利用率。
二、ETCDDOCKER的主要特点
1、通过etcd实现容器集群的管理。etcd处理容器集群的状态信息,并通过与其他容器管理器通信,实现容器注册和控制。
2、提供简单的API。etcddocker围绕etcd展开,并提供了简单易用的API,方便用户对容器集群进行管理和监测。
3、支持多种配置方式。etcddocker允许用户使用简单的YAML配置文件来描述容器,同时又可以通过API接口进行描述,以便满足用户的更高级需求。
4、提供服务发现。etcddocker可以自动向etcd系统注册,以便实现自动发现和注册服务。
三、ETCDDOCKER的使用流程
1、安装etcd和docker。etcd作为容器配置和发现,docker作为容器的管理工具,两者必须同时安装使用才能发挥最大效用。
yum install etcd yum install docker-1.11.*
2、创建etcd节点。etcd需要形成一个集群,当初始节点启动后,需要接入其他节点,这样就能实现数据的副本性和容器集群的高可用性。
etcd --name node1 --initial-advertise-peer-urls http://172.17.0.3:2380 \ --listen-peer-urls http://172.17.0.3:2380 \ --listen-client-urls http://172.17.0.3:2379,http://127.0.0.1:2379 \ --advertise-client-urls http://172.17.0.3:2379 \ --initial-cluster-token etcd-cluster-1 \ --initial-cluster node1=http://172.17.0.3:2380,node2=http://172.17.0.2:2380,node3=http://172.17.0.4:2380 \ --initial-cluster-state new
3、创建etcddocker。etcddocker需要创建一个YAML文件,以描述容器的规格,以下所述为一个简单的示例。
--- containers: - name: container1 image: ubuntu:16.04 command: "while true; do echo Hello World; sleep 1; done" cpu: "200m" memory: "100m" environment: FOO: bar ports: - "8080:80"
4、启动etcddocker。运行以下命令可以创建一个etcddocker容器,并将其连接到etcd集群。
docker run -d --name myetcd \ -p 2379:2379 \ -p 2380:2380 \ quay.io/coreos/etcd:v3.1.0 \ /usr/local/bin/etcd \ --name etcd0 \ --advertise-client-urls http://127.0.0.1:2379 \ --listen-client-urls http://0.0.0.0:2379 \ --initial-advertise-peer-urls http://127.0.0.1:2380 \ --listen-peer-urls http://0.0.0.0:2380 \ --initial-cluster etcd0=http://127.0.0.1:2380 \ --initial-cluster-token my-etcd-token \ --initial-cluster-state new
5、在etcddocker中创建容器。启动以下命令,就能在etcddocker中创建容器。
docker run -d --name 服务名 \ -e ETCD_ENDPOINT=http://172.17.0.3:2379,\ -e SERVICE_名字=服务名 image_name:tag
四、总结
谈起容器,我们自然就能想到docker,其在近来几年一直是业内领先的容器管理工具。etcddocker作为以etcd为中心的容器编排工具,弥补了docker在多机部署中的短板,使打包应用程序和配置环境更加方便,容器化技术的未来一定会更加精彩。