本篇文章聊聊如何通过 Docker 容器使用 Traefik,进行稳定的 Traefik 服务的部署。
写在前面
距离 Traefik v2.0.0 的发布,不知不觉快四年了,在过去的四年里,我写过非常多和 Traefik 相关的实践内容,感兴趣的同学可以翻阅这里。
上个月官方 Traefik 3.0.0 第三个 beta 版本的发布,3.0 新版本的代码被第二次正式合并进主干分支,距离我们能够正式使用到 3.0 版本,也越来越近了。
相较一个季度前的版本,目前 Traefik 版本变化应该已经接近稳定,为了后面更简单的切换到新版本,或许是时候开始尝试服务迁移了。
正好,尝试详细的写一篇使用 Docker 来使用 Traefik 的内容,帮助还没有入门的同学,或者使用但是还不熟悉的同学查缺补漏。
Traefik 的 Docker 基础容器配置
在展开详细的 Traefik 容器配置和优化调整之前,我们需要先来看看最简的容器配置是什么样的。
Traefik 的 Docker 最简容器配置
最基础的配置不到十行,我们只需要声明 Traefik 服务使用的容器镜像、使用和对外暴露的端口号、以及基础的命令行参数即可。
但是,这个容器只能够提供我们查看 Traefik Dashboard 和默认的内部“服务”,不能够提供神奇的“服务发现”和各种“高级自定义”或“服务可观测性”等功能。
所以,我们还需要继续进行配置扩展和调整。
使用 Traefik 进行服务域名绑定
Traefik 最擅长的能力是提供服务发现,即让能够提供对外网络访问能力(HTTP/TCP)的服务使用域名和具体的 URL 地址允许用户访问。
假设我们上文中使用 localhost:8080/dashboard 访问的 Dashboard 是一个正式的服务,有正式的域名,没有“非正式”的端口号,在使用 Traefik 能力的情况下该如何做呢?
比如,我们要使用 traefik.console.lab.io 这个域名来访问上面的服务,那么首先要确保这个域名的指向是 Traefik 服务的网络 IP 地址。你可以通过 DNS 管理工具(包括各种云服务商的网页控制面板)来调整,或者如果你的 Traefik 服务运行在本地,可以修改 /etc/hosts 来完成第一步前置条件。

回复 admin 取消回复