ConnectorsProxy
ConnectorsProxy 是 Connectors 系统的核心组件,提供了一种安全且无凭证的方式来访问 Kubernetes 集群内集成的工具。它作为一个代理服务器,负责处理认证和请求路由到实际的工具端点。
目录
功能
无凭证访问
ConnectorsProxy 使客户端能够在无需直接处理认证凭证的情况下访问工具资源。这显著提升了安全性,具体表现为:
- 消除了向工作负载分发凭证的需求
- 防止凭证在日志或环境变量中暴露
- 集中管理凭证
自动服务创建
当创建 Connector 时,ConnectorsProxy 会自动:
- 创建一个用于代理的 Kubernetes Service
- 分配格式为
http://c-{connector-name}.{namespace}.svc.cluster.local
的代理地址
- 将代理地址记录在 Connector 的
status.proxy.httpAddress
字段中
协议支持
ConnectorsProxy 支持多种协议,并能处理不同类型的工具集成:
- 用于 REST API 的 HTTP/HTTPS 协议
- 使用 HTTP Authorization 的 Git 协议,用于代码仓库
- 使用 Bearer Token Authorization 的 OCI 协议,用于容器镜像仓库
使用方法
访问工具资源
使用 ConnectorsProxy 时,客户端应:
- 使用代理地址替代原始工具地址
- 配置客户端以支持代理(如有需要)
- 通过代理端点访问资源
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 无缝协作,提供完整的无凭证访问解决方案:
- CSI Driver 挂载必要的配置文件
- ConnectorsProxy 负责实际的请求代理
- 客户端无需管理凭证即可访问资源
该集成在以下场景中特别有用:
- Kubernetes Job 中的 Git 克隆操作
- Tekton Pipelines 中的镜像推送/拉取操作
- 自定义工作负载中的 API 访问
安全注意事项
ConnectorsProxy 通过以下方式增强安全性:
- 集中管理凭证
- 防止凭证在工作负载中暴露
- 支持代理连接的 TLS 加密
- 实施适当的认证和授权机制