Docker Swarm集群搭建與管理指南
在現代化的IT架構中,容器化技術是不可避免的發展趨勢。Docker作為其中的領軍企業,其技術也成為了大家廣泛關注的焦點。其中,Docker Swarm作為Docker自帶的編排工具,可以幫助我們輕松的搭建和管理容器集群,本文將詳細介紹Docker Swarm的搭建與管理方法。
環境準備
在開始之前,我們應當準備一臺或多臺Linux機器作為Docker Swarm的節點。我們選擇了三臺虛擬機,分別作為管理節點和兩臺工作節點。
其中,管理節點需要滿足以下要求:
- 安裝最新版Docker引擎
- 開啟防火墻對Swarm端口進行放行
- 確保能夠互相ping通其他節點
工作節點則需要滿足以下要求:
- 安裝最新版Docker引擎
- 確保能夠互相ping通其他節點
創建Swarm
在管理節點上,執行以下命令來初始化Swarm:
$ sudo docker swarm init --advertise-addr
其中,
執行成功后,會輸出類似以下內容的信息:
Swarm initialized: current node (xge27bqh6ttz721pkw2zky1h5) is now a manager.To add a worker to this swarm, run the following command: docker swarm join --token :2377To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
在其中,
加入節點
在工作節點中,使用如下命令加入Swarm:
$ sudo docker swarm join --token :2377
其中,
加入成功后,在管理節點上執行以下命令,查看加入節點的狀態:
$ sudo docker node ls
輸出類似以下內容的信息:
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSIONxge27bqh6ttz721pkw2zky1h5 * manager-1 Ready Active Leader 18.09.0vacf9s9l2gur1g1w7tndmou3u worker-1 Ready Active 18.09.0yfvjuph0g4sw6d92e2p2mdk2f worker-2 Ready Active 18.09.0
在其中,*表示當前我們的管理節點,而worker-1和worker-2則是兩個已經加入到Swarm中的工作節點。
創建服務
我們使用如下命令來在Swarm中創建一個服務:
$ sudo docker service create --name nginx --replicas 3 --publish 80:80 nginx
其中,--name參數指定了服務的名稱,--replicas參數指定了需要創建的實例數量,--publish參數指定了服務對外暴露的端口映射,nginx則為需要部署的鏡像名稱。
執行成功后,在管理節點上使用如下命令查看創建的服務狀態:
$ sudo docker service ls
輸出類似以下內容的信息:
ID NAME MODE REPLICAS IMAGE PORTSqqk1n7sb4toi nginx replicated 3/3 nginx:latest *:80->80/tcp
在其中,我們可以看到當前Swarm中有一個名為nginx的服務,已經成功創建了3個實例。
對服務進行擴展
我們可以使用如下命令來對服務進行擴展:
$ sudo docker service scale nginx=5
其中,nginx=5表示需要將nginx服務的實例數量擴展到5個。
執行成功后,我們可以在管理節點上使用以下命令查看服務的狀態:
$ sudo docker service ps nginx
輸出類似以下內容的信息:
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTSz0jrd6k7j73b nginx.1 nginx:latest worker-2 Running Running 2 minutes ago g4mm9yv7ki10 nginx.2 nginx:latest worker-1 Running Running 2 minutes ago v6uqjvqgpn3g nginx.3 nginx:latest worker-2 Running Running 2 minutes ago 0bi9ttx5f4t9 nginx.4 nginx:latest worker-1 Running Running 2 minutes ago uz8p208bzcsy nginx.5 nginx:latest worker-2 Running Running 2 minutes ago
在其中,我們可以看到nginx服務成功擴展到了5個實例。
對服務進行伸縮
我們可以使用如下命令來對服務進行伸縮:
$ sudo docker service update --replicas 7 nginx
其中,--replicas參數指定需要擴展到的實例數量,nginx則為我們需要伸縮的服務名稱。
執行成功后,我們可以在管理節點上使用以下命令查看服務的狀態:
$ sudo docker service ps nginx
輸出類似以下內容的信息:
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTSz0jrd6k7j73b nginx.1 nginx:latest worker-2 Running Running 2 minutes ago g4mm9yv7ki10 nginx.2 nginx:latest worker-1 Running Running 2 minutes ago v6uqjvqgpn3g nginx.3 nginx:latest worker-2 Running Running 2 minutes ago 0bi9ttx5f4t9 nginx.4 nginx:latest worker-1 Running Running 2 minutes ago uz8p208bzcsy nginx.5 nginx:latest worker-2 Running Running 2 minutes ago t6k07shm8ddn nginx.6 nginx:latest worker-1 Running Running about a minute ago 4nyoq7b67r0c nginx.7 nginx:latest worker-1 Running Running about a minute ago
在其中,我們可以看到nginx服務成功伸縮到了7個實例。
刪除服務
我們可以使用如下命令來刪除服務:
$ sudo docker service rm nginx
其中,nginx為我們希望刪除的服務名稱。
執行成功后,在管理節點上使用如下命令查看服務的狀態:
$ sudo docker service ls
輸出中不再包含nginx服務。
徹底關閉Swarm
我們可以使用如下命令來關閉Swarm:
$ sudo docker swarm leave --force
其中,--force參數表示強制離開Swarm。
執行成功后,我們可以在管理節點上使用如下命令查看節點狀態:
$ sudo docker node ls
輸出中不再包含當前節點。
總結
本文詳細介紹了Docker Swarm的搭建與管理方法,包括了節點加入、服務創建、擴展、伸縮、刪除以及Swarm關閉等基本操作。希望讀者們可以根據本文的指南,成功的搭建和管理自己的Docker Swarm集群。
以上就是IT培訓機構千鋒教育提供的相關內容,如果您有web前端培訓,鴻蒙開發培訓,python培訓,linux培訓,java培訓,UI設計培訓等需求,歡迎隨時聯系千鋒教育。