镜像构建交付和使用Rancher进行容器创建管理

先来架构,如图:

Docker微服务-镜像构建交付和使用rancher进行容器创建管理


1.前端出口服务为阿里SLB
2.Zookeeper集群为整个微服务环境提供注册中心,Zookeeper集群每个znode的IP固定,也同样由config-service服务配置。
3.集中配置服务config-service,由git集中管理配置文件,config-service配置映射宿主机某个目录。配置如需修改直接Git中修改,触发宿主机映射的目录中进行git pull操作,然后重启对应的provider,配置即可生效。
4.facade作为分发器做分发服务。

微服务工作流程:
1)provider启动,读取写死的config-service配置服务,从配置服务中获取到Zookeeper地址,进行注册。
2)请求由阿里SLB分发至对应微服务facade,网关前往Zookeeper集群注册中心获取可用服务。
3)获取到可用provider后,facade进行分发请求,策略为轮询。
4)如后端provider挂了,无法提供服务,Zookeeper会自动剔除该服务的注册。

建立微服务基础运行环境,gateway网关、Zookeeper注册中心、config-service配置基础运行环境。开始构建以上基础运行环境:

一、创建zookeeper3.4.10集群服务

需包含了jdk和配置好环境变量的镜像,jdk1.8镜像。
jdk1.8镜像交付到阿里云Docker Registry仓库

Docker Rancher宿主机

1.下载jdk1.8.0_25.tar包,自行下载。
创建jdk构建build目录

mkdir -p /data/docker/ms-jdk ll -rw-r--r-- 1 root root 155 Dec 29 15:11 dockerfile drwxr-xr-x 9 root root 268 Nov 17 2017 jdk1.8.0_25

2.编写dockfile
cat dockerfile

FROM CentOS MAINTAINER jdk1.8 "name@alaxiaoyou.com" ADD jdk1.8.0_25/ /usr/local/jdk1.8 ENV JAVA_HOME /usr/local/jdk1.8 ENV PATH $JAVA_HOME/bin:$PATH

3.构建

[root@rancher-qa ms-jdk]# docker build -t ms/jdk1.8:v1 . Sending build context to Docker daemon 308.6MB Step 1/5 : FROM centos latest: Pulling from library/centos a02a4930cb5d: Pull complete Digest: sha256:184e5f35598e333bfa7de10d8fb1cebb5ee4df5bc0f970bf2b1e7c7345136426 Status: Downloaded newer image for centos:latest ---> 1e1148e4cc2c Step 2/5 : MAINTAINER jdk1.8 "yuhuanghui@alaxiaoyou.com" ---> Running in 74ba397d2ab5 ---> 57601effbcb9 Removing intermediate container 74ba397d2ab5 Step 3/5 : ADD jdk1.8.0_25/ /usr/local/jdk1.8 ---> e960522c0399 Removing intermediate container 9408672a94d9 Step 4/5 : ENV JAVA_HOME /usr/local/jdk1.8 ---> Running in 42d9c2b3239c ---> 9bb3badf22e0 Removing intermediate container 42d9c2b3239c Step 5/5 : ENV PATH $JAVA_HOME/bin:$PATH ---> Running in d8af2f726409 ---> 00d3c71ae0be Removing intermediate container d8af2f726409 Successfully built 00d3c71ae0be Successfully tagged ms/jdk1.8:v1

docker images 查看

Docker微服务-镜像构建交付和使用rancher进行容器创建管理

4.登录阿里云容器镜像服务
创建镜像仓库名称ms-jdk1.8

Docker微服务-镜像构建交付和使用rancher进行容器创建管理

5.镜像push到阿里云Docker Registry
切换到rancher/server
登录到阿里云Docker Registry
登录Docker Registry -> 打tag -> push到Docker Registry

[root@rancher-qa ms-jdk]# docker login --username=name@alaxiaoyou.com registry.cn-hangzhou.aliyuncs.com Password: ******** Login Succeeded [root@rancher-qa ms-jdk]# [root@rancher-qa ms-jdk]# docker tag 00d3c71ae0be registry.cn-hangzhou.aliyuncs.com/xmbaby-tmp/ms-jdk1.8:v1.0 [root@rancher-qa ms-jdk]# docker push registry.cn-hangzhou.aliyuncs.com/xmbaby-tmp/ms-jdk1.8:v1.0 The push refers to a repository [registry.cn-hangzhou.aliyuncs.com/xmbaby-tmp/ms-jdk1.8] 96f6833b8de8: Pushed 071d8bd76517: Pushed v1.0: digest: sha256:1c2f642e7e49cd607c36032612efcd875c191abc5edb642d7e86483d1d5b392d size: 742

查看:

Docker微服务-镜像构建交付和使用rancher进行容器创建管理

至此,ms-jdk1.8镜像交付完成。

zookeeper3.4.10集群创建,并将Zookeeper3.4.10镜像交付到阿里云Docker Registry仓库。

1.zookeeper3.4.10集群构建前提准备:

zookeeper3.4.10集群需其配置文件中指定各个选举节点的ip和端口,并且zookeeper集群中的datadir(zoo.cfg配置中:dataDir=/tmp/zookeeper)中,需指定节点的myid,才能完成Zookeeper集群搭建。在不使用docker link功能前提下,容器化Zookeeper集群,需要解决:
1).myid问题。
2).Zookeeper集群节点(leader、follower)选举配置。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/76c900b84e720f5a30e284909548b750.html