长话短说,本文旨在记录基于阿里容器云的微服务部署过程,让大家对阿里容器云的使用,微服务的部署有一个整体认识。这个话题我会分几篇文章阐述,由浅入深,部署由笨拙到灵巧,大家一起学习,进步!今天我们说说来看看整体框架的部署过程:


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.node1node3上启动consuljoinnode2

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)(一)相关推荐

  1. 阿里云Kuberneters微服务部署案例

    3. 如何安装Docker Desktop for Mac 如何安装Docker Desktop for Mac 4. SpringCloud微服务应用 SpringCloud微服务应用 5. Kub ...

  2. 从零开始,打造基于阿里IoT云平台的LoRa解决方案(3)_配置产品功能,将上传数据解析为阿里云平台数据格式

    本篇是 <从零开始,打造基于阿里IoT云平台的LoRa解决方案>系列教程的第3 篇,将为大家讲解:1-如何配置产品功能?2-如何将产品的上传数据解析为阿里云平台数据格式? 查看阿里物联网平 ...

  3. Dubbo 和 HSF 在阿里的实践:携手走向下一代云原生微服务

    欢迎关注方志朋的博客,回复"666"获面试宝典 作者 |郭浩 审校 |钰莹 Dubbo 和 HSF 都是阿里巴巴目前在使用的微服务 RPC 框架.HSF 在阿里巴巴使用更多,承接了 ...

  4. 有容云:微服务容器化的挑战和解决之道

    注: 本文根据6月是18日七牛云微服务课堂-微服务容器化的挑战和解决之道演讲内容整理而成,演讲者:有容云联合创始人兼首席架构师马洪喜,与大家一起探讨了如何通过容器技术将微服务和 DevOps 落地. ...

  5. 日10亿级处理,基于云的微服务架构

    德比软件:基于云的微服务架构 作者:朱攀,德比软件架构师,同济大学研究生,2007 年 2 月加入德比软件(DerbySoft),拥有 10 年以上的软件架构和开发经验.目前主要负责公司数据对接平台的 ...

  6. 从建好到用好,阿里云原生微服务生态的演进

    作者:微服务小组 本文整理自阿里云智能高级技术专家彦林的线上直播分享<阿里云原生微服务生态与规划>.视频回放地址:https://yqh.aliyun.com/live/detail/28 ...

  7. 干货 | 基于开源体系的云原生微服务治理实践与探索

    作者简介 CH3CHO,携程高级研发经理,负责微服务.网关等中间件产品的研发工作,关注云原生.微服务等技术领域. 一.携程微服务产品的发展历程 携程微服务产品起步于2013年.最初,公司基于开源项目S ...

  8. 基于开源体系的云原生微服务治理实践与探索

    作者:董艺荃|携程服务框架负责人 携程微服务产品的发展历程 携程微服务产品起步于 2013 年.最初,公司基于开源项目 ServiceStack 进行二次开发,推出 .Net 平台下的微服务框架 CS ...

  9. 基于netty的微服务网关_基于Rx-netty和Karyon2的云就绪微服务

    基于netty的微服务网关 Netflix Karyon提供了一个干净的框架来创建可用于云的微服务. 在您的组织中,如果您使用包含Eureka的Netflix OSS堆栈进行服务注册和发现,使用Arc ...

最新文章

  1. c++文件读取空格_程序员术与道:术—C语言对文件进行处理,文件处理的基本操作...
  2. 时序数据库InfluxDB
  3. Spring AOP 增强器获取的源码解析
  4. VS2015编译MuPDF 1.13.0源码(详细)
  5. OpenCV: OpenCV人脸检测框可信度排序
  6. C#进阶系列——使用Advanced Installer制作IIS安装包(二:配置安装包依赖项和自定义dll)...
  7. RocketMQ在Windows环境下部署(亲测有效)
  8. 敏捷开发团队管理系列之一:序言与出发点
  9. python 标签字体大小_Python玩转Excel(第3期)~这里只有干货
  10. MCPTAM标定部分 运行结果
  11. 物流配送快递管理系统javabean
  12. echarts地图(中国地图展示各省数据)
  13. php获取百度搜索的关键词,【2020年】百度搜索词获取,获取百度搜索的关键词【真实有效】...
  14. 请假时间计算(支持任何时间段)
  15. 获取Android设备唯一标识(唯一序列号)
  16. 利用Python爬虫抓取猫眼电影排行(BeautifulSoup方式初试手,欢迎改进)
  17. CCF 1158. 骰子游戏
  18. sql注入的原理详解
  19. 常用 SQL强化练习
  20. fundamentals of power electronics (third edition)

热门文章

  1. [导入]从飞信到SNS,中国移动进军互联网之路,悬乎
  2. 二维几何变换---其他二维变换
  3. 只需短短几步就能重排PDF文档的页面
  4. Tomcat5.5链接Oracle、DB2、MySQL数据源实现JSP下拉框的填充
  5. [日推荐] 『地铁查询』全国地铁尽在手中,不怕迷路!
  6. ASA 防火墙 工作原理与配置实例
  7. Selenium2.0 获取隐藏元素的内容
  8. apl脚本入门-控制语句
  9. 【老孙随笔】 神秘的茶馆
  10. Python实现聚类 KMeans算法