failover swarm 容錯移轉

來源:互聯網
上載者:User

標籤:create   現在   映射   功能   drive   balance   指定   外部網路   stat   

#容錯移轉 Failover

#當其中一個節點關閉宕機時,其節點中的service會轉移到另一個節點上。
Swarm會檢測到node1發生故障並把此故障節點的狀態標記為Down; docker node ls 可查看 node1的STATUS 為Down
同時 Swarm會把node1上的service調度到其它有資源的節點上來運行;docker service ps web_server 可查看其過程和狀態

#訪問server

#便於分析,重新部署一個
docker service create --name=htdocs_nginx --replicas=3 nginx
docker service ps htdocs_nginx 可查看副本數
--replicas可直接指定副本數 ,不需要再用docker scale命令

#現在我們要訪問server
在以上操作中,我們每個節點都有運行service, node1、node2、node3 容器裡是監聽80連接埠的,但我們並沒有映射連接埠到Host,所以要進行以下操作

#進入容器查看:
docker exec 容器ID /bin/sh 也可使用 /bin/bash
容器IP 為172.12.0.5, 實際上串連的是Docker的bridge網路
crul 172.12.0.5 可以訪問
但是這是在容器內部,需要實現在外部也可訪問,也就時暴露80連接埠

#外部存取
docker service update --publish-add 80:80 htdocs_nginx
這樣就映射連接埠了,外部也可訪問。
當然建立service時也可直接指定
docker service create --name htdocs_nginx --replicas=3 --publish-add 80:80 nginx


#routing mesh
我們訪問每個節點的80連接埠都可以返回結果; swarm 內部的 load balancer 會將請求轉寄給 web_server 其中的一個副本。這就是 routing mesh 的作用。

註:當我們使用 --publish-add 80:80 時 swarm會重新設定副本,容器內的網路就會發生改變
器的網路與 --publish-add 之前已經大不一樣了,現在有兩塊網卡,每塊網卡串連不同的 Docker 網路。
實際上:

eth0 串連的是一個 overlay 類型的網路,名字為 ingress,其作用是讓運行在不同主機上的容器可以相互連信。

eth1 串連的是一個 bridge 類型的網路,名字為 docker_gwbridge,其作用是讓容器能夠訪問到外網。

ingress 網路是 swarm 建立時 Docker 為自動我們建立的,swarm 中的每個 node 都能使用 ingress。
通過 overlay 網路,主機與容器、容器與容器之間可以相互訪問;同時,routing mesh 將外部請求路由到不同主機的容器,
從而實現了外部網路對 service 的訪問。

#service與service通訊 內部的
為了不暴露連接埠 增加安全性 ,我們可以用一下方法:
服務發現:
如果不 publish,那麼 swarm 就要提供一種機制,能夠:
讓 service 通過簡單的方法訪問到其他 service。
當 service 副本的 IP 發生變化時,不會影響訪問該 service 的其他 service。
當 service 的副本數發生變化時,不會影響訪問該 service 的其他 service。
這其實就是服務發現(service discovery)。Docker Swarm 原生就提供了這項功能,通過服務發現,
service 的使用者不需要知道 service 運行在哪裡,IP 是多少,有多少個副本,就能與 service 通訊。

#建立overlay網路
docker network create --driver overlay app_net
docker network ls

#部署
docker service create --name my_web --replicas=5 --network app_net nginx
docker service create --name database --network app_net mysql

docker service ps database 查看容器 然後進入容器
docke exec 容器ID /bin/sh ping my_web 發現可通
同時ping所得到的my_webIP是VIP 虛擬IP ,swarm 會將對 VIP 的訪問負載平衡到每一個副本。

 

failover swarm 容錯移轉

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.