[英]How to pass docker swarm manager token to worker nodes in AWS using Terraform
[英]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.