Docker Swarm集群搭建、彈性擴縮容


官方文檔: https://docs.docker.com/engine/swarm/swarm-tutorial/

工作模式

image

搭建集群

docker swarm --help 
# 查看私網IP地址
ip addr 

docker swarm init --advertise-addr 192.168.98.224

To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-2izj4yg08taobo19tjb9ci3r0w3lwkxxq8gvwx0d71zi71gize-8c4desxvd2mxt14zwv5sjneel 192.168.98.224:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
# 初始化主節點 后面可以加入主節點或者工作節點
docker swarm init 

# 加入一個節點
docker swarm join 
# 創建manager節點命令
docker swarm join-token manager
# 創建worker節點命令
docker swarm join-token worker

# 查看節點 只有manager節點可以使用該命令
docker node ls 

# 離開集群
docker swarm leave

# 管理節點,解散集群
docker swarm leave --force

Raft一致性協議

保證大多數節點存活才可以使用

Swarm集群彈性創建服務

docker run : 容器啟動 不具備擴縮容
docker-compose up : 啟動一個項目、單機
dockck swarm : 集群, docker service .分布在不同主機上
image

# 啟動服務
docker service create -p 8888:80 --name swarm-nginx nginx

# 查看服務
docker service ps swarm-nginx
docker service ls
docker service inspect swarm-nginx

# 擴容
docker service update --replicas 3 swarm-nginx
# 或者使用 scale 擴容
docker servcie scale swarm-nginx=3

# 移除服務
docker service rm swarm-nginx

集群中任意的節點都可以訪問,服務可以有多個副本動態擴縮容實現高可用

概念總結

  • Swarm
    集群的管理和編號;docker可以初始化一個swarm集群,其他節點可以加入(管理者、工作者)

  • Node
    就是一個Dokcer節點,多個節點組成一個網絡集群。

  • Service
    任務,可以在管理節點或者工作節點運行。提供用戶訪問

  • Task
    容器內的命令 細節任務

Docker Swarm

image

Service

image

docker service create流程

image

服務副本與全局服務

image

調整Service以什么方式運行

# 默認在工作節點創建服務
docker service create --mode replicated --name mytomcat tomcat:7

docker service create --mode global --name mytomcat tomcat:7

# 場景:日志收集、服務監控、狀態性能
每一個節點都有自己的日志收集器,過濾日志后把所有日志最終傳給日志中心

擴展

網絡模式: PublishMode: ingress

模式
Overlay 跨機器互通 網絡變成一個整體
ingress 特殊的Overlay網絡 具有負載均衡功能
docker network inspect ingress

image

Docker Stack

# 單機
docker-compose up -d wordpress.yml
# 集群
docker stack deploy wordpress.yml

Docker Secret

配置密碼、證書

Docker Config


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM