容器编排工具鉴赏- docker-compose 、Kubernetes、OpenShift、Docker Swarm ...

张春  金牌会员 | 2022-9-16 17:24:47 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 919|帖子 919|积分 2757

任务编排工具

我们发现我们现在管理微服务比较麻烦,现在只是三个微服务,如果更多会更加麻烦,怎么办呢,下面我们就来学习下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就可以停掉了
  1. cd /usr/local/harbor/harbor/ && docker-compose down
复制代码

清理Docker环境

清理本地环境

因为使用任务编排,本地的服务都可以删除掉了
  1. # 停止并删除所有容器
  2. docker rm -f $(sudo docker ps -a -q)
  3. # 删除所有镜像
  4. docker rmi $(docker images -q)
复制代码

查看本地环境

可以查看下本地的Docker环境
  1. docker ps -a
  2. docker images
复制代码

删除网络配置

因为我们自己配置了Docker网络,我们删除掉
  1. docker network rm learn-docker-network
复制代码

修改Docker配置

因为我们使用了独立的Horbor仓库,可以将配置到Docker中的本地仓库地址替换为新的仓库地址
修改daemon
  1. # 修改daemon文件删除本地仓库地址
  2. vi /etc/docker/daemon.json
复制代码
在daemon.json中增加如下内容
  1. "insecure-registries": ["manager-hongbaoyu-java.itheima.net:8443"],
复制代码
查看修改
  1. # 查看daemon配置
  2. cat /etc/docker/daemon.json
复制代码
新的仓库地址是manager-hongbaoyu-java.itheima.net:8443

重启Docker
  1. systemctl daemon-reload
  2. service docker restart
复制代码
初始化镜像

将服务器的需要的镜像初始化
  1. docker pull mysql:5.7.33;\
  2. docker pull nacos/nacos-server;\
  3. docker pull manager-hongbaoyu-java.itheima.net:8443/library/learn-docker-web:1.0-SNAPSHOT;\
  4. docker pull manager-hongbaoyu-java.itheima.net:8443/library/learn-docker-gateway:1.0-SNAPSHOT;\
  5. docker pull manager-hongbaoyu-java.itheima.net:8443/library/learn-docker-storage:1.0-SNAPSHOT
复制代码
本文由传智教育博学谷教研团队发布。
如果本文对您有帮助,欢迎关注和点赞;如果您有任何建议也可留言评论或私信,您的支持是我坚持创作的动力。
转载请注明出处!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

张春

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表