confd与etcd的使用】的更多相关文章

Add keys This guide assumes you have a working etcd, or consul server up and running and the ability to add new keys. /tmp/test-etcd/etcdctl set /myapp/database/url db.example.com /tmp/test-etcd/etcdctl set /myapp/database/user rob Create the confdir…
1.前言 最近在项目中用nginx做反向代理,需要动态生成nginx的配置.大概流程是用户在页面上新增域名.http或https协议以及端口信息,后台会根据域名自动生成一个nginx的server配置,在nginx.conf配置文件中使用include将所有的server配置加载进来.遇到一个问题就是如何动态生成nginx的配置,以及配置更新.在此之前也接触过配置生成及更新,当时配置的格式都是基于xml的,使用protobuf与xml结合,先采用protobuf定义好配置的数据结构,然后将pro…
基于docker+etcd+confd + haproxy构建高可用.自发现的web服务 2016-05-16 15:12 595人阅读 评论(0) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许不得转载. 各个工具介绍 (1)docker:Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux机器上,也可以实现虚拟化,docker是集群世界中的“进程”.通过docker我们可以非常方便的管理服务以及服务之间的依赖…
前面我们已经通过jenkins+docker搭建了基本的持续集成环境,实现了服务的自动构建和部署,但是,我们遇到一个问题,jenkins构建出来的镜像部署后,需要通过ip:port去访问,有什么更好的方法吗?肯定是通过域名啊!前提是你注册一个域名,或者修改机器hosts文件. 本文介绍通过引入etcd+confd实现部署服务的自动注册,自动生成nginx配置文件,实现每个服务独立域名访问. 配置域名 假设你的域名是: example.com,那么我们可以规划 dev.$servicename.e…
一.需求 我们使用Nginx做七层负载均衡,后端是Tomcat.项目采用灰度发布方式,每次项目升级,都要手动先从Nginx下摘掉一组,然后再升级这组,当项目快速迭代时,手动做这些操作显然会增加部署时间,于是就想通过脚本实现自动化管理Nginx配置文件. 当时考虑自己写Shell脚本对Nginx配置文件操作,需要用到sed流编辑器,sed本身没有条件判断语句,并不能灵活判断配置文件中要添加/删除位置,因此会增加配置错误风险. 在查资料无意间发现confd能自动管理配置文件,通过模板渲染生成配置文件…
各个工具介绍 (1)Docker:Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux机器上,也可以实现虚拟化,docker是集群世界中的“进程”.通过docker我们可以非常方便的管理服务以及服务之间的依赖. (2)etcd:是一个高可用的集中配置管理和协作平台,功能和zookeeper很相似,两者的优劣势比较可以参考网上相关文档.分布式系统相关的配置信息可以集中的存储在etcd中统一管理. (3)confd:一个轻量…
ETCD etcd 架设etcd集群 静态启动etcd集群需要每个成员在集群中知道另一个成员.在许多情况下,集群成员的IP可能提前未知.在这种情况下,可以使用etcd集群的自动发现服务.一旦etcd集群启动并运行,可以通过运行时重新配置完成添加或删除成员. 下面是三种典型的启动配置 具体参照官方介绍 etcd clustering 静态配置 etcd发现 DNS发现 下面将在以下三台主机上搭建etcd集群: Name Address Hostname infra0 10.0.1.10 infra…
部署web服务集群时,我们希望能动态调整集群大小.当一个新的节点启动时,可以将自己的信息注册给master, 让master把它加入到集群里, 关闭之后也可以把自己从集群中删除.我这里使用的是flask + etcd + confd +nginx来实现.如,新增一个flask节点时,将当前的启动的ip和端口,写到etcd中,设置超时时间如20秒,每隔一段时间如15秒刷新下etcd中的可以.confd从etcd中获取信息,生成nginx的配置文件,重载nginx来扩展或删除新的节点. 1.flas…
改成动态更新配置文件,如下每五秒重新生成配置文件 confd与etcd的使用 Add keys This guide assumes you have a working etcd, or consul server up and running and the ability to add new keys. /tmp/test-etcd/etcdctl set /myapp/database/url db.example.com /tmp/test-etcd/etcdctl set /mya…
​ 小贴士 Gorouter 项目地址:https://github.com/cloudfoundry/gorouter/Gorouter来源于CloudFoundry.是一个高性能.轻量级的路由器及负载,它是整个平台的流量入口,负责分发所有的http请求到对应的instance.它在内存中维护了一张路由表,记录了域名与实例的对应关系,所谓的实例自动迁移,靠得就是这张路由表,某实例宕掉了,就从路由表中剔除,新实例创建了,就加入路由表. Gnatsd Gnatsd来源cloudfoundry,是一…
patroni 是一个很不错的pg ha 解决方案,graphql-engine 是一个很好的graphql 工具,为了方便使用 参考patroni官方的文档,使用docker-compose 将应用集成在一起,方便进行测试 环境准备 github 代码 https://github.com/rongfengliang/graphql-engine-patroni docker-compose 文件 version: "3" services: patroni_etcd: contai…
导读:中国五矿和阿里巴巴联手打造的钢铁服务专业平台五阿哥,通过集结阿里巴巴在大数据.电商平台和互联网产品技术上的优势,为终端用户带来一站式采购体验.本文是五阿哥运维技术团队针对Docker容器技术在如何在持续交付过程中探索和实践,目前已经将发布部署权限开放给应用开发的owner,实现7*24小时“一站式”的持续交付,整体提高了公司研发过程的交付能力. 前言 作为创业公司和推行DevOps工程师们来说,都遇到过这样的问题: 硬件资源利用率的问题,造成部分成本的浪费 在网站功能中不同的业务场景有计算…
1.前言 最近在项目中用nginx做反向代理,需要动态生成nginx的配置.大概流程是用户在页面上新增域名.http或https协议以及端口信息,后台会根据域名自动生成一个nginx的server配置,在nginx.conf配置文件中使用include将所有的server配置加载进来.遇到一个问题就是如何动态生成nginx的配置,以及配置更新.在此之前也接触过配置生成及更新,当时配置的格式都是基于xml的,使用protobuf与xml结合,先采用protobuf定义好配置的数据结构,然后将pro…
Docker+Jenkins持续集成 使用etcd+confd实现容器服务注册与发现   前面我们已经通过jenkins+docker搭建了基本的持续集成环境,实现了服务的自动构建和部署,但是,我们遇到一个问题,jenkins构建出来的镜像部署后,需要通过ip:port去访问,有什么更好的方法吗?肯定是通过域名啊!前提是你注册一个域名,或者修改机器hosts文件.本文介绍通过引入etcd+confd实现部署服务的自动注册,自动生成nginx配置文件,实现每个服务独立域名访问. 配置域名 假设你的…
一.背景 最近中间件开发组对twemproxy的发现注册机制做了改造,之前没有接触过twemproxy,借这次测试的机会,初步学习了一下twemproxy相关的知识:下面用"测试语言"来做一次梳理(站在测试的角度,掌握哪些技能可以顺利开展测试). 二.TwemProxy是什么 twemproxy是一种代理分片机制,由Twitter开源.twemproxy作为代理,可接受来自多个程序的访问,按照路由规则,转发给后台的各个Redis服务器,再原路返回.该方案很好的解决了单个Redis实例承…
Confd是什么 Confd是一个轻量级的配置管理工具. 通过查询后端存储,结合配置模板引擎,保持本地配置最新,同时具备定期探测机制,配置变更自动reload. 对应的后端存储可以是etcd,redis.zookeeper等等 我们以etcd为后端来演示confd的使用,用最简单粗暴的方式教大家学会动态生成配置 一.准备confd依赖的存储etcd etcd -listen-client-urls="http://0.0.0.0:2379" --advertise-client-url…
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://lizhenliang.blog.51cto.com/7876557/1910150…
转载:http://www.csdn.net/article/2015-01-28/2823739/2 摘要:Etcd是CoreOS生态系统中处于连接各个节点通信和支撑集群服务协同运作的核心地位的模块,本文将主要介绍Etcd的RESTful API.如果说Etcd是CoreOS分布式架构的基石,Etcd的RESTful API就是架在这基石上的顶梁立柱. Etcd的启动配置 Etcd的配置一般通过cloud-init在系统启动时就进行设定,具体设定方法与使用的平台有关.比如AWS.GCE这些会在…
[编者的话]本文对比了Zookeeper.etcd和Consul三种服务发现工具,探讨了最佳的服务发现解决方案,仅供参考. 如果使用预定义的端口,服务越多,发生冲突的可能性越大,毕竟,不可能有两个服务监听同一个端口.管理一个拥挤的比方说被几百个服务所使用的所有端口的列表,本身就是一个挑战,添加到该列表后,这些服务需要的数据库和数量会日益增多.因此我们应该部署无需指定端口的服务,并且让Docker为我们分配一个随机的端口.唯一的问题是我们需要发现端口号,并且让别人知道. 当我们开始在一个分布式系统…
Zookeeper vs etcd vs Consul [编者的话]本文对比了Zookeeper.etcd和Consul三种服务发现工具,探讨了最佳的服务发现解决方案,仅供参考. 如果使用预定义的端口,服务越多,发生冲突的可能性越大,毕竟,不可能有两个服务监听同一个端口.管理一个拥挤的比方说被几百个服务所使用的所有端口的列表,本身就是一个挑战,添加到该列表后,这些服务需要的数据库和数量会日益增多.因此我们应该部署无需指定端口的服务,并且让Docker为我们分配一个随机的端口.唯一的问题是我们需要…
Template Resources Template resources are written in TOML and define a single template resource. Template resources are stored under the/etc/confd/conf.d directory by default. Required dest (string) - The target file. keys (array of strings) - An arr…
1.下载安装confd ]# wget https://github.com/kelseyhightower/confd/releases/download/v0.15.0/confd-0.15.0-linux-amd64 ]# mkdir -p /opt/confd/bin ]# mv confd-0.15.0-linux-amd64 /opt/confd/bin/confd ]# chmod +x /opt/confd/bin/confd ]# export PATH="$PATH:/opt…
下载安装confd $ mkdir -p $GOPATH/src/github.com/kelseyhightower $ git clone https://github.com/kelseyhightower/confd.git $GOPATH/src/github.com/kelseyhightower/confd $ cd $GOPATH/src/github.com/kelseyhightower/confd $ ./build root@ubuntu:~# confd -versio…
服务发现:Zookeeper vs etcd vs Consul [编者的话]本文对比了Zookeeper.etcd和Consul三种服务发现工具,探讨了最佳的服务发现解决方案,仅供参考. 如果使用预定义的端口,服务越多,发生冲突的可能性越大,毕竟,不可能有两个服务监听同一个端口.管理一个拥挤的比方说被几百个服务所使用的所有端口的列表,本身就是一个挑战,添加到该列表后,这些服务需要的数据库和数量会日益增多.因此我们应该部署无需指定端口的服务,并且让Docker为我们分配一个随机的端口.唯一的问题…
<中小团队落地配置中心详解>文章中我们介绍了如何基于Etcd+Confd构建配置中心,最后提到Etcd的安全问题时说了可以使用账号密码认证以达到安全访问的目的,究竟该如何开启认证以及怎么设计权限访问呢?本文将为你详细解读 认证说明 Etcd v2以上的版本才支持权限认证,且仅支持Basic Auth Etcd通过用户(user)-角色(role)-权限的方式来控制访问,用户关联角色,角色拥有权限,从而用户也就拥有了相应的权限 Etcd默认没有启用认证机制,只要能连接etcd服务就拥有所有的权限…
Quick Start Guide Before we begin be sure to download and install confd. Select a backend confd supports the following backends: etcd consul vault environment variables redis zookeeper dynamodb rancher ssm (AWS Simple Systems Manager Parameter Store)…
文章大部分引至:http://jolestar.com/etcd-architecture/ Etcd 按照官方介绍 Etcd is a distributed, consistent key-value store for shared configuration and service discovery 是一个分布式的,一致的 key-value 存储,主要用途是共享配置和服务发现.Etcd 已经在很多分布式系统中得到广泛的使用,本文的架构与实现部分主要解答以下问题: Etcd是如何实现一…
我们拥有的服务越多,如果我们使用预定义的端口,就会发生冲突的可能性越大.毕竟,在同一端口上不能监听两个服务.管理一百个服务所使用的所有端口的紧密列表本身就是一项挑战.将那些服务所需的数据库添加到该列表中,数量会增长得更多.出于这个原因,我们应该在不指定端口的情况下部署服务,并让Docker为我们分配一个随机服务.唯一的问题是我们需要发现端口号并让其他人了解它. 当我们开始使用部署到多个服务器之一的服务的分布式系统时,事情变得更加复杂.我们可以选择事先定义哪个服务转到哪个服务器但会导致很多问题.我…
背景 本文并不介绍服务发现的基本原理.除了一致性算法之外,其他并没有太多高深的算法,网上的资料很容易让大家明白上面是服务发现.想直接查看结论的同学,请直接跳到文末.目前,市面上有非常多的服务发现工具,<Open-Source Service Discovery>一文中列举了如下开源的服务发现工具. Name Type AP or CP Language Dependencies Integration Zookeeper General CP Java JVM Client Binding D…
一.Consul安装和配置 1.consul是什么? consul是HashiCorp公司推出的一款工具,主要用于实现分布式系统的服务发现与配置,它提供了以下几个关键特性: 服务发现:Consul客户端可以提供如 api或mysql之类的服务,其他客户端使用Consul去发现一个指定服务的提供者.通过DNS或者HTTP应用程序可用很容易的找到他所依赖的服务. 健康检查:consul客户端可以提供任意数量的健康检查,,可以结合具体的服务(“Web服务器返回200 OK”)或本地节点(“内存利用率低…