使用 KubeConfig 访问集群
目录
简介场景选择访问路径先决条件操作步骤下载并使用平台提供的 KubeConfig使用您自己的 API 令牌构建基于令牌的 KubeConfig使用专用账户进行 Pipeline 或 Connector 访问生命周期和撤销验证后续步骤简介
如果需要从本地使用 CLI(ac)、kubectl、helm、client-go 或类似的 Kubernetes 客户端访问集群,请使用 KubeConfig。本页面中的操作步骤适用于 global 集群以及工作负载集群。
KubeConfig 文件是 YAML 客户端配置文件,不是 Kubernetes 资源。KubeConfig 文件通常会定义目标集群端点、客户端凭证以及将两者关联起来的上下文。
CLI(ac)使用标准 kubeconfig,提供类似 kubectl 的使用体验。它与 kubectl 工作流兼容,同时还提供特定于平台的上下文、集群和会话操作。如果您已在使用 ac login, CLI 可以自动配置 kubeconfig 并创建上下文。以下访问路径包括下载 KubeConfig 文件和手动组装基于令牌的 KubeConfig 文件。
场景
以下场景可使用这些访问路径:
- 集群管理员需要一个可直接使用的 KubeConfig,用于集群管理、故障排查或检查。
- 开发人员或项目用户需要一个与其自身 身份和 RBAC 权限相符的 KubeConfig。
- 流水线或连接器需要独立于个人日常账户的凭证。
选择访问路径
使用下表选择合适的访问路径:
目前,从 下载的 KubeConfig 文件默认有效期为 10 年。 目前不支持在此访问路径中替换 CA,也不支持为此访问路径指定用户定义的集群 CA。
如果需要更严格的身份隔离或更短的生命周期控制,请使用基于令牌的 KubeConfig,而不要长期重复使用下载的文件。
先决条件
开始之前,请确保满足以下条件:
- 您可以登录 并访问目标集群。
- 您已在要使用 KubeConfig 文件的本地计算机上安装 CLI(
ac)或kubectl。 - 如果要使用基于令牌的 KubeConfig,您可以从个人资料 > API 令牌创建 API 令牌。有关详细信息,请参阅简介。
- 如果要将 KubeConfig 用于流水线或连接器,请准备一个专用账户,并在创建其令牌之前仅授予所需的权限。
操作步骤
下载并使用平台提供的 KubeConfig
如果需要通过平台提供的 KubeConfig 文件直接访问集群,请使用此路径。
下载 KubeConfig 文件
在管理员视图中,转到集群 > 集群,选择目标集群,打开集群详情页,点击操作,然后选择下载 Kubeconfig。
将下载的文件保存到本地路径,例如 ~/.kube/<cluster-name>.yaml。
选择 KubeConfig 文件
将 CLI(ac)或 kubectl 指向下载的文件:
如果您管理多个集群,请使用 kubectl config use-context <context-name> 或 ac config use-context <context-name> 切换到正确的上下文,然后再运行命令。如果使用 CLI 会话,也可以使用 ac config use-cluster <cluster-name> 在当前平台会话中切换集群。
验证集群访问
运行只读命令,确认 KubeConfig 文件按预期工作:
如果命令返回预期的集群资源,则 KubeConfig 文件可直接使用。
需要进行集群管理时,直接使用此下载文件。您也可以将其用作基于令牌的 KubeConfig 模板,使其同时适用于 ac 和 kubectl。
使用您自己的 API 令牌构建基于令牌的 KubeConfig
如果您希望 KubeConfig 权限与特定 用户或自动化账户匹配,请使用此路径。
此路径不会提升权限。KubeConfig 文件仅携带连接和身份验证设置。实际访问边界仍取决于令牌所有者及该身份的 RBAC 分配。
创建 API 令牌
打开个人资料 > API 令牌,创建新令牌,并设置与您的使用场景相匹配的过期时间。
安全存储令牌。如果计划将其用于自动化,请避免使用个人日常账户。
准备 KubeConfig 模板
使用以下方法之一:
- 下载平台提供的 KubeConfig 文件,并另存一份副本用于基于令牌的访问。
- 手动创建标准 KubeConfig 文件。
如果手动创建文件,请使用以下格式的目标集群端点:
如果不想从头构建集群部分,请先下载平台提供的 KubeConfig,并将其中的集群和 CA 字段作为模板重复使用。
在 KubeConfig 文件中设置 API 令牌
将 users[].user.token 值替换为您为目标用户或自动化账户创建的 API 令牌。
以下示例展示了基于令牌的 KubeConfig:
namespace 是可选的。它用于设置命令的默认命名空间,但不会扩大令牌的权限范围。
验证有效权限
使用新的 KubeConfig 文件,并验证返回的权限是否与预期角色匹配:
如果命令针对 kubectl auth can-i 返回 no,请授予所需角色或使用其他账户。不要将 KubeConfig 更改视为 RBAC 更改的替代方案。
使用专用账户进行 Pipeline 或 Connector 访问
对于 Pipeline 或 Connector 访问,请使用专用账户,而不是个人用户账户:
- 为 Pipeline 或 Connector 创建专用账户。
- 仅向该账户授予所需的项目级或租户级权限。
- 为该账户创建一个 API 令牌。
- 使用该令牌构建基于令牌的 KubeConfig。
- 将令牌或 KubeConfig 文件存储在自动化平台的密钥管理系统中。
- 通过创建新令牌、更新密钥并撤销旧令牌来轮换凭证。
此模式为自动化提供独立凭证,但它不是 中原生的项目级 KubeConfig 对象。
生命周期和撤销
生命周期行为取决于您使用的访问路径:
如果您需要更短的有效期或更便捷的撤销方式,请优先使用基于令牌的路径。
验证
准备好 KubeConfig 文件后,执行以下检查:
- 运行
kubectl config get-contexts,确认存在预期的上下文。 - 运行
kubectl get pods -A或kubectl get pods -n <namespace>等只读命令,确认响应与预期的访问范围一致。 - 对于基于令牌的 KubeConfig,运行
kubectl auth can-i <verb> <resource> -n <namespace>,确认结果与令牌所有者的角色一致。 - 如果使用 CLI,运行
ac config current-context或ac namespace,确认活动上下文与预期的集群和命名空间一致。 - 如果使用 CLI,运行
ac get pods -n <namespace>或ac get nodes,确认响应与预期的访问范围一致。
后续步骤
- 有关 API 令牌管理,请参阅简介。
- 有关 CLI 基础知识,请参阅 CLI 入门。
- 有关 CLI 上下文和会话管理,请参阅 管理 CLI 配置文件。
- 有关 CLI 与 kubectl 的兼容性,请参阅 ac 和 kubectl 命令的使用。