架构

目录
Connector
Connector 是表示特定工具集成实例的资源。通过配置工具的访问 URL 和认证信息,我们可以为该工具创建一个集成实例。
例如,使用 GitHub Private Access Token 集成 https://github.com 就是通过 Connector 实现的。
在 Kubernetes 中,Connector 是一个命名空间级别的自定义资源。用户可以在同一命名空间内创建多个 Connector,以集成不同的工具。
例如,在 default 命名空间中,可以同时创建一个用于集成 https://github.com 的 Connector 和一个用于集成 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 是 Connectors 系统的核心组件,提供了一种在 Kubernetes 集群内安全且无凭证的方式访问集成工具。它充当代理服务器,处理认证并将请求路由到实际的工具端点。
ConnectorsProxy 使客户端无需直接处理认证凭证即可访问工具资源。这显著提升了安全性,具体表现为:
- 通过 ServiceAccount 签发的短期令牌,消除直接向客户端分发工具凭证的需求
- 防止凭证在日志或环境变量中暴露
- 集中管理凭证
它支持多种协议,并能处理不同类型的工具集成:
- 用于 REST API 的 HTTP/HTTPS 协议
- 用于代码仓库服务器(如 GitHub、GitLab)的带 HTTP Basic Auth 的 Git 协议
- 用于 OCI 注册表(如 Harbor、Docker Registry)的带 Bearer Token 授权的 OCI 协议
更多信息请参见:Connectors Proxy
Connectors API
Connectors API 提供基于 Connector 实例访问内部工具资源的能力。例如,对于 Git Connector,Connectors 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