1.07 容器編排docker Swarm
1.編排swarm簡介
- 學習怎麼將docker用於生產環境,前面學的是用於本地測試環境
- 之前學的是通過docker客戶端連線安裝好docker的linux機器,如下圖
- 生產環境下機器和容器都非常多,怎麼去管理容器?怎麼橫向擴充套件?如果容器down了怎麼恢復?如何更新容器不影響業務?如何監控容器?如何排程容器的建立?如何保護隱私資料?
- swarm是內建於docker的容器編排工具
- swarm叢集架構圖,有manager和worker兩種角色
- manager至少有兩個,內建分散式儲存資料庫實現資料同步,這裡是通過Raft進行資料同步的,不會出現腦裂的情況,最終實現HA
- worker之間通過gossip的網路做資料同步
- service和replicas,部署nginx的service,實際部署產生三個容器,三個容器通過排程系統,排程到不同的節點
- 也就是部署時,最初是不知道擴充套件節點會部署到哪裡的,由swarm通過排程演算法去算的,看哪個機器目前空閒
- 服務建立和排程
- 在swarm manage做決策,決定將worker部署到哪裡
2.三節點swarm叢集的搭建
- 準備三臺裝好docker的機器,這裡做一個manager,兩個worker
- 在主節點node01初始化swarm
- 執行完生成一行命令,子節點加入時,複製這一行程式碼執行就可以
- node02和node03分別作為worker加入
- 檢視當前swarm節點
- 節點退出swarm叢集
- 快速部署:
- 地址:https://labs.play-with-docker.com/
- 執行上面的步驟
3.建立維護Service並擴充套件
- 建立service
- 檢視service狀態
- 檢視service建立的container的情況
- 然後在對應節點可以檢視程式
- 將service橫向擴充套件
- 檢視一共有5個demo例項
- 不同節點檢視程式,5個service平均分配到manager和workder
- node02中,刪除一個容器
- 刪完立刻去主節點檢視,少了一個demo例項
- 主節點檢視,會自動恢復
- 主節點刪除service
4.使用DockerStack部署VotingApp
- 進入之前的/home/voting-example目錄,將之前的docker-compose.yml內容刪掉
- swarm模式編譯執行
- 檢視執行狀態
- 檢視執行詳細情況,多次執行,直到部署好
- 訪問IP:5000是投票的頁面
- 訪問IP:5001是檢視結果的頁面
- 叢集執行狀態下,將vote擴充套件為3個
- 檢視到多了一個例項
- 停止並刪除所有service
5.使用DockerStack部署視覺化應用
- 建立目錄
- 部署服務
- 檢視stack部署情況
- 瀏覽器訪問任意節點的9001埠
- 檢視stack例項
- 叢集執行狀態下,將stack-demo_portainer擴充套件為3個
- 瀏覽器訪問任意節點的9001埠,此時stack-demo_portainer變為了3個例項
- 刪除stack例項
6.使用並管理DockerSecret
- secret可以是使用者名稱和密碼,也可以是SSH key,可以是任何不想讓別人看到的資料
- docker swarm的架構如下,manager節點有基於raft的內建的分散式儲存,是加密後儲存的,worker資訊也是加密是,也是分散式儲存的
- 隨意建立一個檔案
- 建立secret
- 此時密碼已經儲存到manager的分散式儲存中了
- 檢視secret
- 也可以從標準輸入建立
- 再次檢視secret
- 刪除secret
- 建立mysql的service
- 檢視程式執行的節點,這裡看到是node03執行的
- node03中檢視程式
- node03中互動執行mysql
- 互動執行時可以檢視密碼,然後用這個密碼登入mysql
7.更新service版本
- 建立demo網路
- 檢視網路
- 建立service,可以去dockerHub檢視nginx版本
- 訪問80埠,會返回一個歡迎頁
- 在node01寫一個指令碼,不停訪問
- 在另一個會話,更新service的版本到1.13
- node02訪問業務,自動切換到新版本
- 在另一個會話,更新訪問埠
- node02訪問,檢視效果
學院Go語言視訊主頁
https://edu.csdn.net/lecturer/1928
[清華團隊帶你實戰區塊鏈開發]
(https://ke.qq.com/course/344443?tuin=3d17195d)
掃碼獲取海量視訊及原始碼 QQ群:
721929980
相關文章
- Docker 多容器編排Swarm(六)DockerSwarm
- Docker批量容器編排Docker
- Docker 容器編排利器 Docker ComposeDocker
- 42_Docker容器編排Docker
- Docker學習(十)Docker容器編排 Docker-composDocker
- 容器技術之Docker-swarmDockerSwarm
- Docker - 03 編排容器 Docker Compose 指令速查表Docker
- Docker容器編排技術解析與實踐Docker
- Docker批次容器編排的實現介紹Docker
- docker容器編排原來這麼絲滑~Docker
- 容器技術|Docker三劍客之docker-swarmDockerSwarm
- 容器引擎Docker和容器編排kubernetes如何優雅的收集容器日誌Docker
- 對比剖析Swarm Kubernetes Marathon編排引擎Swarm
- Docker知識進階與容器編排技術Docker
- Dockerfile指令與Docker-compose容器編排-搭建docker私有倉庫Docker
- 【Docker】 SwarmDockerSwarm
- 1.09 容器編排Kubernetes
- docker-swarm容器固定到node節點啟動DockerSwarm
- Dockerfile與docker-compose容器編排(Docker系列第3章,共3章)Docker
- 實戰Docker容器排程Docker
- Docker Swarm modeDockerSwarm
- Kubernetes – 容器編排簡介
- Docker編排利器DockerComposeDocker
- docker-compose 編排Docker
- Docker compose 編排LNPDocker
- Docker_Docker服務編排6Docker
- Docker學習—SwarmDockerSwarm
- 編排的藝術|K8S中的容器編排和應用編排K8S
- 最小許可權的容器編排
- Docker Swarm叢集初探DockerSwarm
- 8、docker swarm操作使用DockerSwarm
- docker swarm部署介紹DockerSwarm
- Docker Swarm Mode簡介DockerSwarm
- Docker Swarm 叢集搭建DockerSwarm
- Docker(六):Docker 三劍客之 Docker SwarmDockerSwarm
- 最小許可權的容器編排:編排器的使用方法探討
- Docker swarm叢集搭建教程DockerSwarm
- Docker Swarm常用命令DockerSwarm