docker swarm 部署服務
-
一部分
docker swarm init 初始化docker swarm集羣manager
docker service create --name demo busybox 創建一個service
docker servide scale demo=5 橫向擴展爲5個
docker service ls 查看服務
docker service ps demo 查看服務在哪些節點運行
docker service rm deom 刪除服務 -
二部分
部署一個應用服務和一個數據庫服務。
兩個服務可能會分配到不同的swarm節點,通過oveylay網絡通信,可以通過servie name通信。swarm會爲每個service分配一個虛擬IP, 類似DNS服務發現原理,每一個service會分配一個虛擬ip即vip,vip並不是swarm節點的ip地址也不是容器的ip,因爲service會做橫向擴展,service不一定在swarm的哪個節點上,所以每個service都有一個vip,DNS即servie name服務名對應vip。
docker network create -d overlay demo 創建overlay類型的網絡,名字叫demo
docker netwrok ls 查看所有網絡
docker service create --name mysql --env MYSQL_ROOT_PASSWORD=root --env MYSQL_DATABASE=wprdpress --network demo --mount type=volume,source=mysql-data,destination=/var/lib/mysql mysql 啓動mysql服務
docker service create --name wordpress -p 80:80 --network demo --env WORDPRESS_DB_PASSWORD=root --env WORDPRESS_DB_HOST=mysql wordpress 啓動wordpress服務,做了端口映射,使用swarm任意節點的ip都可以訪問
-
三部分
Routing Mesh的兩種體現
Internal----container和container之間的訪問通過overlay網絡(通過vip)
Ingress—外部訪問的負載均衡,服務端口被暴露到各個swarm節點,內部通過lvs進行負載均衡 -
四部分
docker network ls
docker network create -d overlay demo // 創建overlay類型的網絡,名字叫demo
docker network inspect docker_gwbridge // 查看使用該網絡的所有容器