翻译:The Getting Started of Traefik

    xiaoxiao2023-07-08  147

    翻译:The Getting Started of Traefik

    概述特色支持的供应商Traefik快速开始(使用docker)1.---启动Traefik并让他监听docker2.---启动服务,Traefik检测到它,并为你创建一个路由。3.---启动更多的实列,Traefik用对它们进行负载均衡4.---享受Traefik的魔力 资源下载安全性 Traefik是一个现代的HTTP反向代理和负载均衡,便捷微服务的部署。Traefik将整合你现有的基础设施组件(Docker,Swarm mode,Kubernetes,Marathon,Consul,Etcd,Rancher,Amazon ECS,)等等,并自动的动态进行自我配置。将你的服务指向Traefik应是你所需要的唯一配置步骤。


    概述

    假设您已经在编排器(如:Swarm或Kubernetes)或服务注册表(如etcd或consul)的帮助下部署了一系列微服务。现在你想让用户进入这些微服务,所以你会需要一个反向代理。

    传统的反向代理服务器需要您配置所有的会连接到每个微服务的路径或子域的路由。在一个每天需要多次添加,删除,终止,升级或拓展服务的环境中,将路由保持在最新状态的任务变得单调乏味。

    这个时候Traefik就可以帮助你!

    Traefik监听你的服务注册表或编排器的API,并立即生产路由,这样你的微服务就可以连接刀外面的世界而无需你进一步的干涉。

    运行Traefik,让它为你工作!(但如果你更愿意手动配置路由,Traefik也支持这一点)

    特色

    连续不断的更新配置(无需重启)支持多种负载平衡算法通过let’s encrypt(支持通配符证书)为你的微服务提供HTTPS断路器,可重试集群下的高可用(BETA测试版)通过干净的web UI界面,让你见识到它的魔力Websocket, HTTP/2, GRPC 准备就绪提供指标(Rest, Prometheus, Datadog, Statsd, InfluxDB)保留访问日志(JSON,CLF)快速暴露一个Rest API打包成了一个单一二进制文件(made with ❤️ with go),也可以使用一个轻量的官方docker镜像

    支持的供应商

    Docker / Swarm modeKubernetesMesos / MarathonRancher (API, Metadata)Azure Service FabricConsul CatalogConsul / Etcd / Zookeeper / BoltDBEurekaAmazon ECSAmazon DynamoDBFileRest

    Traefik快速开始(使用docker)

    在这个快速启动中,我们将使用docker compose 来创建我们的demo基础服务。

    为了节省时间,你可以克隆Traefik仓库并使用 examples/quickstart 目录下的快速开始文件。


    1.—启动Traefik并让他监听docker

    创建一个docker-compose.yml文件,你可以用Traefik的官方镜像在文件中定义一个reverse-proxy服务:

    version: '3' services: reverse-proxy: image: traefik # Traefik的官方镜像 command: --api --docker # 使用web UI并监听dokcer ports: - "80:80" # HTTP端口 - "8080:8080" # Web UI端口 (通过 --api 开启) volumes: - /var/run/docker.sock:/var/run/docker.sock #让Traefik监听docker事件

    警告:使用–api 命令开启web ui将会暴露配置元素。你可以在这里了解更多

    就是这样,现在你可以运行Traefik了 使用下面的命令启动你的reverse-proxy docker-compose up -d reverse-proxy 现在你可以打开浏览器并访问http://localhost:8080查看Traefik的仪表盘(在步骤2中启动服务后,我们将会返回到这里)

    2.—启动服务,Traefik检测到它,并为你创建一个路由。

    现在我们已经部署运行了一个Traefik实例,接下来我们将部署新服务。

    编辑你的docker-compose.yml文件,并把下面这些东西加到你的文件末尾:

    # ... whoami: image: containous/whoami # A container that exposes an API to show its IP address labels: - "traefik.frontend.rule=Host:whoami.docker.localhost"

    上面定义了Whoami:一个简单的web 服务,它输出关于它所部署机器的(IP地址,主机等)信息。

    使用下面的命令启动Whoami服务: docker-compose up -d whoami 返回你的浏览器(http://localhost:8080)查看Traefik是否已经自动的检测到新的容器,并更新它的配置信息。

    当Traefik检测到新的服务,它会创建响应的路由,这样你就可以调用它们…让我们来看一下(这里,我们使用curl命令): curl -H Host:whoami.docker.localhost http://127.0.0.1 展示下面的输出:

    Hostname: 8656c8ddca6c IP: 172.27.0.3 #...

    3.—启动更多的实列,Traefik用对它们进行负载均衡

    通过下面的命令启动更多的whoami服务: docker-compose scale whoami=2 返回你的浏览器(http://localhost:8080)并查看Traefik是否已经自动的检测到这些新容器的实列。

    最后,通过运行两次下面的命令,查看你服务的两个实列: curl -H Host:whoami.docker.localhost http://127.0.0.1 输出将显示以下两者之一:

    Hostname: 8656c8ddca6c IP: 172.27.0.3 #... Hostname: 8458f154e1f1 IP: 172.27.0.4 # ...

    4.—享受Traefik的魔力

    现在,你对Traefik怎样自动的创建路由到你的服务并负载均衡他们有了一个初步的了解,那么是时候学习深入了解的文档,让Traefik为你工作!无论你的基础服务是什么,都会有一个可用的Traefik供应商来实现该任务。

    我们建议你亲自使用专用的用户指南来了解一下Traefik的let’s encrypt整合开启https是多么的简单


    资源

    这是埃米尔·沃格在2017年Gophercon的演讲。您将在不到10分钟的时间内学习Traefik基础知识。

    Traefik GopherCon 2017

    这是EdRobinson在英国容器微服务会议上的演讲。您将学习基本的Traefik功能,并看到一些Kubernetes演示。 Traefik ContainerCamp UK


    下载

    官方二进制包 你可以在这个网页拿到最新版的二进制包:地址 并用这个配置模板运行:地址 ./traefik -c traefik.toml

    官方docker镜像 使用最小的docker镜像: docker run -d -p 8080:8080 -p 80:80 -v $PWD/traefik.toml:/etc/traefik/traefik.toml traefik


    安全性

    安全咨询 我们强烈建议你加入我们的邮箱列表,以了解我们安全团队的最新公告。你可以向这个邮箱security+subscribe@traefik.io发送邮件来订阅,或在线查看:地址CVE 报告的漏洞可以在cve.mitre.org找到报告漏洞 我们希望Traefik对每个人的安全性。如果您在使用Traefik的过程中发现了安全漏洞,并将该漏洞通个此表单的形式纰漏给我们,我们会非常感谢您。表单在这里:表单
    最新回复(0)