任務編排工具 我們發現我們現在管理微服務比較麻煩,現在只是三個微服務,如果更多會更加麻煩,怎麼辦呢,下麵我們就來學習下docker編排工具 什麼是任務編排 編排是一個新的辭彙,經過閱讀才明白編排指的是容器的集群化和調度。另一類含義指的是容器管理,負責管理容器化應用和組件任務。 docker毫無疑 ...
任務編排工具
我們發現我們現在管理微服務比較麻煩,現在只是三個微服務,如果更多會更加麻煩,怎麼辦呢,下麵我們就來學習下docker編排工具
什麼是任務編排
編排是一個新的辭彙,經過閱讀才明白編排指的是容器的集群化和調度。另一類含義指的是容器管理,負責管理容器化應用和組件任務。
docker毫無疑問是一個優秀的開源工具。但是,僅靠docker引擎和容器就不能進行複雜的應用程式部署。對於部署複雜的應用程式體繫結構的容器群集,必須進行適當的配置。容器化的應用程式應該能夠根據應用程式資源需求進行擴展和縮小。
需要考慮的因素
我們需要一個有效管理容器的良好框架。容器的生命周期很短,在進行容器編排時,要考慮的主要因素是
- 聯網
- 高可用性
- 易於部署
- 良好的服務發現。
常見的任務編排工具
docker-compose
docker-compose是基於docker的編排工具,使容器的操作能夠批量的,可視的執行,是一個管理多個容器的工具,比如可以解決容器之間的依賴關係,當在宿主機啟動較多的容器時候,如果都是手動操作會覺得比較麻煩而且容器出錯,這個時候推薦使用 dockerd的單機編排工具 docker-compose。
Kubernetes
Kubernetes是一個開源的,開箱即用的容器集群管理器和業務流程。它具有出色的構建 調度器 和資源管理器,用於以更有效和高度可用的方式部署容器。Kubernetes已成為許多組織事實上的容器編排工具。kubernetes項目由google與世界各地的貢獻者維護。它提供了本機Docker工具不提供的許多功能。而且,使用kubernetes很容易上手。
OpenShift
Openshift建立在kubernetes之上。Openshift項目由Redhat維護。它同時具有開源(openshift orgin)和企業版(openshift容器平臺)。連同核心的Kubernetes功能,它提供了用於容器管理和編排的開箱即用組件。
Docker Swarm
Docker生態系統包括從開發到生產部署框架的工具。在該列表中,docker swarm適用於集群管理。可以使用docker-compose,swarm,overlay網路和良好的服務發現工具(例如etcd或consul)的組合來管理Docker容器集群。
與其他開源容器集群管理工具相比,Docker swarm在功能方面仍日趨成熟。考慮到龐大的Docker貢獻者,Docker swarm擁有其他工具擁有的所有最佳功能不會太久。Docker記錄了在生產中使用docker swarm 的良好生產計劃。
環境準備
我們這裡面主要講解
docker-compose
、swarm
的編排工具
搭建Horbor倉庫
我們剛纔講解了本地搭建Horbor倉庫,但是我們本地搭建很占用資源,我們用了一臺伺服器專門來做Horbor的倉庫,地址是
https://manager-hongbaoyu-java.itheima.net:8443/
停止本地Harbor
因為使用了單獨的Harbor伺服器,本地的Harbor就可以停掉了
cd /usr/local/harbor/harbor/ && docker-compose down
清理Docker環境
清理本地環境
因為使用任務編排,本地的服務都可以刪除掉了
# 停止並刪除所有容器
docker rm -f $(sudo docker ps -a -q)
# 刪除所有鏡像
docker rmi $(docker images -q)
查看本地環境
可以查看下本地的Docker環境
docker ps -a
docker images
刪除網路配置
因為我們自己配置了Docker網路,我們刪除掉
docker network rm learn-docker-network
修改Docker配置
因為我們使用了獨立的Horbor倉庫,可以將配置到Docker中的本地倉庫地址替換為新的倉庫地址
修改daemon
# 修改daemon文件刪除本地倉庫地址
vi /etc/docker/daemon.json
在
daemon.json
中增加如下內容
"insecure-registries": ["manager-hongbaoyu-java.itheima.net:8443"],
查看修改
# 查看daemon配置
cat /etc/docker/daemon.json
新的倉庫地址是
manager-hongbaoyu-java.itheima.net:8443
重啟Docker
systemctl daemon-reload
service docker restart
初始化鏡像
將伺服器的需要的鏡像初始化
docker pull mysql:5.7.33;\
docker pull nacos/nacos-server;\
docker pull manager-hongbaoyu-java.itheima.net:8443/library/learn-docker-web:1.0-SNAPSHOT;\
docker pull manager-hongbaoyu-java.itheima.net:8443/library/learn-docker-gateway:1.0-SNAPSHOT;\
docker pull manager-hongbaoyu-java.itheima.net:8443/library/learn-docker-storage:1.0-SNAPSHOT
本文由
傳智教育博學谷
教研團隊發佈。如果本文對您有幫助,歡迎
關註
和點贊
;如果您有任何建議也可留言評論
或私信
,您的支持是我堅持創作的動力。轉載請註明出處!