使用 Traefik Hub 轻松暴露本地 Kubernetes 集群服务

云计算 云原生
Traefik Hub 将完全托管于你的基础架构之上,并与你安装在每个集群中的代理进行连接。代理附加到入口实例。它们充当你的每项服务的网关,该平台向每个代理发送指令并从其接收关键指标。Traefik Hub 适用于 Kubernetes 或 Docker 集群。

Traefik Hub 是一个云原生网络平台,可帮助你即时在边缘发布、保护和扩展容器。它提供了从用户到容器的端到端连接以及进入每个服务的网关。它是用于在分布式系统中连接多个集群的统一解决方案,它通过一个简单易用的仪表板整合了网络堆栈的多个层。Traefik Hub 是一种开箱即用的解决方案,易于学习,甚至更易于实施,开发团队只需单击一下即可将应用程序发布到 Internet,并自动配置重要的安全实践。

Traefik Hub 将完全托管于你的基础架构之上,并与你安装在每个集群中的代理进行连接。代理附加到入口实例。它们充当你的每项服务的网关,该平台向每个代理发送指令并从其接收关键指标。Traefik Hub 适用于 Kubernetes 或 Docker 集群。

图片

特性

一键服务发布

Traefik Hub 使发布和暴露任何应用程序到互联网变得容易。在集群中安装 Hub 代理,选择端口和访问控制策略(或允许 Traefik Hub 为你自动检测),然后单击“暴露服务”。就这么简单。在几秒钟内,你的服务就可以与朋友或同事共享的 DNS 名称直接暴露在互联网上。

容器的高级安全性

使用 Traefik Hub,你的容器在发布和访问时都是安全的。该平台通过私有加密隧道与代理连接,允许你发布服务而无需担心公共 IP 或 NAT 配置。你还可以选择灵活访问和自动证书管理,因为 Traefik Hub 支持 JSON Web 令牌 (JWT) 和基本身份验证。证书管理是云原生安全的另一个关键组件,它在 Traefik Hub 中实现了自动化 Traefik Hub 请求、更新和传播 ACME 证书以保持一致的安全配置。DNS、路由规则、访问控制和 NAT 是自动化的,因此可扩展且不易出现人为错误。

灵活自动扩展到多个集群

集中且易于使用的 Hub 平台可让你将部署无缝扩展到多个集群。你可能对已发布集群的配置、入站流量和运行状况有任何疑问,可以在仪表板中找到。每秒请求数、平均响应时间和每秒请求错误等重要指标都可以轻松访问。作为一个简单而统一的网络工具,Traefik Hub 可让您在部署的同时扩展网络。

使用

Traefik Hub 很容易上手,我们只需要前往网站 http://hub.traefik.io/ 创建一个帐户,然后按照提示操作即可,如下所示。

图片图片

点击 Install my first Traefik Hub Agent 按钮开始安装 Hub 代理即可,这样就可以让 Hub 发现我们平台上的服务,然后选择要发布的服务即可。

比如我们这里准备安装代理在 Kubernetes 集群上,可以选择该平台即可出现对应的安装教程。

图片图片

按照上面的提示在我们的 Kubernetes 集群中安装 Traefik 和代理程序,安装后代理程序就会分析我们的集群信息并将服务发送到 Traefik Hub 上去,正常情况下会在集群中安装一个 Traefik 应用和代理程序,如下所示:

$ kubectl get pods -n hub-agent                                           
NAME READY STATUS RESTARTS AGE
hub-agent-auth-server-855f9c788f-jct9w 1/1 Running 0 19m
hub-agent-auth-server-855f9c788f-lcwh6 1/1 Running 0 19m
hub-agent-auth-server-855f9c788f-vhhlw 1/1 Running 0 19m
hub-agent-controller-5f7b7b48c7-nfz5s 1/1 Running 0 19m
hub-agent-tunnel-54b589f5bf-mlpnr 1/1 Running 0 19m
traefik-hub-57fb857fff-sm8f5 1/1 Running 0 20m
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
traefik-84786bd774-t9p47 1/1 Running 0 21m

安装完成后在 Traefik Hub 的网站上就可以看到我们集群中的 Services 信息,如下图所示:

图片图片

在暴露这些服务时,我们还可以使用 JWT、BasicAuth(以及更多即将推出的)认证方式来保护它们。只需要在页面上面点击 Create a Policy 按钮创建一个访问控制策略,比如我们这里添加一个名为 basic-auth-jenkins 的访问策略,如下图所示:

图片图片

现在我们来将集群中的 jenkins 服务直接发布到外网中去,在 Traefik Hub 的 Dashboard 中找到该服务。

图片图片

我们就可以直接来发布该服务了,点击 Publish the service 按钮,选择我们需要暴露的 Service 端口,如果想限制访问也可以选择前面我们创建的访问策略。

图片

然后点击 Save and Publish 即可,稍等一段时间后我们的服务就会被发布在了 Traefik Hub 上了。

图片

比如我们这里生成的外网地址为 https://distinguished-urial-cwk8f9.fzqj46yl.traefikhub.io,通过该 URL 就可以访问到我们的 Jenkins 服务了。

图片

然后就和正常使用 Jenkins 没任何区别了。

图片图片

当通过上面的 URL 访问我们的应用的时候,在 Traefik Hub 上还可以看到该应用的相关性能指标信息。

图片

在 Dashboard 的首页可以看到我们的 Traefik Hub 的当前统计信息。

图片

不过目前 Traefik Hub 还处于 Beta 状态,在使用过程中还有一些 BUG,比如上面我们关联了一个 Basic Auth 的访问策略,但是在实际测试的过程中发现并没有生效。但是整体上我们可以感受到 Treafik Hub 的强大功能以及发布和保护我们的服务是多么简单。

责任编辑:姜华 来源: k8s技术圈
相关推荐

2020-04-08 13:05:03

TraefikKubernetes树莓派

2022-09-22 12:11:38

PodKubernetes

2022-01-06 07:46:01

Traefik 开源Gateway API

2023-11-07 08:23:05

2023-02-27 07:56:55

IngressKubernetes

2022-06-27 19:16:12

KubernetesK8s 集群

2022-07-07 10:47:16

IngressKubernetes

2020-07-27 18:52:34

Kubernetes集群工具

2022-07-29 16:28:19

Kubernetes通信服务通信

2021-12-28 15:38:46

Traefik中间件插件

2020-07-08 08:03:37

KubernetesLens集群

2023-03-30 09:17:42

KubesprayKubernetesLinux

2018-03-26 14:25:55

KubernetesSkaffold命令

2021-09-27 05:42:44

VeleroKubernetes 公有云

2020-03-09 09:15:56

集群Prometheus开源

2024-03-15 11:27:06

2023-11-13 15:42:07

2022-05-29 22:59:24

Kubernetes

2022-05-25 14:07:35

KubernetesAPI服务器

2020-05-21 08:58:34

Kubernetes操作系统运维
点赞
收藏

51CTO技术栈公众号