docker swarm 叢集搭建
準備好多臺已經安裝好docker的機器,沒有安裝好docker的可以參考我的另一篇關於docker安裝文件https://my.oschina.net/qbj/blog/3077245
1. 選擇manager節點,並建立叢集
隨便選擇一臺機器作為manager節點,在機器上執行:
docker swarm init --advertise-addr 當前機器的IP地址
執行完畢之後,出現如下情況代表成功,並複製紅色區域中的命令留有待用:
注:紅色區域中的token是叢集唯一標識,後續的其它節點機器,都需要通過紅色區域中的命令來加入當前叢集。
2. 新增叢集節點
複製上一步驟中的紅色區域中的內容在其它節點機器上執行,執行成功會提示如下資訊:
This node joined a swarm as a worker.
所有節點加入完畢之後,可以在主節點上執行如下命令檢視節點情況:
docker node ls
4. 部署Portainer
Portainer 為你的docker swarm叢集以及docker服務提供了視覺化管理。可以管理docker的堆疊,docker的網路,docker服務,docker映象,docker容器等等,一切靠命令方式執行的都可以去通過Portainer去在介面上去操作管理。
a. 準備docker-stack-manager.yml配置檔案
version: "3.2" services: #docker叢集視覺化工具 portainer: image: portainer/portainer hostname: portainer ports: - "9000:9000" volumes: - "/var/run/docker.sock:/var/run/docker.sock" - "/data/portainer:/data" deploy: replicas: 1 placement: constraints: [node.role == manager] resources: limits: # cpus: '1' memory: 1GB reservations: # cpus: '0.2' memory: 512MB
b. 建立檔案目錄
mkdir -p /data/portainer/
chmod -R 777 /data/portainer/
c. 執行docker-stack-manager.yml檔案
docker stack deploy -c docker-stack-manager.yml manager --resolve-image=never
注意:命令必須在docker-stack-manager.yml同目錄下執行。執行完畢之後,請稍等片刻,安裝需要花費點時間,可以通過在manager上執行以下命令來檢視安裝進度:
docker service ls
d. 訪問介面地址
e. 開始配置賬號密碼
f.配置manager節點主機的資訊
注意: Name -- 隨便寫;Endpoint URL -- manager節點的IP:2375; 埠2375是預設埠。如果新增失敗,可以嘗試如下方法:
執行命令
vim /lib/systemd/system/docker.service
在ExecStart加入:
-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
重啟dokcer
systemctl daemon-reload
systemctl restart docker
5. 在各個節點配置私服映象倉庫
在各個節點上私服映象倉庫地址
vim /etc/docker/daemon.json
如果已存在daemon.json,請在原來的基礎上加即可,如果有多個,以逗號隔開。配置如下:
{
"insecure-registries": ["私服IP地址1:私服埠","私服IP地址2:私服埠"],
"registry-mirrors": ["https://registry.docker-cn.com"]
}
重啟docker服務
systemctl daemon-reload
systemctl restart docker
驗證是否成功:
docker info
出現如下顯示,即表示成功
注意:每個節點都要按照上述步驟去配置
6.完成第5步之後,需要登入到Portainer,配置私服映象倉庫資訊
點選左側選單“registries”,點選”Add registry“,選擇”custom registry“,輸入私服映象倉庫資訊,有多個,就新增多次
到此,docker swarm叢集