一文读懂 Traefik v 2.6 企业版新特性

简介: Traefik Enterprise 是一种统一的云原生网络解决方案,将 API 管理、入口控制和服务网格整合到一个简单的控制平面中。Traefik Enterprise 为整个组织的开发人员和运营团队减轻了微服务网络的复杂性。


    Traefik Enterprise 是一种统一的云原生网络解决方案,将 API 管理、入口控制和服务网格整合到一个简单的控制平面中。Traefik Enterprise 为整个组织的开发人员和运营团队减轻了微服务网络的复杂性。其核心组件:

    1、Ingress Proxies - 入口代理

    入口代理主要为接受来自外部网络的请求并根据自定义规则定义和行为将它们转发至集群上运行的服务的工作节点。

    2、Mesh Proxies - Mesh 代理

    Mesh 代理管理集群上服务之间的内部通信,以便它们可以协同工作,同时提供服务间身份验证、速率限制和流量拆分等功能。

    3、Controllers - 控制器

    控制查询网络基础设施以生成适当的路由配置,然后将其分发至代理节点。除此之外,控制器还存储有关集群的所有数据,通常,可以通过 API 访问这些数据。

    所有 Traefik Enterprise 节点类型都可以通过添加更多节点来水平扩展。它们一起形成了一个高可用性集群,可以自主维护自己的运行状况。

    不仅如此,Traefik Enterprise 也是建立在开源 Traefik Proxy 和 Traefik Mesh 之上,提供独家的一体化、高可用性、可扩展和分布式功能,并结合对生产级部署的高级捆绑支持。



    Traefik Enterprise v2.6 与 2022 年 3 月 上旬正式面向大众,相比半年前发布的 v2.5,此版本是统一云原生网络解决方案的最新更新,也是一个新的里程碑。值得注意的是,此版本的核心要点主要聚焦在 OpenID Connect (OIDC) 层面。在构建、打包机制中,引入了与 ARM64 兼容的 Docker 镜像和二进制文件。现在,让我们深入了解 Traefik Enterprise v2.6 所带来的新功能特性。

    正如之前所述,Traefik Enterprise v2.6 的发布主要聚焦于 OpenID Connect (OIDC) 相关的多项功能改进,涉及 OIDC 状态模式、 Microsoft AD 支持、Vault 命名空间和 API 门户增强功能等。

OIDC 中间件的有状态模式

    Traefik Enterprise v2.6 包括为 OIDC 中间件添加新的有状态模式。之前的 OIDC 中间件提供了无状态选项,要求会话数据与 Cookie 一起存储。 Cookie 可能会变得太大,当它们这样做时会在客户端引入延迟。

    使用新的有状态模式,用户可以将所有会话数据安全地存储在 Traefik Enterprise 外部的 K/V 存储中,完全消除了在客户端应用程序上存储 Cookie 的开销。目前支持的 K/V 存储包括 Consul、Etcd、Zookeeper 和 Redis。启用后,它们可以将用于通过 OIDC 进行身份验证的客户端请求的 Cookie 的总大小从数百 KB 减少到仅几个字节。有状态模式的引入将降低延迟并提高效率。

    接下来,我们基于如下的 OIDC 改进示例来简要了解一下 OIDC 中间件的有状态模式。

    下面为一个如何将 OIDC 配置为使用会话存储的简要示例,其中自定义发现和身份验证参数应用于 Traefik Enterprise 和身份验证服务器之间的授权流。具体配置可参考如下所示:


# Static Configuration
authSources:
  my-oidc-source:
    oidc:
      issuer: "http://my-auth-server-addr/auth/realms/traefik"
      clientID: "demo-app"
      clientSecret: "my-app-secret"
      #Required by Microsoft AD when returning custom claims
      discoveryParams:
        app-id: my-app-id
sessionStorages:
  consulStore:
    consul:
      tls: {}
      endpoints:
        - "my-consul-server:8501"

    动态配置可参考如下所示:


# Dynamic Configuration
http:
  middlewares:
    my-oidc:
      plugin:
        oidcAuth:
          source: my-oidc-source
          scopes:
            - openid
          redirectUrl: "/callback"
          session:
            store: consulStore
            name: "%s-session"
            path: "/"
            secret: my-secret-token
          # Overrides the prompt-consent option during the authorization phase with the IDP
          authParams:
                prompt: none
          forwardHeaders:
            X-Traefik-Group: groups
          claims: Contains(`groups`, `admin`)

支持 Microsoft AD

    Traefik Enterprise v2.6 还带来了两个新的自定义选项,可以覆盖通常的 OIDC 授权流程。在使用自定义声明或启用单点登录时,这些选项改进了与 Microsoft Active Directory (AD) 的集成,而无需用户登录后的授权。

支持 HashiCorp Vault 命名空间

    此版本的 Traefik Enterprise 改进了对 HashiCorp Vault 和 Consul 的支持。它通过支持其名称空间隔离功能来确保与 HashiCorp 的企业产品的兼容性。

    目前,Traefik Enterprise 通过两个独立的集成支持 Vault。首先,Traefik 的证书解析器利用了 Vault PKI 机密引擎。其次,证书存储使用其 K/V 机密引擎。由于没有命名空间配置选项,因此无法连接到使用该功能的 Vault 企业实例,例如 HashiCorp 的托管选项,它默认使用命名空间。

    我们先来看一下 Vault PKI 配置示例,具体如下所示:


certificatesResolvers:
     vaultpki:
       vault:
         url: "https://vault-cluster.mydomain:8200"
         auth:
           token: "my-secret-token"
         enginePath: "pki"
         role: "vault-role"
         namespace: "admin"

    接下来,我们再来看一下 Vault K/V 配置示例,具体可参考如下所示:


