簡體   English   中英

如何將 docker swarm worker 連接到 swarm manager - AWS EC2

[英]how to connect docker swarm worker to swarm manager - AWS EC2

我無法將我的 docker worker 連接到 docker swam manager。

我創建了多個 aws EC2 實例,並將其中一個作為管理員docker swarm init --listen-addr 0.0.0.0:2377並嘗試通過其他 EC2 實例docker swarm join 0.0.0.0:2377作為工作人員連接它,但它給了我一個錯誤。

 "Error response from daemon: Timeout was reached before node joined`. 
The attempt to join the swarm will continue in the background".

我需要我的 docker swarm 管理器來列出docker node ls所有節點,包括管理器和工作器。

為了解決這個問題,我需要從 Docker Worker 和 Docker Manager 實例公開各自的端口。

我在解決這個問題時發現了一些信息,

TCP 端口 2377是用於通信的默認端口,因此在 aws EC2 的安全組中為端口 2377 添加自定義 tcp 規則。

用於安全 Docker 客戶端通信的TCP 端口 2376 Docker Machine 需要此端口才能工作。 Docker Machine 用於編排 Docker 主機。

TCP 端口 2377此端口用於 Docker Swarm 或集群的節點之間的通信。 它只需要在管理器節點上打開。

TCP 和 UDP 端口 7946用於節點之間的通信(容器網絡發現)。

UDP 端口 4789用於覆蓋網絡流量(容器入口網絡)。

請注意:除了這些端口外,端口 22(用於 SSH 流量)和特定服務在集群上運行所需的任何其他端口都必須打開。

您需要在docker swarm join命令中使用真實的 ip 地址。

“0.0.0.0”不是真正的IP地址,它是“所有(本地)IP地址”的別名,它不是你可以連接的東西。

1.在master節點運行命令:docker swarm join-token worker

2.然后運行從上述步驟獲得的命令

例子:

root@ubuntu:~# docker swarm join-token worker 要將一個worker 添加到這個swarm,運行以下命令:

docker swarm join --token SWMTKN-1-0akniaryx9xg8mmb08rbd42kwntigfkyk33vt7ac0wrehn58mk-5voo7jfl3kl40yl4cmvf16lgt 10.0.10.4:2377

root@ubuntu:~#

在工作節點上運行:docker swarm join --token SWMTKN-1-0akniaryx9xg8mmb08rbd42kwntigfkyk33vt7ac0wrehn58mk-5voo7jfl3kl40yl4cmvf16lgt 10.0.10.4:2377

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM