6

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

 2 years ago
source link: https://blog.51cto.com/boxuegu/5645103
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

任务编排工具

我们发现我们现在管理微服务比较麻烦,现在只是三个微服务,如果更多会更加麻烦,怎么办呢,下面我们就来学习下docker编排工具

什么是任务编排

编排是一个新的词汇,经过阅读才明白编排指的是容器的集群化和调度。另一类含义指的是容器管理,负责管理容器化应用和组件任务。

​ docker毫无疑问是一个优秀的开源工具。但是,仅靠docker引擎和容器就不能进行复杂的应用程序部署。对于部署复杂的应用程序体系结构的容器群集,必须进行适当的配置。容器化的应用程序应该能够根据应用程序资源需求进行扩展和缩小。

需要考虑的因素

我们需要一个有效管理容器的良好框架。容器的生命周期很短,在进行容器编排时,要考虑的主要因素是

  1. 良好的服务发现。

常见的任务编排工具

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

​ docker-compose是基于docker的编排工具,使容器的操作能够批量的,可视的执行,是一个管理多个容器的工具,比如可以解决容器之间的依赖关系,当在宿主机启动较多的容器时候,如果都是手动操作会觉得比较麻烦而且容器出错,这个时候推荐使用 dockerd的单机编排工具 docker-compose。

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

​ Kubernetes是一个开源的,开箱即用的容器集群管理器和业务流程。它具有出色的构建 调度器 和资源管理器,用于以更有效和高度可用的方式部署容器。Kubernetes已成为许多组织事实上的容器编排工具。kubernetes项目由google与世界各地的贡献者维护。它提供了本机Docker工具不提供的许多功能。而且,使用kubernetes很容易上手。

OpenShift
容器编排工具鉴赏- docker-compose 、Kubernetes、OpenShift、Docker Swarm_后端_03

​ Openshift建立在kubernetes之上。Openshift项目由Redhat维护。它同时具有开源(openshift orgin)和企业版(openshift容器平台)。连同核心的Kubernetes功能,它提供了用于容器管理和编排的开箱即用组件。

Docker Swarm
容器编排工具鉴赏- docker-compose 、Kubernetes、OpenShift、Docker Swarm_后端_04

​ Docker生态系统包括从开发到生产部署框架的工具。在该列表中,docker swarm适用于集群管理。可以使用docker-compose,swarm,overlay网络和良好的服务发现工具(例如etcd或consul)的组合来管理Docker容器集群。

​ 与其他开源容器集群管理工具相比,Docker swarm在功能方面仍日趋成熟。考虑到庞大的Docker贡献者,Docker swarm拥有其他工具拥有的所有最佳功能不会太久。Docker记录了在生产中使用docker swarm 的良好生产计划。

我们这里面主要讲解docker-composeswarm的编排工具

搭建Horbor仓库

我们刚才讲解了本地搭建Horbor仓库,但是我们本地搭建很占用资源,我们用了一台服务器专门来做Horbor的仓库,地址是https://manager-hongbaoyu-java.itheima.net:8443/

容器编排工具鉴赏- docker-compose 、Kubernetes、OpenShift、Docker Swarm_后端_05
停止本地Harbor

因为使用了单独的Harbor服务器,本地的Harbor就可以停掉了

 cd /usr/local/harbor/harbor/ && docker-compose down
容器编排工具鉴赏- docker-compose 、Kubernetes、OpenShift、Docker Swarm_后端_06
清理Docker环境
清理本地环境

因为使用任务编排,本地的服务都可以删除掉了

# 停止并删除所有容器
docker rm -f $(sudo docker ps -a -q)
# 删除所有镜像
docker rmi $(docker images -q)
容器编排工具鉴赏- docker-compose 、Kubernetes、OpenShift、Docker Swarm_java_07
查看本地环境

可以查看下本地的Docker环境

docker ps -a
docker images

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

删除网络配置

因为我们自己配置了Docker网络,我们删除掉

docker network rm learn-docker-network
容器编排工具鉴赏- docker-compose 、Kubernetes、OpenShift、Docker Swarm_后端_09
修改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-compose 、Kubernetes、OpenShift、Docker Swarm_java_10

重启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

本文由育博学谷狂野架构师发布
如果本文对您有帮助,欢迎关注和点赞;如果您有任何建议也可留言评论或私信,您的支持是我坚持创作的动力
转载请注明出处!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK