网络知识 娱乐 使用 Traefik Hub 轻松暴露本地 Kubernetes 集群服务

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

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

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

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

特性

一键服务发布

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/ 创建一个帐户,然后按照提示操作即可,如下所示。

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

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

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

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

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

$ kubectl get pods -n hub-agent nNAME READY STATUS RESTARTS AGEnhub-agent-auth-server-855f9c788f-jct9w 1/1 Running 0 19mnhub-agent-auth-server-855f9c788f-lcwh6 1/1 Running 0 19mnhub-agent-auth-server-855f9c788f-vhhlw 1/1 Running 0 19mnhub-agent-controller-5f7b7b48c7-nfz5s 1/1 Running 0 19mnhub-agent-tunnel-54b589f5bf-mlpnr 1/1 Running 0 19mntraefik-hub-57fb857fff-sm8f5 1/1 Running 0 20mn$ kubectl get pods nNAME READY STATUS RESTARTS AGEntraefik-84786bd774-t9p47 1/1 Running 0 21mn

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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