一文读懂 Traefik Hub
Hello folks,今天我们介绍一下 Traefik 生态中的“革命性产物”——Traefik Hub 云原生网络平台。(注:其与 Traefik Proxy 2.7 及更高版本兼容,早期版本不支持)
这是一个云原生网络平台,可帮助立即发布、保护和扩展边缘容器。Traefik Hub 为在 Kubernetes 或任何其他编排器上运行的服务提供了一个网关!
作为一款 SaaS 网络控制平面,Traefik Hub 可以轻松地进行边缘大规模发布和容器保护。其所具备的集成和自动化的解决方案使得都能通过现代访问控制(如OpenID Connect(OIDC))快速暴露微服务。那么,究竟什么是 Traefik Hub ?
Traefik Hub 概述
首先,Traefik Hub 作为一个云原生网络平台,可帮助我们能够进行立即发布、保护和扩展边缘容器。它提供从用户到容器的端到端连接,以及进入所构建的每个服务的网关。这是一个在分布式系统中将多个集群联网的统一解决方案,它通过一个简单易用的仪表板整合了网络堆栈的众多层。
其次,Traefik Hub 是一个开箱即用的解决方案,易于学习,甚至易于实施。开发团队只需单击一下即可将应用程序发布到互联网,并自动配置重要的安全实践。Traefik Hub 鼓励团队之间的合作,允许他们从小规模开始,扩展到多个集群。Traefik Hub 简化了现代分布式系统与生俱来的挑战。
最后,除上述功能之外,Traefik Hub 也具有开源代理,我们可以安装在 Kubernetes 或 Docker 环境中,以扩展现有的 Traefik 或 Nginx 入口。
接下来,我们来了解一下 Traefik Hub 的工作原理。
Traefik Hub 原理
本质上讲,Traefik Hub 适用于一切的 Kubernetes 或 Docker 集群。可降其完全托管的于我们所构建的基础设施平台之上,并与所设置的每个集群中安装的代理连接。代理然后附加到入口实例。由其充当进入应用服务的网关,一个独特而安全的入口点。该平台向每个代理发送指令并接收关键指标,弥补了 Traefik Proxy 大规模简化云原生网络的能力。
Traefik Hub 网络拓扑架构如下所示:
源自官网
基本功能
基于官方所述,Traefik Hub 具有多种不同的功能,核心功能主要体现在如下几方面,具体:
1、GitOps 一键自动化发布
Traefik Hub 实现了完整的 GitOps 自动化工作流。可以轻松地将任何应用程序发布到对应的环境并对外暴露所访问的入口信息。基于此,我们的技术团队可以安装、配置和管理他们的云原生网络堆栈,Hub 作为控制平面,完全自动化提供可重复的周期,以增加部署频率、可预测性和可审计性,以确保组织能够识别更改的内容、时间和原因,并收集相关指标数据。
除此之外,Traefik Hub 开源代理会自动发现服务,允许我们选择要发布的服务,选择端口(或让 Traefik Hub 自动检测它),访问控制策略(如果愿意),然后从互联网上的任何地方直接建立基于 WebSocket 的隧道直接到所选服务。
2、容器实例安全
基于 Traefik Hub,我们的容器在发布和访问时都是安全的。该平台通过私有加密隧道与代理连接,该隧道允许发布服务,而无需担心公共 IP 或 NAT 配置。同时,其附带一系列易于使用的安全相关功能,而无需更改所应用的技术堆栈或重新部署服务:
(1)加快 Traefik 或 Nginx 社区版部署的现代访问控制部署,如 OIDC,以轻松控制谁可以访问服务。无论是否通过我们的隧道发布,这些访问控制策略都可以添加到这两种服务中。
(2)使用 Traefik Hub 的安全直接连接,最大限度地减少对暴露容器的攻击。
(3)使用我们的深度 Let's Encrypt TLS 生命周期集成实现 HTTP 证书自动化管理与维护等。
3、灵活扩展性
集中且易于使用的 Hub 平台允许我们将部署无缝扩展到多个集群。仪表板中提供了有关已发布集群的配置、入站流量和运行状况的任何问题。重要指标,如每秒请求数、平均响应时间和每秒请求错误,都很容易访问。作为一个简单统一的网络工具,Traefik Hub 允许我们在部署的同时拓展更多的集群网络规模。
除了上述功能,Traefik Hub 还具备其他功能,例如,基于其所附带共享工作区和高级基于角色的访问控制(RBAC)进行项目协作,从而提高效率等。
Traefik Hub 使用指南
接下来,我们就迈入开始使用 Traefik Hub 环节,总体来说,Traefik Hub 很容易上手。我们所要做的就是创建一个帐户并在集群上安装 Hub 代理(只需确保所部属的集群已经有一个 Traefik 代理实例)。基于此,可以让 Hub 发现我们的服务,然后选择要发布的服务。
这块,我用 Github 账户登录,具体地址为: https://hub.traefik.io/. 进入后,页面一目了然,如下所示:
进入首页后,将会看到整个 Traefik Hub 页面主要包含仪表盘、代理、服务及访问控制等 4 大组件。接下来,我们安装第一个 Traefik Hub 代理。关于此组件的安装,我们可以基于 Kubernetes、Docker、Docker-compose 和 Docker-swarm 等平台完成,具体的安装详细步骤暂不在本文中赘述。需要注意的是,Traefik Proxy 和 Hub 都需要安装部署,才能完成后续的操作部署。
此处,为了本地验证,我们可以选择基于 Docker 或 Docker-compose 运行,切换后的界面显示如下所示:
为方便、快捷,我们可以将如上的脚本 CP下来在本地环境中运行。再次回到窗体时显示如下:
基于此,无论如何,一旦容器成功运行,Traefik Hub 控制平面便会检测到新代理,然后,会要求我们对此代理进行重命名。这里,我们保持默认不变,然后转到详细页面,如下所示:
在代理详细信息中,我们可以看到它找到了 3 个容器。我们还可以创建策略,以应用于连接到此代理的服务。
目前,基于当前的平台控制,有两种核心策略可供我们使用。一个是 BasicAuth,另一个是 Traefik Enterprise JWT Auth。
此时,我们来创建的第一个容器,命名为 devops,完成后页面显示如下:
点击 devops ,进入详细的服务发布页面,如下所示:
然后进入发布配置页面,涉及基础配置及附加的高级配置,完成后,创建一个 BasicAuth 中间件并将其应用于服务。我们基于 devops,新建一个用于服务发布的服务 devops1 ,服务内容保持不变,先不进行授权控制操作,如下所示:
发布成功后,页面自动跳转至如下:
此时,点击所发布服务对应的 URL 或复制在浏览器访问:https://occupational-marmoset-xfnone.mv0jdsgf.traefikhub.io/ ,显示如下信息:
与此同时,我们在后台通过命令行进行验证,如下所示:
[leonli@Leons-MacBook-Air usr] % curl -i https://occupational-marmoset-xfnone.mv0jdsgf.traefikhub.io/
HTTP/2 200
content-type: application/json; charset=utf-8
date: Fri, 9 Sep 2022 08:06:10 GMT
etag: W/"30e-DTDfGIkORcaKE2wk3afTkc9aLNA"
content-length: 782
{"host":{"hostname":"occupational-marmoset-xfnone.mv0jdsgf.traefikhub.io","ip":"::ffff:172.23.0.2","ips":[]},"http":{"method":"GET","baseUrl":"","originalUrl":"/","protocol":"http"},"request":{"params":{"0":"/"},"query":{},"cookies":{},"body":{},"headers":{"host":"occupational-marmoset-xfnone.mv0jdsgf.traefikhub.io","user-agent":"curl/7.84.0","accept":"*/*","x-forwarded-for":"172.23.0.3","x-forwarded-host":"occupational-marmoset-xfnone.mv0jdsgf.traefikhub.io","x-forwarded-port":"443","x-forwarded-proto":"https","x-forwarded-server":"5a7b831a229b","x-real-ip":"172.23.0.3","accept-encoding":"gzip"}},"environment":{"PATH":"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","HOSTNAME":"337a1409440f","NODE_VERSION":"16.16.0","YARN_VERSION":"1.22.19","HOME":"/root"}}%
然后,针对 devops1 服务进行 BasicAuth 中间件创建,并将其应用于服务。然后使其生效,此时进行访问,出现如下页面:
此时,我们输入之前所创建的账户信息,admin/admin,然后进行登录操作,具体如下:
与此同时,我们再一次地在后台通过命令行进行验证,如下所示:
[leonli@Leons-MacBook-Air usr] % curl -i https://occupational-marmoset-xfnone.mv0jdsgf.traefikhub.io/
HTTP/2 401
content-type: text/plain
date: Fri, 9 Sep 2022 08:49:10 GMT
www-authenticate: Basic realm="hub"
content-length: 17
401 Unauthorized
与上述结果一致,表明我们所设置的 BasicAuth 授权访问策略已生效,针对其他的两种策略 JWT 和 OIDC 将在后续的文章中描述。
针对此服务的相关性能指标情况,页面也予以展示,具体如下图所示:
是不是爽爆了,当然,新产品的问世肯定也存在不少缺陷之处,例如,自定义域、TCP 连接以及其他可支撑的机制。当然,可能基于不同的需求而进行适应性提供,无论如何,还是希望这个平台能够健康、稳定发展下去。
如上为 Traefik Hub 的相关内容解析,希望对大家有用。关于 Traefik Hub 更多需要了解的信息,有兴趣的话,大家可以查看发布说明或者官方文档以及访问论坛,探索所有最新的社区主题。
Adiós !
- EOF -
若您对文章感兴趣,更多的文章可关注如下公众号赏阅,谢谢!
一文读懂 Traefik Hub相关推荐
- 一文读懂 Traefik v 2.6 企业版新特性
Traefik Enterprise 是一种统一的云原生网络解决方案,将 API 管理.入口控制和服务网格整合到一个简单的控制平面中.Traefik Enterprise 为整个组织的开发人员和运营团 ...
- 从实验室走向大众,一文读懂Nanopore测序技术的发展及应用
关键词/Nanopore测序技术 文/基因慧 随着基因测序技术不断突破,二代测序的发展也将基因检测成本大幅降低.理想的测序方法,是对原始DNA模板进行直接.准确的测序,消除PCR扩增带来的偏差, ...
- 一文读懂Faster RCNN
来源:信息网络工程研究中心本文约7500字,建议阅读10+分钟 本文从四个切入点为你介绍Faster R-CNN网络. 经过R-CNN和Fast RCNN的积淀,Ross B. Girshick在20 ...
- 福利 | 一文读懂系列文章精选集发布啦!
大数据时代已经悄然到来,越来越多的人希望学习一定的数据思维和技能来武装自己,虽然各种介绍大数据技术的文章每天都扑面而来,但纷繁又零散的知识常常让我们不知该从何入手:同时,为了感谢和回馈读者朋友对数据派 ...
- 一文读懂EfficientDet
一文读懂EfficientDet. 今年年初Google Brain团队在 CVPR 2020 上发布了 EfficientDet目标检测模型, EfficientDet是一系列可扩展的高效的目标检测 ...
- 一文读懂序列建模(deeplearning.ai)之序列模型与注意力机制
https://www.toutiao.com/a6663809864260649485/ 作者:Pulkit Sharma,2019年1月21日 翻译:陈之炎 校对:丁楠雅 本文约11000字,建议 ...
- AI洞观 | 一文读懂英特尔的AI之路
AI洞观 | 一文读懂英特尔的AI之路 https://mp.weixin.qq.com/s/E9NqeywzQ4H2XCFFOFcKXw 11月13日-14日,英特尔人工智能大会(AIDC)在北京召 ...
- 一文读懂机器学习中的模型偏差
一文读懂机器学习中的模型偏差 http://blog.sina.com.cn/s/blog_cfa68e330102yz2c.html 在人工智能(AI)和机器学习(ML)领域,将预测模型参与决策过程 ...
- 一文读懂AI简史:当年各国烧钱许下的愿,有些至今仍未实现
一文读懂AI简史:当年各国烧钱许下的愿,有些至今仍未实现 导读:近日,马云.马化腾.李彦宏等互联网大佬纷纷亮相2018世界人工智能大会,并登台演讲.关于人工智能的现状与未来,他们提出了各自的观点,也引 ...
最新文章
- 能ping通外网的域名,浏览器不能上网的解决办法
- 怎样解决xcode里开发cocos2dx改动lua脚本后不刷新的问题
- mac下server开发环境配置
- 2021暑假实习-SSM超市积分管理系统-day02笔记
- python算法与数据结构-快速排序算法(36)
- 路由器距离向量算法计算举例_路由器基本原理是什么 路由器基本发展情况介绍【图文】...
- json模拟数据怎么用_在使用axios获取自己模拟的json数据是踩到的坑
- Selenium常用API的使用java语言之6-WebDriver常用方法
- 【C语言】编译预处理和宏(附带##介绍)
- QList、QVector、QMap容器类
- 运行后台程序出现[1]+ Exit
- 接口测试工具SoapUI(一)安装和破解
- 在将计算机技术应用于会计工作的初期,所开发的会计核算软件主要用于,2013年会计从业考试《电算化》会计核算软件...
- 工程流体力学笔记暂记33 (边界层动量积分方程)
- 高颜值生物医学在线画图工具
- 情人节 放出了 我囤积的 部分碎片 论点
- C# 常用命名空间说明
- echart 重新加载
- linux的版本(部分转载)
- 【生产调度】基于遗传算法求解柔性生产调度(FJSP)问题含Matlab源码
热门文章
- 敏捷神话1:“敏捷是一种方法论”
- 独立之精神,自由之思想
- 下一代动力电池深度报告,三大技术路线谁能笑到最后?【附下载】| 智东西内参...
- DHL供应链将再投资2.18亿欧元加码中国市场
- CentOS桌面安装
- 关于tarjan的浅解
- WakeupController 走读
- java的平均年龄怎么算,C#接收5个年龄和计算平均年龄
- pythonurllib登录微博账号_简单爬虫实现登录新浪微博(python2.7)
- 《奇特的一生》——致敬时间的神