ConnectorsProxy

ConnectorsProxy 是 Connectors 系统的核心组件,提供了一种安全且无凭证的方式来访问 Kubernetes 集群内集成的工具。它作为一个代理服务器,负责处理认证和请求路由到实际的工具端点。

目录

功能

无凭证访问

ConnectorsProxy 使客户端能够在无需直接处理认证凭证的情况下访问工具资源。这显著提升了安全性,具体表现为:

  • 消除了向工作负载分发凭证的需求
  • 防止凭证在日志或环境变量中暴露
  • 集中管理凭证

自动服务创建

当创建 Connector 时,ConnectorsProxy 会自动:

  1. 创建一个用于代理的 Kubernetes Service
  2. 分配格式为 http://c-{connector-name}.{namespace}.svc.cluster.local 的代理地址
  3. 将代理地址记录在 Connector 的 status.proxy.httpAddress 字段中

协议支持

ConnectorsProxy 支持多种协议,并能处理不同类型的工具集成:

  • 用于 REST API 的 HTTP/HTTPS 协议
  • 使用 HTTP Authorization 的 Git 协议,用于代码仓库
  • 使用 Bearer Token Authorization 的 OCI 协议,用于容器镜像仓库

使用方法

访问工具资源

使用 ConnectorsProxy 时,客户端应:

  1. 使用代理地址替代原始工具地址
  2. 配置客户端以支持代理(如有需要)
  3. 通过代理端点访问资源

OCI 镜像仓库示例:

# 原始镜像地址
harbor.example.com/test/abc:v1

# 代理地址
c-harbor-connector.default.svc.cluster.local/test/abc:v1

配置

ConnectorsProxy 可通过 ConnectorClass 定义进行配置:

apiVersion: connectors.alauda.io/v1alpha1
kind: ConnectorClass
metadata:
  name: example
spec:
  proxy:
    ref:
      kind: Service
      name: connectors-proxy-service
      namespace: connectors-system

与 CSI Driver 集成

ConnectorsProxy 与 Connectors CSI Driver 无缝协作,提供完整的无凭证访问解决方案:

  1. CSI Driver 挂载必要的配置文件
  2. ConnectorsProxy 负责实际的请求代理
  3. 客户端无需管理凭证即可访问资源

该集成在以下场景中特别有用:

  • Kubernetes Job 中的 Git 克隆操作
  • Tekton Pipelines 中的镜像推送/拉取操作
  • 自定义工作负载中的 API 访问

安全注意事项

ConnectorsProxy 通过以下方式增强安全性:

  1. 集中管理凭证
  2. 防止凭证在工作负载中暴露
  3. 支持代理连接的 TLS 加密
  4. 实施适当的认证和授权机制