Docker之swarm

Swarm 在Docker1.12版本之前屬於一個獨立的項目,在Docker1.12版本發佈之後,該項目合併到了Docker中,成爲Docker的一個子命令。Swarm是Docker 社區提供的唯一一個原生支持Docker集羣管理的工具。Swarm可以把多個Docker 主機組成的系統轉換爲單一的虛擬 Docker主機,使得容器可以組成跨主機的子網網絡。Docker Swarm 是一個爲IT運維團隊提供集羣和調度能力的編排工具。

swarm的管理體系

·Docker Swarm 優點
·任何規模都有高性能表現
·靈活的容器調度
·服務的持續可用性
·和DockerAPI及整合支持的兼容性
·Docker Swarm爲Docker化應用的核心功能(諸如多主機網絡和存儲卷管理)提供原生支持。

做swarm初始化

docker swarm init
docker notes ls

一個master,兩個worker

然後在server2和server3中分別啓動docker

systemctl daemon-reload
systemctl restart docker

同時保證他們能上網

·docker swarm 相關概念
·節點分爲管理(manager)節點和工作(worker)節點
·任務(Task)是Swarm中的最小的調度單位,目前來說就是一個單一的容器。
·服務(Services)是指一組任務的集合,服務定義了任務的屬性。

docker network create -d overlay mynet

我們創建一個服務

docker service create --name my_cluster --network mynet --replicas 3 -p 80:80 ikubernetes/myapp:v1

如果myapp鏡像沒有的話會從外網下載

docker ps my_cluster,查看容器在三個節點的運行狀態

然後我們部署一個監控

先拉取資源

docker pull dockersamples/visualizer

然後我們再創建一個服務

然後我們打開瀏覽器去查看

這三個節點均能實現負載均衡

如果節點不夠用我們可以做拉伸

docker service scale my_cluster=6

6個節點也可以做縮減(彈性壓縮

docker service scale my_cluster=3

滾動更新--然後我們可以批量的進行更新容器

一次更新3個間隔五秒

這樣剛纔的v1都別更新爲v2了

編輯我們docker compose文件

然後我們讀取compose文件

docker stack deploy -c docker-compose.yml my_cluster

查看部署

修改conpose文件

給節點設置內存和cpu,保證一個資源限制

然後我們節點需要的鏡像都上傳到harbor倉庫中

ikubernetes/myapp:v1、ikubernetes/myapp:v2均長傳到倉庫中,然後刪除本地的鏡像

然後修改我們的私有倉庫vim daemon.json(server1\2\3)

{
"registry-mirrors":["https://reg.westos.org"]
}

然後

systemctl daemon-reload

systemctl reatart docker

也要保證解析是正確的(/etc/hosts)

然後拉取嘗試、

發現連接成功

修改名字myapp: 
 image: myapp:v1
修改端口ports:
"8000:80"

然後我們部署創建

還可以創建滾動更新(vim compose.yml)

myapp:
image:myapp:v2

部署一下

查看更新

然後去訪問查看一下8000端口

我們也可以通過portainer

進行圖形可視化的監控

然後我們在harbor上創建一個portainer的項目

docker tag portainer/portainer:latest reg.westos.org/portainer/portainer:latest放到我們的私有倉庫中

docker push reg.westos.org/portainer/portainer:latest然後上傳

然後我們部署

docker stack deploy -c portainer-agent-stack.yml portainer

然後我們訪問9000端口強制修改密碼登錄

這樣就可以查看我們的集羣監控

也可以直接在上述界面部署服務

我們先刪除我們的my_cluster

然後設置register

然後在服務欄

添加名字,端口網絡等信息

直接create

也可以進行拉伸直接修改後面的數字即可

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章