plugin:
    vault:
      url: "https://vault-cluster.mydomain:8200"
      auth:
        token: "my-secret-token"
      enginePath: "kv"
      syncInterval: "5s"
      rescanInterval: "60s"
      namespace: "certs"

    如果大家有兴趣了解有关使用最新版本 Traefik Enterprise 更多的功能特性信息,请查看此博客文章“Lock Down Your Network with Traefik Enterprise and Vault.”。

API 门户增强

    Traefik Enterprise v2.6 为 API 门户带来了更有价值意义的功能增强,所有这些都是基于客户的要求而定的。在之前的 Traefik Enterprise 版本中,API 门户仅能读取 JSON 格式文件。而基于此版本,其现在也按照 Open API 的规范读取 YAML 文件。

    除此之外,在 Traefik Enterprise v2.6 版本,还支持更多关于用户如何获取 API 端点的配置选项。大家现在可以依据自身的业务场景需求在 URL 中指定参数并在后端指定 API 规范的端点路径。我们来了解一下在如下提供方环境下的相关配置情况,具体可参考:

    基于 Docker 配置示例,如下所示:


labels:
  - "traefik.http.routers.openapi-yaml.entrypoints=web"
  - "traefik.http.routers.openapi-yaml.rule=Host(`openapi.docker.localhost`)"
  - "traefik.http.services.openapi-yaml.loadbalancer.server.port=8080"
  - "traefik.http.services.openapi-yaml.loadbalancer.apiportal.path=spec.yaml"

    基于 Kubernetes 配置示例,如下所示:


apiVersion: v1
kind: Service
metadata:
  name: whoami
  namespace: default
  annotations:
    traefik.ingress.kubernetes.io/service.apiportal.path: spec.json
spec:
  ports:
    - name: web
      port: 80
  selector:
    app: traefiklabs
    task: whoami

    基于 Traefik Mesh 的云原生拓扑结构示意图,如下所示:



    其实,从本质上而言,Traefik Enterprise 2.6 Version 只是统一云原生网络堆栈生态体系的一个最新版本。或许,在不久的将来,我们将迎来发展更好的 Traefik Enterprise 产品,以帮助不同企业、组织简化其现代分布式应用程序操作。与此同时,基于 Traefik Enterprise 所支持传统和云原生应用程序的混合支持,从而能够帮助各大厂商、企业以及组织机构逐步、安全地迁移到微服务平台,使其成为云原生生态体系的最佳解决方案之一。


# 参考资料


相关文章
|
6月前
|
监控 Serverless 对象存储
Serverless 应用引擎常见问题之用ECI部署Traefik时设置如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
290 2
|
12天前
|
Kubernetes Cloud Native 前端开发
Kubernetes入门指南:从基础到实践
Kubernetes入门指南:从基础到实践
24 0
|
5月前
|
运维 Serverless PHP
Serverless 应用引擎产品使用合集之在部署Laravel时,如何处理伪静态
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
6月前
|
关系型数据库 Serverless 分布式数据库
Serverless 应用引擎常见问题之部署官方镜像如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
246 1
|
资源调度 Kubernetes 容器
直播预告 | Kubernetes 基础与 PolarDB-X 开源
Kubernetes是使用PolarDB-X开源版本绕不开的话题,了解Kubernetes不光有助于更好的使用PolarDB-X,还能通过Kubernetes的架构设计去理解分布式系统的资源调度核心思路。本期分享将介绍Kubernetes基础和PolarDB-X开源是如何使用Kubernetes来实现集群管理。
直播预告 | Kubernetes 基础与 PolarDB-X 开源
|
存储 Kubernetes 安全
一文搞懂基于 Kubescape 进行 Kubernetes 安全加固
Hello folks! 今天我们介绍一款开源容器平台安全扫描工具 - Kubescape。作为第一个用于测试 Kubernetes 集群是否遵循 NSA-CISA 和 MITREATT&CK 等多个框架安全部署规范的开源工具,Kubescape 在整容器编排生态中具有举足轻重的意义。在这篇文章中,我们将解析什么是 Kubernetes 加固以及如何基于 Kubescape 工具进行 Kubernetes 生态体系加固。
305 0
|
Kubernetes Cloud Native 容器
开放下载!《深入浅出Kubernetes》
一次搞懂6个核心原理吃透基础理论,一次学会6个典型问题的华丽操作
开放下载!《深入浅出Kubernetes》
|
存储 运维 Kubernetes
【kubernetes技术专题】Kubernetes架构分析介绍篇(入门篇)
【kubernetes技术专题】Kubernetes架构分析介绍篇(入门篇)
143 0
【kubernetes技术专题】Kubernetes架构分析介绍篇(入门篇)
|
弹性计算 运维 监控
元原生系列第二篇:阿里云EDAS平台基础
在上一篇中,我们大致了解了云原生的发展史和基础概念,这一篇主要来了解下阿里云应用托管平台EADS的基础概念和基本能力。
2487 0
|
Kubernetes Cloud Native 容器
《深入浅出Kubernetes》下载
《深入浅出Kubernetes》分为理论篇和实践篇,12篇技术文章帮你了解集群控制、集群伸缩原理、镜像拉取等理论,一次搞懂6个核心原理吃透基础理论,实现从基础概念的准确理解到上手实操的精准熟练,深入浅出使用Kubernetes!
230 0
 《深入浅出Kubernetes》下载
下一篇
无影云桌面