Docker简单部署Traefik微服务网关

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
简介: Docker简单部署Traefik微服务网关

什么是Traefik?

Traefik 是一款开源的反向代理与负载均衡工具,它监听后端的变化并自动更新服务配置。Traefik 最大的优点是能够与常见的微服务系统直接整合,可以实现自动化动态配置。目前支持 Docker、Swarm,Marathon、Mesos、Kubernetes、Consul、Etcd、Zookeeper、BoltDB 和 Rest API 等后端模型。

什么是微服务网关?

微服务网关是整个微服务API请求的入口,可以实现过滤Api接口。并且可以实现用户的验证登录、解决跨域、日志拦截、权限控制、限流、熔断、负载均衡、黑名单与白名单机制等。

Docker部署服务器

  1. Consul (测试的版本为v1.11.4)
docker pull bitnami/consul:latest
docker pull bitnami/consul-exporter:latest
docker run -itd \
--name consul-server-standalone \
-p8300:8300 \
-p8500:8500 \
-p8600:8600/udp \
-eCONSUL_BIND_INTERFACE='eth0' \
-eCONSUL_AGENT_MODE=server \
-eCONSUL_ENABLE_UI=true \
-eCONSUL_BOOTSTRAP_EXPECT=1 \
-eCONSUL_CLIENT_LAN_ADDRESS=0.0.0.0 \
    bitnami/consul:latest
  1. Traefik (测试的版本为v2.5.6)
docker pull traefik:latest
docker run -itd`    --name traefik-server `--link consul-server-standalone `    --add-host=host.docker.internal:host-gateway `-p8080:8080 `    -p 80:80 `-v /var/run/docker.sock:/var/run/docker.sock `    traefik:latest --api.insecure=true --providers.consul.endpoints="consul-server-standalone:8500"

管理后台

加入路由配置

在这里我使用了Consul作为远程配置中心,配置以KV的方式存储,可登陆consul的管理后台添加配置,Traefik默认是监控配置改变的。

traefik/http/routers/myrouter-1/rule PathPrefix('/')
traefik/http/routers/myrouter-1/entryPoints/0 http
traefik/http/routers/myrouter-1/service myservice-1
traefik/http/services/myservice-1/loadbalancer/servers/0/url http://host.docker.internal:8100

简单的Go服务示例

packagemainimport (
"fmt""net/http")
funcHelloHandle(whttp.ResponseWriter, r*http.Request)  {
_, _=fmt.Fprint(w, "hello kitty")
}
funcmain() {
http.HandleFunc("/hello", HelloHandle)
ife :=http.ListenAndServe(":8100", nil); e!=nil{
panic(e.Error())
    }
  • 原始服务器的访问地址是:http://localhost:8100/hello
  • 通过网关访问的地址是:http://localhost/hello

注意的点

  • 在这里我使用了Consul作为远程配置中心,另外Etcd等也可以。
  • 因为我网关跑在了Docker下,而http服务器跑在了宿主机上,因此需要--add-host=host.docker.internal:host-gateway以期Traefik能够访问宿主机。
目录
相关文章
|
18天前
|
缓存 负载均衡 JavaScript
探索微服务架构下的API网关模式
【10月更文挑战第37天】在微服务架构的海洋中,API网关犹如一座灯塔,指引着服务的航向。它不仅是客户端请求的集散地,更是后端微服务的守门人。本文将深入探讨API网关的设计哲学、核心功能以及它在微服务生态中扮演的角色,同时通过实际代码示例,揭示如何实现一个高效、可靠的API网关。
|
20天前
|
运维 Kubernetes Docker
利用Docker和Kubernetes构建微服务架构
利用Docker和Kubernetes构建微服务架构
|
19天前
|
人工智能 API 数据安全/隐私保护
使用 Docker 一键免费部署 63.8k 的私人 ChatGPT 网页应用
NextChat 是一个可以在 GitHub 上一键免费部署的私人 ChatGPT 网页应用,支持 GPT3、GPT4 和 Gemini Pro 模型。该项目在 GitHub 上获得了 63.8k 的 star 数。部署简单,只需拉取 Docker 镜像并运行容器,设置 API Key 后即可使用。此外,NextChat 还提供了预设角色的面具功能,方便用户快速创建对话。
90 22
使用 Docker 一键免费部署 63.8k 的私人 ChatGPT 网页应用
|
16天前
|
负载均衡 监控 API
dotnet微服务之API网关Ocelot
Ocelot 是一个基于 .NET 的 API 网关,适用于微服务架构。本文介绍了如何创建一个 Web API 项目并使用 Ocelot 进行 API 请求路由、负载均衡等。通过配置 `ocelot.json` 和修改 `Program.cs`,实现对 `GoodApi` 和 `OrderApi` 两个项目的路由管理。最终,通过访问 `https://localhost:7122/good/Hello` 和 `https://localhost:7122/order/Hello` 验证配置成功。
25 1
dotnet微服务之API网关Ocelot
|
18天前
|
安全 持续交付 Docker
微服务架构和 Docker 容器化部署的优点是什么?
微服务架构和 Docker 容器化部署的优点是什么?
|
19天前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 云原生 API 网关 2024 年 10 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
|
20天前
|
运维 开发者 Docker
Docker Compose:简化容器化应用的部署与管理
Docker Compose:简化容器化应用的部署与管理
|
20天前
|
Docker 微服务 容器
使用Docker Compose实现微服务架构的快速部署
使用Docker Compose实现微服务架构的快速部署
46 1
|
20天前
|
前端开发 开发者 Docker
深入探索Docker Compose:简化多容器应用的部署
深入探索Docker Compose:简化多容器应用的部署
54 0
|
21天前
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
79 6