架构

Architecture

目录

Connector

Connector 是表示特定工具集成实例的资源。通过配置工具的访问 URL 和认证信息,我们可以为该工具创建一个集成实例。

例如,使用 GitHub Private Access Token 集成 https://github.com 就是通过 Connector 来实现的。

Kubernetes 中,Connector 是一个命名空间级别的自定义资源。用户可以在同一命名空间内创建多个 Connector,以集成不同的工具。

例如,在 default 命名空间内,可以同时创建一个用于集成 https://github.comConnector 和一个用于集成 https://hub.docker.com/Connector

平台管理员可以通过管理 Connector 资源来实现对整个集群中工具集成的管理。

ConnectorClass

ConnectorClass 定义了特定类型工具的访问方式和行为规范。它规定了集成某种类型工具时所需的参数,如工具地址和认证信息。

例如,Git ConnectorClass 定义了集成 Git 工具时需要提供的配置项,包括 Git 服务地址和 Basic-Auth 认证信息。

Kubernetes 中,ConnectorClass 是一个集群级别的自定义资源。开发者可以通过定义新的 ConnectorClass 来扩展平台支持的工具类型。

例如,可以定义一个 Harbor ConnectorClass 来支持集成 Harbor 镜像仓库,定义一个 MySQL ConnectorClass 来支持集成 MySQL 数据库,或者定义一个 Jira ConnectorClass 来支持集成 Jira 项目管理工具。

Connectors Proxy

ConnectorsProxy 是一个核心组件,提供在 Kubernetes 集群内对集成工具的安全无密访问。它充当代理服务器,负责认证注入和请求路由到目标工具。

ConnectorsProxy 使客户端能够在不直接处理凭证的情况下访问工具资源。这种方式带来了显著的安全优势:

  • 无密访问:通过使用 ServiceAccount 签发的短期令牌,消除了向客户端直接分发工具凭证的需求,避免凭证在日志或环境变量等客户端中暴露。
  • 集中凭证管理:所有工具凭证由 Connector 集中管理,无需向每个客户端分发凭证。

平台支持内置和自定义代理实现,以满足多样化的工具认证需求。

内置 Connectors Proxy

内置实现提供了对 HTTP/HTTPS 协议的全面支持,支持 Basic Auth 和 Bearer Token 认证方式。它同时支持正向和反向代理,提供最大灵活性。

被 ConnectorClass 使用:K8s ConnectorClass、Git ConnectorClass

自定义 Connectors Proxy

对于需要特殊认证机制的工具,可以开发自定义代理实现。

示例:OCI ConnectorClass 使用自定义的 OCI 插件代理,支持 Harbor 和 Docker Registry 等注册中心的 OCI 协议和 Bearer Token 授权。

更多信息请参见:Connectors Proxy

Connectors API

Connectors API 提供基于 Connector 实例访问内部工具资源的能力。例如,对于 Git ConnectorConnectors API 可以获取 Git 仓库中的分支列表(References)。

开发者可以通过 Connectors API 方便地访问工具内的资源,无需关心具体的工具地址和认证细节。

该 API 在实际应用中非常有用,例如:

  • 创建应用时获取容器镜像的标签列表
  • Git Clone 操作时获取代码仓库的分支列表(References)

Connectors API 的实现基于 ConnectorClass API 提供的底层能力。

ConnectorClass API

ConnectorClass API 定义了特定类型工具所提供的 API。

不同类型的工具可以提供不同的 API 能力,例如:

  • Git ConnectorClass API 可以提供获取代码仓库分支列表的能力
  • OCI ConnectorClass API 可以提供获取制品仓库标签列表的能力

开发者可以为每个 ConnectorClass 定义独特的 API 能力,这些能力最终通过 Connectors API 对外暴露给客户端。

Connectors CSI Driver

为了方便 K8S 工作负载更容易地利用 Connectors-Proxy 的能力,可以使用 Connectors CSI Driver。

Connectors CSI Driver 可以将 ConnectorClass 中维护的配置文件模板渲染后的内容挂载到工作负载中。该配置文件可以包含访问 Connectors Proxy 的信息,使用户能够以最小的脚本修改利用 Connectors Proxy 的能力。

更多信息请参见:connectors csi driver