Kubernetes Connector 是一个平台无关的连接器,您可以使用它连接到任何 Kubernetes 集群。
您可以使用 Kubernetes Connector 在 CICD 流水线中安全地执行 kubernetes 操作,或者在 kubernetes 工作负载中使用它以无凭证方式执行 kubernetes 操作。
此外,您还可以集中管理跨命名空间的 kubernetes 访问配置,避免在每个命名空间中重复 kubernetes 凭证。
本文档涵盖:
目标 Kubernetes 集群必须满足以下先决条件:
以下是创建基础 Kubernetes Connector 的方法:
spec.connectorClassName:
k8s
(常量),指定 Kubernetes 集成的 ConnectorClass 名称。
spec.address:
目标 Kubernetes 集群 API 服务器端点,例如:https://192.168.1.100:6443
。
也支持带路径的 url,例如:https://192.168.1.100:6443/kubernetes/global
,当 Kubernetes 集群 API 服务器暴露在代理后面时非常有用。
spec.auth:
指定 Kubernetes 集群的认证方式
spec.auth.name
:Kubernetes Connector 应为 bearerTokenAuth
。
spec.auth.secretRef
:指定包含 Kubernetes 集群认证信息的 Secret,该 Secret 应创建在与 Connector 相同的命名空间中。
可选元数据字段:
cpaas.io/description
:Kubernetes Connector 的描述信息,例如:
Kubernetes Connector 支持以下认证类型:
bearerTokenAuth
:基于 Bearer Token 的认证,对应的 Secret 类型为:connectors.cpaas.io/bearer-token
例如:
如果 Secret 不正确,kubernetes connector 的 status.conditions
字段将显示错误信息。
有关完整的状态信息,请参见 Connector Status Documentation。
为了让客户端能够无凭证访问 kubernetes 资源,Kubernetes Connector 提供了一个代理服务器,用于自动注入认证信息。
客户端可以使用该代理服务器访问 kubernetes 资源,无需在客户端配置凭证。
为简化使用,Kubernetes ConnectorClass 提供了可以通过 CSI 挂载到 Pod 中的 kubeconfig
文件。在 Pod 中执行 kubernetes 操作时,代理服务可以自动注入认证信息。
创建 Connector 后,系统会自动为目标集群配置一个代理服务。
代理端点记录在 status.proxy.httpAddress
中:
例如:
Kubernetes Connector 提供如下配置:
kubeconfig:
kubeconfig
配置文件,结合 connector-csi-driver,该配置文件将被挂载到 Pod 中,使得通过代理访问 kubernetes 集群时无需在客户端配置凭证。Pod 中生成的配置文件示例:
关键字段:
server
:目标 Kubernetes API 服务器端点proxy-url
:带有嵌入式代理认证的 Connector 代理地址certificate-authority-data
:用于 TLS 验证的代理服务器证书有关代理机制的详细说明,请参见快速开始指南中的 How It Works。
Kubernetes Connector 提供的 kubeconfig
配置文件可以通过 Connector CSI Driver 挂载到 Pod 中。
例如:
参数说明:
csi.readOnly
:固定值 true
csi.driver
:Connector CSI Driver,固定为 connectors-csi
csi.volumeAttributes
:CSI 卷属性
connector.name
:Kubernetes Connector 名称connector.namespace
:Kubernetes Connector 所在命名空间;若未指定,使用 Pod 所在命名空间configuration.names
:配置名称,由 Kubernetes Connector 提供。如上示例,支持 kubeconfig
。关于如何在 Pod 中使用 connectors-csi-driver 挂载的 kubeconfig
文件的详细信息,请参见 Using Kubernetes Connectors in kubernetes jobs