从零开始部署基于阿里容器云的微服务(consul+registrator+template)(一)
长话短说,本文旨在记录基于阿里容器云的微服务部署过程,让大家对阿里容器云的使用,微服务的部署有一个整体认识。这个话题我会分几篇文章阐述,由浅入深,部署由笨拙到灵巧,大家一起学习,进步!今天我们说说来看看整体框架的部署过程:
1.登陆阿里云consle创建容器集群并加入三个ecs节点
阿里云console-->容器服务-->集群-->创建集群
我们的测试节点如下:
192.168.1.1 node1
192.168.1.2 node2consul master
192.168.1.3 node3
2.分别登陆测试节点node1-node3获取consul
docker pull progrium/consul
3.在node2上启动consul master
docker run -d -h master -v /data:/data\
-p 192.168.1.2:8300 \
-p 192.168.1.2:8301:8301 \
-p 192.168.1.2:8302:8302 \
-p192.168.1.2:8400:8400 \
-p 8500:8500 \
progrium/consul -server-advertise 192.168.1.2 -bootstrap-expect 3(等到集群节点到三个才启动)
4.在node1和node3上启动consul并join到node2
node1:
docker run -d -h node1 -v /data:/data \
-p 192.168.1.1:8300:8300 \
-p 192.168.1.1:8301:8301 \
-p 192.168.1.1:8302:8302 \
-p 192.168.1.1:8400:8400 \
-p 8500:8500 \
progrium/consul -server -advertise 192.168.1.1-join 192.168.1.2
node3:
docker run -d -h node1 -v /data:/data \
-p 192.168.1.3:8300:8300 \
-p 192.168.1.3:8301:8301 \
-p 192.168.1.3:8302:8302 \
-p 192.168.1.3:8400:8400 \
-p 8500:8500 \
progrium/consul -server -advertise 192.168.1.3-join 192.168.1.2
5.检查consul集群状态
Node2上执行
显示节点信息
6.安装部署registrator并注册到consul
Node1:
docker run -d -v/var/run/docker.sock:/tmp/docker.sock --name node1 -h node1gliderlabs/registrator:latest consul://192.168.1.2:8500
node2:
docker run -d -v/var/run/docker.sock:/tmp/docker.sock --name node2 -h node2gliderlabs/registrator:latest consul://192.168.1.2:8500
node3:
docker run -d -v/var/run/docker.sock:/tmp/docker.sock --name node3 -h node3 gliderlabs/registrator:latestconsul://192.168.1.2:8500
查看注册到consul的服务,此刻因为我们没有启动任何的服务,所以会看到空的列表:
curl 192.168.1.2:8500/v1/catalog/services|jq .
7.下载consul-template
安装unzip
yuminstall unzip -y
wgethttps://releases.hashicorp.com/consul-template/0.7.0/consul-template_0.7.0_linux_amd64.zip
unzip consul-template_0.7.0_linux_amd64.zip -d /usr/local/bin/
8.制作Dockfile并生成镜像
A,定义模板文件
vi/usr/local/service.ctmpl
upstreampython-service {
least_conn;
{{range service "python-micro-service"}}server ``.`Address`:``.`Port`max_fails=3 fail_timeout=60 weight=1;
`else`server 127.0.0.1:65535; # force a 502 `end`
}
server {
listen 80 default_server;
charset utf-8;
location / {
proxy_pass http://python-service;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
B.定义nginx启动脚本
vi start.sh
#!/bin/bash
service nginx start
consul-template -consul=192.168.1.2:8500-template="/templates/service.ctmpl:/etc/nginx/conf.d/service.conf:servicenginx reload"
C.定义Dockerfile
cp /usr/local/bin/consul-template .
vi Dockerfile
FROMnginx:latest
ENTRYPOINT ["/bin/start.sh"]
EXPOSE 80
VOLUME /templates
ENV 192.168.1.2:8500
ADDstart.sh /bin/start.sh
#RUN rm -v /etc/nginx/conf.d/*
ADD consul-template /usr/local/bin/
RUN chmod +x /usr/local/bin/consul-template && chmod +x /bin/start.sh
D.制作nginx镜像文件
docker build -t nginx_test_123 .
E.查看制作的镜像文件
Docker p_w_picpaths
看到我们刚刚创建的nginx镜像了
9.上传镜像
直接使用docker push会直接推送p_w_picpath到docker hub上,我们是要上传到我们的阿里云仓库的,步骤如下:
A. 在阿里云后台先定义镜像名称
B. 重新指定我们的镜像名字
Docker tag 3cde0ec0444s(nginx容器id)
registry.cn-beijing.aliyuncs.com/test/nginx_test_123
C. 镜像上传
登陆阿里docker hub
docker login --username=aliyun账户 --password="hub密码" registry.cn-beijing.aliyuncs.com
上传镜像
docker push registry.cn-beijing.aliyuncs.com/test/nginx _test_123
查看上传的镜像
10.使用镜像批量部署应用
阿里云-容器云-应用-创建应用-通过镜像创建应用-镜像名创建,假设我们部署到集群的三个节点则compose编排如下:
11.再次查看consul注册服务注册信息可看到刚发布的nginx已经注册好了
今天先记录到这,下次我们进行java类的微服务部署,因为是直接启动的jar包所以不涉及到template文件的编写,registrator直接注册到consul就可以了
转载于:https://blog.51cto.com/alice/1896078
从零开始部署基于阿里容器云的微服务(consul+registrator+template)(一)相关推荐
- 阿里云Kuberneters微服务部署案例
3. 如何安装Docker Desktop for Mac 如何安装Docker Desktop for Mac 4. SpringCloud微服务应用 SpringCloud微服务应用 5. Kub ...
- 从零开始,打造基于阿里IoT云平台的LoRa解决方案(3)_配置产品功能,将上传数据解析为阿里云平台数据格式
本篇是 <从零开始,打造基于阿里IoT云平台的LoRa解决方案>系列教程的第3 篇,将为大家讲解:1-如何配置产品功能?2-如何将产品的上传数据解析为阿里云平台数据格式? 查看阿里物联网平 ...
- Dubbo 和 HSF 在阿里的实践:携手走向下一代云原生微服务
欢迎关注方志朋的博客,回复"666"获面试宝典 作者 |郭浩 审校 |钰莹 Dubbo 和 HSF 都是阿里巴巴目前在使用的微服务 RPC 框架.HSF 在阿里巴巴使用更多,承接了 ...
- 有容云:微服务容器化的挑战和解决之道
注: 本文根据6月是18日七牛云微服务课堂-微服务容器化的挑战和解决之道演讲内容整理而成,演讲者:有容云联合创始人兼首席架构师马洪喜,与大家一起探讨了如何通过容器技术将微服务和 DevOps 落地. ...
- 日10亿级处理,基于云的微服务架构
德比软件:基于云的微服务架构 作者:朱攀,德比软件架构师,同济大学研究生,2007 年 2 月加入德比软件(DerbySoft),拥有 10 年以上的软件架构和开发经验.目前主要负责公司数据对接平台的 ...
- 从建好到用好,阿里云原生微服务生态的演进
作者:微服务小组 本文整理自阿里云智能高级技术专家彦林的线上直播分享<阿里云原生微服务生态与规划>.视频回放地址:https://yqh.aliyun.com/live/detail/28 ...
- 干货 | 基于开源体系的云原生微服务治理实践与探索
作者简介 CH3CHO,携程高级研发经理,负责微服务.网关等中间件产品的研发工作,关注云原生.微服务等技术领域. 一.携程微服务产品的发展历程 携程微服务产品起步于2013年.最初,公司基于开源项目S ...
- 基于开源体系的云原生微服务治理实践与探索
作者:董艺荃|携程服务框架负责人 携程微服务产品的发展历程 携程微服务产品起步于 2013 年.最初,公司基于开源项目 ServiceStack 进行二次开发,推出 .Net 平台下的微服务框架 CS ...
- 基于netty的微服务网关_基于Rx-netty和Karyon2的云就绪微服务
基于netty的微服务网关 Netflix Karyon提供了一个干净的框架来创建可用于云的微服务. 在您的组织中,如果您使用包含Eureka的Netflix OSS堆栈进行服务注册和发现,使用Arc ...
最新文章
- c++文件读取空格_程序员术与道:术—C语言对文件进行处理,文件处理的基本操作...
- 时序数据库InfluxDB
- Spring AOP 增强器获取的源码解析
- VS2015编译MuPDF 1.13.0源码(详细)
- OpenCV: OpenCV人脸检测框可信度排序
- C#进阶系列——使用Advanced Installer制作IIS安装包(二:配置安装包依赖项和自定义dll)...
- RocketMQ在Windows环境下部署(亲测有效)
- 敏捷开发团队管理系列之一:序言与出发点
- python 标签字体大小_Python玩转Excel(第3期)~这里只有干货
- MCPTAM标定部分 运行结果
- 物流配送快递管理系统javabean
- echarts地图(中国地图展示各省数据)
- php获取百度搜索的关键词,【2020年】百度搜索词获取,获取百度搜索的关键词【真实有效】...
- 请假时间计算(支持任何时间段)
- 获取Android设备唯一标识(唯一序列号)
- 利用Python爬虫抓取猫眼电影排行(BeautifulSoup方式初试手,欢迎改进)
- CCF 1158. 骰子游戏
- sql注入的原理详解
- 常用 SQL强化练习
- fundamentals of power electronics (third edition)