管理 CLI 配置文件
CLI 配置文件允许您为 ACP CLI(ac)配置不同的配置文件或上下文。一个上下文包含与昵称关联的用户认证信息和 ACP 平台服务器信息。
目录
便捷的配置管理平台和会话管理ac login - 认证并配置对 ACP 平台的访问ac logout - 结束平台会话并清理配置ac config get-sessions - 列出所有已配置的 ACP 平台会话ac config use-session <session_name> - 切换 ACP 平台日常操作ac config use-cluster <cluster_name> - 在当前会话中切换集群ac namespace - 查看当前状态并切换命名空间ac config sync - 同步平台配置了解 ACP CLI 配置结构ACP CLI 增强的 kubeconfig 结构元数据结构与组织基于元数据的识别命名规范手动配置 CLI 配置文件标准配置命令手动操作示例加载与合并规则便捷的配置管理
ACP CLI 提供了增强命令,使配置管理比传统的 kubeconfig 操作更加简单。这些命令专为无缝支持 ACP 的多集群环境而设计。
平台和会话管理
ac login - 认证并配置对 ACP 平台的访问
ac login 命令是建立与 ACP 平台连接的主要入口。它负责用户认证并自动配置所有必要的 kubeconfig 条目。
登录流程:
- 对 ACP 平台进行认证
- 发现平台内所有可访问的集群
- 在 kubeconfig 中创建集群和用户条目
- 创建并激活上下文:
- 如果指定了
--cluster:为该特定集群创建上下文 - 如果指定了
--namespace:在上下文中设置命名空间 - 如果未指定集群:默认为 global 集群
- 上下文名称格式为:
<session_name>/<cluster_name>
- 如果指定了
ac logout - 结束平台会话并清理配置
登出命令会移除所有与会话相关的配置条目,包括集群、用户和上下文。
ac config get-sessions - 列出所有已配置的 ACP 平台会话
示例输出:
该命令显示:
- CURRENT:指示当前上下文是否属于该会话(用
*标记) - SESSION:会话名称(登录时用户定义)
- PLATFORM:基础平台 URL
- USER:该会话的认证用户名
- CLUSTERS:该会话中可用集群数量
ac config use-session <session_name> - 切换 ACP 平台
该命令根据您的会话和集群需求智能选择或创建合适的上下文。
日常操作
ac config use-cluster <cluster_name> - 在当前会话中切换集群
该命令查找或创建当前平台会话中指定集群的上下文。
ac namespace - 查看当前状态并切换命名空间
查看当前状态:
示例输出:
切换命名空间:
ac config sync - 同步平台配置
sync 命令会使用 ACP 平台的最新信息刷新您的配置,添加新集群并更新凭证。
了解 ACP CLI 配置结构
ACP CLI 将所有配置信息存储在标准的 ~/.kube/config 文件中,确保与 kubectl 及其他 Kubernetes 工具完全兼容,同时增加 ACP 特有的增强功能。
ACP CLI 增强的 kubeconfig 结构
ACP CLI 在标准 kubeconfig 格式基础上扩展了 ACP 特定的元数据,以增强平台集成:
元数据结构与组织
ACP CLI 使用扩展元数据来组织和识别配置条目:
基于元数据的识别
- 平台识别:使用
platformUrl标识所属平台 - 会话关联:使用
sessionName将相关的集群、用户和上下文分组 - global 集群检测:使用
isGlobal字段识别管理集群 - 用户凭证定位:在用户扩展中匹配
sessionName和platformUrl
命名规范
ACP CLI 创建新条目时遵循一致的命名规范:
- 集群条目:
acp:<session_name>:<cluster_name>(例如acp:prod:global) - 用户条目:
acp:<session_name>:user(例如acp:prod:user) - 上下文条目:
<session_name>/<cluster_name>(例如prod/global)
acp: 前缀确保 ACP CLI 管理的条目不会与现有 kubeconfig 条目冲突。
用户可以手动重命名这些条目——ACP CLI 通过元数据识别条目,而非名称。
手动配置 CLI 配置文件
对于需要精确控制配置的高级用户,ACP CLI 支持所有标准的 kubectl config 命令,以便手动管理 kubeconfig。
大多数用户应使用上述便捷命令。
手动配置命令适用于高级场景:
- 自定义上下文命名 - 创建不遵循 ACP CLI 命名规范的上下文
- 非 ACP 环境 - 在 ACP 会话之外管理传统的 kubectl 上下文
- 复杂多上下文场景 - 需要精确控制上下文的高级工作流
- 排查配置问题 - 调试或修复配置问题
标准配置命令
ACP CLI 完全兼容 kubectl config 子命令:
手动操作示例
创建自定义上下文:
查看当前配置:
更新上下文命名空间:
加载与合并规则
在执行 CLI 操作时,配置文件的加载和合并遵循以下规则:
-
CLI 配置文件从您的工作站获取,遵循以下层级和合并规则:
- 如果设置了
--config选项,则仅加载该文件。该标志只设置一次,不进行合并。 - 如果设置了
$KUBECONFIG环境变量,则使用它。该变量可以是路径列表,路径会合并在一起。修改值时,修改定义该段落的文件。创建值时,创建于第一个存在的文件。如果链中无文件存在,则创建列表中的最后一个文件。 - 否则,使用
~/.kube/config文件,不进行合并。
- 如果设置了
-
使用的上下文根据以下流程的第一个匹配项确定:
--context选项的值- CLI 配置文件中的
current-context值 - 此阶段允许为空值
-
使用的用户和集群确定。此时可能有或没有上下文;它们基于以下流程的第一个匹配项构建,分别针对用户和集群运行一次:
- 用户名的
--user和集群名的--cluster选项值 - 如果存在
--context选项,则使用该上下文的值 - 此阶段允许为空值
- 用户名的
-
实际使用的集群信息确定。此时可能有或没有集群信息。集群信息的每个部分基于以下流程的第一个匹配项构建:
- 以下命令行选项的值:
--server、--api-version、--certificate-authority、--insecure-skip-tls-verify - 如果存在集群信息且该属性有值,则使用它
- 如果没有服务器地址,则报错
- 以下命令行选项的值:
-
实际使用的用户信息确定。用户构建规则与集群相同,但每个用户只能有一种认证方式;认证方式冲突会导致操作失败。命令行选项优先于配置文件值。有效的命令行选项包括:
--auth-path--client-certificate--client-key--token
-
对于仍缺失的信息,使用默认值并提示输入额外信息。