网上乱七八糟的资料实在是太多了, 乱, 特别乱, 而看书呢, 我读了2本书, 一本叫做<<第一本 Docker 书>>, 另一本叫做<< Docker进阶与实战>> 在 服务发现这块讲的又不清不楚的, 坑死个人. 今天特意记录下, 并整理下来,以防自己哪天又忘了, 也给同在研究Docker 的朋友们一个安装教程. 我单位测试机一共四台, 各位可以起4个虚拟机对应, 假定分别是141,142,143,144. 都是 CentOS 6.x 系统. Step1. 升级 CentOS 内核到3.10版本以上 首先升
Consul是一种面向服务的解决方案,可以帮助企业构建高效、可扩展和安全的容器化应用程序。它提供了服务发现、健康检查、流量路由和安全性等关键功能,可以轻松地管理容器化应用程序。
本文主要介绍怎么使用 Docker 在 Linux 环境部署 Consul 集群,如果你对 Docker 不了解的同学,请先学习一下 Docker。推荐一本学习 Docker 在线书籍 :【Docker入门到实践】 。
前言 在Docker网络——单host网络一文中,我为大家总结了Docker的单机网络相关知识和操作,单机网络比较容易。本文我为大家总结Docker跨主机通信相关知识。同样本文大部分内容以CloudMan的相关教程为基础。 一、Docker 跨主机通信 Docker跨主机网络方案包括: docker 原生的 overlay 和 macvlan。 第三方方案:常用的包括 flannel、weave 和 calico。 docker 通过 libnetwork 以及 CNM 将上述各种方案与docker集成在一
Docker Swarm概述 Docker Swarm是Docker官方提供的集群工具。它可以将一些关联的Docker主机转变成一个虚拟Docker主机。因为Docker Swarm符合Docker API的标准,任何已经可以与Docker守护进程通信的工具都可以使用Swarm来透明地扩展到多个主机。支持工具包括: Dokku Docker Compose Docker Machine Jenkins 当然,Docker客户端本身也是被支持的,而Docker Swarm支持的工具还不止这些。 如同其他的Do
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
Consul是用于服务发现和配置的工具。 Consul是分布式的,高度可用的,并且具有极高的可伸缩性。
使用上述软硬件架构创建3个VMs/hosts,每个host使用两个网络连接:一个桥接网络(网卡名称“enp0s3”)和一个Host-only网络(网卡名称“enp0s8”)
我这里直接使用swoole简单模拟搭建一个直播的HTTP服务,前提是你的php安装了swoole扩展(server.php)
Consul Template 提供一个方便的方式从Consul服务获取数据通过consul-template的后台程序保存到文件系统,这个后台进程监控Consul中数据的变化并更新任意数量的模板到文件系统。模板更新完成后consul-template也可以触发相关的指令或者脚本,此处通过简单的实践动态更新Nginx的upstream server并且触发reloadnginx服务。当然对于小规模下的应用场景还有很多,比如Haproxy配置文件动态更新等。
Consul是一个分布式、高可用的系统,是一个为了解决在生产环境中服务注册,服务发现,服务配置的一个工具,它有多个组件,提供如下几个关键功能:
其实简单说,服务发现就是解耦服务与IP地址之间的硬绑定关系, 以典型的集群为例,对于集群来说,是有多个节点的,这些节点对应多个IP(或者同一个IP的不同端口号),集群中不同节点责任是不一样的。 比如说一个数据集群中,可以分为读节点或者写节点,写节点和读节点都是相对的,不是硬绑定的,某一个逻辑节点,随着故障转移及恢复,是可以变换身份的(写变读,读变写;主降从,从升主等等) 集群对外提供服务的时候,对于外界来说,集群中节点身份变换的时候需要对外透明,外界无需因为集群节点的身份变换而更改配置,这就需要一个解耦合的服务。
作者:波斯码 来源:http://blog.bossma.cn/consul/consul-service-register-and-discovery-style/?hmsr=toutiao.io&
可以启动一个server和多个agent(此处是一个),然后让agent,join到consul集群中
本篇已加入《.NET Core on K8S学习实践系列文章索引》,可以点击查看更多容器化技术相关系列文章。
搭建基础环境 官方文档中演示时用到了五台主机/虚拟机; 这里因为资源有限,只用三台; 创建虚拟机(可以用主机,也可以用虚拟机); 安装Ubuntu 16.04 Server amd64系统(系统版本最
如果你对微服务有了解,那么你看肯定知道,一个项目中微服务的数量可能上千,随着服务数量的越来越多,服务与服务之间的通信变得越来越复杂,我们的微服务也变得超级难管理,所以今天我给大家分享我在学习时的一篇笔记,如何设计出高可用的Dcoker服务架构,此架构可以自动发现进行注册,利用consul可以轻易的在众多服务中哪个服务出现了问题。以下代码本人亲测可用,环境为centos7,需要两台虚拟机一台用途为Registor Zabbix(192.168.10.252)一台Consul(192.168.10.253)
前面一篇说到了Docker管理工具-Swarm部署记录,基于这个环境,下面记录下Docker可视化界面部署过程: 1)下载相关惊喜 manager-node节点(182.48.115.237) [root@manager-node ~]# docker pull progrium/consul [root@manager-node ~]# docker pull rethinkdb [root@manager-node ~]# docker pull shipyard/shipyard [root@ma
1、在1台主机上运行consul docker run -d -p 8500:8500 -h consul --name consul progrium/consul -server -bootstrap 2、另外两台主机修改docker配置文件:docker.service
根据镜像OFFICIAL标签判断,位列第一、名字为jenkins的是 Jenkins 官方提供的镜像。我们是不是应该使用这个官方镜像呢?
2020年在匆匆忙忙慌慌乱乱中就这么度过了,我们迎来了新一年,互联网的发展如此之快,技术日新月异,更新迭代成为了这个时代的代名词,坚持下来的技术体系会越来越健壮,JVM作为如今是跳槽大厂必备的技能,如果你还没掌握,更别提之后更新的新技术了。
本文是我关于Ocelot系列文章的第三篇,主要是给大家介绍Ocelot的另一功能。与其说是给大家介绍,不如说是我们一起来共同探讨,因为我也是在一边学习实践的过程中,顺便把学习的过程记录下来罢了。 正如本文要介绍的服务发现,在Ocelot中本该是一个较小的功能,但也许大家也注意到,这篇文章距离我的上一篇文章也有一个星期了。主要是因为Ocelot的服务发现支持提供程序Consul,而我对Consul并不怎么了解,因此花了比较长的时间去倒弄Consul。因为这个是关于Ocelot的系列文章,所以我暂时也不打算在本文中详细介绍Consul的功能以及搭建过程了,可能会在完成Ocelot系列文章后,再整理一篇关于Consul的文章。
随着测试行业的整体发展,测试人员所要掌握的技能已经不局限于单纯的软件测试方面,而是更多的趋向于开发、运维、安全等等的方向。其中测试环境的搭建与部署也承担着部分运维方面的工作职责。
本示例使用前几天分享的项目把AAStore.ProductCatalog.Api,选中项目右键->添加->Docker支持,就会看到生产的Dockerfile文件
本次演示环境,我是在虚拟机上安装 Linux 系统来执行操作,以下是安装的软件及版本:
一、安装prometheus 安装包下载地址:https://prometheus.io/download/
虽然说牛逼的公司都有那么几个牛逼的运维团队,牛逼的运维团队都有着神秘黑科技般敲代码的姿势;本人虽然不是一个运维工程师,但是自己比较爱倒腾这些东西,会那么一点点运维姿势,虽然不算专业,但是还是可以在linux平台下敲一敲代码。去年由于自己业余时间搞了一个app项目,当时自己兼任后端开发,又同时兼任运维,经过多少个夜晚才把后端API网关 搭建起来,当时技术选型主要使用微服务架构,说到微服务架构,也就少不了分布式集群,那就更少不了Consul 。今天搭建Consul 服务也是为了自己后面的学习和分享使用(之前在生产环境搭建过,本来可以直接拿来用,只是后面应用停掉了,服务器也就下掉了),故特意把前几天阿里云活动价买的服务器用起来,准备再次搭建Consul服务,以供后续方便拿来即用。
上一篇【.Net Core微服务入门全纪录(一)——项目搭建】讲到要做到服务的灵活伸缩,那么需要有一种机制来实现它,这个机制就是服务注册与发现。当然这也并不是必要的,如果你的服务实例很少,并且很稳定,那么就没有必要使用服务注册与发现。
在Dapr 文档和实践案例中多是推荐采用k8s, 其实我目前也是在k8s 上操作的,有公有云TKE,AKS,还有私有云的Rancher ,它并没有传闻中的那么难,而且我认为它非常容易上手。不过,我还是有很多人不愿意使用k8s 。那么在虚拟机场景下如何使用Dapr呢? 当然也有虚拟机部署的案例,比如2021年第一届DaprConf 上分享的Dapr case study: Man Group:https://blog.dapr.io/posts/2021/10/05/join-us-for-daprcon-october-19th-20th-2021/
基于目前存在很多MySQL数据库单点故障,传统的MHA,PXC等方案用VIP或者DNS切换的方式可以实现、基于数据库的数据强一致性考虑,采用MGR集群,采用consul服务注册发现实现应用端通过动态DNS 访问MGR集群,实现数据库高可用,自动化切换的方案。
Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案,Consul的方案更"一站式",内置了服务注册与发现框 架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,不再需要依赖其他工具(比如ZooKeeper等)。使用起来也较 为简单。Consul用Golang实现,因此具有天然可移植性(支持Linux、windows和Mac OS X);安装包仅包含一个可执行文件,方便部署,与Docker等轻量级容器可无缝配合。 Co
如果是主动退出服务,会执行取消注册的方法,好处是比心跳响应更快,但是心跳也是必不可少的,因为在微服务中,各种网络原因都有可能导致服务异常中断。
Api网关我们之前是用 .netcore写的 Ocelot的,使用后并没有完全达到我们的预期,花了些时间了解后觉得kong可能是个更合适的选择。
背景 凭借敏捷开发部署理念的推行,相信对于很多人来说docker这项容器技术已经并不陌生,Docker 1.12引擎发布了快两个月,新引擎中包含了许多特性。诸如: Swarm模式,容器集群的健康检查,节点的身份加密,docker Service API调用,容器启动的过滤匹配方式(constraint), docker的内建路由,以及支持在多平台系统上运行docker(MAC、Windows、AWS、AZURE),以及一些插件升级等等. 特性之多,就连Docker 自己的产品经理也表示这次的新版本可能是公司
上一篇提到,项目用的分布式服务发现与注册组件是consul,这篇文章主要来讲下consul组件在项目中的应用以及相关介绍。本文以官方文档为主要参考consul文档。 1. consul介绍 consul是一个服务管理软件,主要功能如下: 支持多数据中心下,分布式高可用的,服务发现和配置共享。 consul支持健康检查,允许存储键值对。 一致性协议采用 Raft算法,用来保证服务的高可用。 成员管理和消息广播采用 GOSSIP协议,支持ACL访问控制。 1.1 服务注册与发现 服务注册是一个服务将其位置信息在
kplcloud是一个基于Kubernetes的轻量级PaaS平台,通过可视化的界面对应用进行管理,降低应用容器化的对度,从而减少应用容器化的时间成本。
1.从GitHub上下载ambari文件到本地,https://github.com/sequenceiq/docker-ambari
内置跨主机的网络通信一直是Docker备受期待的功能,在1.9版本之前,社区中就已经有许多第三方的工具或方法尝试解决这个问题,例如Macvlan、Pipework、Flannel、Weave等。
本文将介绍如何使用Docker Compose搭建Istio。Istio号称支持多种平台(不仅仅Kubernetes)。然而,官网上非基于Kubernetes的教程仿佛不是亲儿子,写得非常随便,不仅缺了一些内容,而且还有坑。本文希望能补实这些内容。我认为在学习Istio的过程中,相比于Kubernetes,使用Docker Compose部署更能深刻地理解Istio各个组件的用处以及他们的交互关系。在理解了这些后,可以在其他环境,甚至直接在虚拟机上部署Istio。当然,生产环境建议使用Kubernetes等成熟的容器框架。
Registrator监控新建的Docker容器,并且检查判定这些容器提供的服务。从我们的目的出发,任何监听在某个端口的程序都是服务。Registrator发现在容器内发现的任务服务,都将被添加到一个服务注册端,比如Consul或etcd。 在这个教程中,我们将使用Registrator和Consul,运行一个Redis容器并自动添加到Consul。
微服务 是将单一的应用程序拆分成多个微小的服务,各个小服务之间松耦合,高内聚,每个小的服务可以单独进行开发,不依赖于具体的编程语言,也可以使用不同的数据存储技术,各个服务可以独立部署,拥有各自的进程,相互之间通过轻量化的机制进行通信(如基于HTTP的API接口),所有的服务共同实现具体的业务功能。
上一篇【.Net Core微服务入门全纪录(七)——IdentityServer4-授权认证】中使用IdentityServer4完成了鉴权中心的搭建,配合网关实现了统一的授权认证。进行到这里,系统环境已经比较复杂了,想把整个系统运行起来会非常繁琐:要运行Consul、业务服务、网关、鉴权中心、web客户端,还要安装数据库、MQ等等。。。那么本篇将使用Docker Compose来解决以上问题,仅需一个简单的命令,即可启动整个环境。
相关源码:https://github.com/SkyChenSky/Sikiro
上一次我们介绍了 Ocelot 网关的基本用法。这次我们开始介绍服务注册发现组件 Consul 的简单使用方法。
TSF 全称是腾讯微服务平台 (Tencent Service Framework),它在我的理解中就是整合了微服务组件的各个功能的一站式部署与管理平台,这个平台本身也是免费的,你需要付费的是云服务器的费用。如果你的应用想上云,而且是微服务,不妨考虑TSF,不仅可以减少你的代码开发量而且提供了运维界面。
Go Micro还提供了Sidecar等功能。这使您可以使用Go以外的语言编写的服务 Sidecar提供服务注册,gRPC编码/解码和HTTP处理程序。它支持多种语言。
在服务发现和注册的基础上,本文将引入 Nginx反向代理服务器和 Consul-template[1] 组件,实现动态的服务负载均衡。
可见通过投票自动选举出103为主节点,104为备份节点,主节点是投票选出的而不是谁先加入谁就一定是主节点,103和104上都有运行中的容器,但目前还看不到,因为没有安装swarm代理节点
因为牵扯到自动注册服务,需要在脚本中使用linux命令,所以不使用docker方式启动consul,直接使用下载安装包,命令启动,具体如下:
领取专属 10元无门槛券
手把手带您无忧上云