以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在多機部署中的短板,使打包應用程序和配置環境更加方便,容器化技術的未來一定會更加精彩。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/150401.html