介绍使用dockerswarm+consul+ocelot对asp netcore服务进行集群,发现和网关认证
swarm是docker官方下的服务编排组件,上手简单,能快速地进行服务的集群发布。
在集群中使用consul进行服务发现与注册
环境
window10环境下hyper-v中使用docker-machine创建三个 Docker 主机,并使用docker swarm加入到集群中
- manager管理节点ip为10.0.0.126
- work1工作节点ip为10.0.0.112
- work2工作节点ip为10.0.0.113
user_service和product_service服务部署于三个节点中,consulserver、ocelotgateway、identity_service和simpleclient服务部署在manager管理节点中
其中user_service用户服务,product_service产品服务,ocelotgateway路由网关,identity_service认证服务,consulserver服务注册与发现,simpleclient访问客户端
简述
docker swarm是docker官方下的服务编排组件,上手简单,能快速地进行服务的集群发布。
swarm集群中使用endpoint_mode的dnsrr模式对各主机节点进行负载均衡,默认采用轮询方式
在集群中使用consul进行服务发现与注册,user_service和product_service服务会向consul服务进行注册,在product_service中会使用consul的服务发现api调用user_service服务
ocelot服务作为网关对user_service和product_service服务进行路由,并集成identity_service服务的认证
代码
步骤
进入manager管理节点,创建并编辑dockerSwarm.yml
进入manager管理节点
|
|
创建并编辑dockerSwarm.yml
|
|
使用docker stack命令发布服务
|
|
查看consul的UI中的服务
使用客户端访问经过ocelot网关认证(密码模式)的product服务信息
http://10.0.0.126:8821/product/ownerpassword
使用客户端访问的经过ocelot认证(密码模式)的Product服务中user信息
http://10.0.0.126:8821/product/userinfo
dockerSwarm.yml 文件
|
|