Z Tag
管理组织服务与凭证配置

Kubernetes

托管集群访问凭证,让 ZAI 用内置 kubectl 访问集群,并在多个 contexts 之间选择。

适用于组织 Owner / Admin;成员的个人连接器同样适用

点连接器页头的 添加访问,在 原生资源 里选择 Kubernetes;表单在独立页面中填写,保存后回到 访问内容 分区。 ZAI 可以用内置的 kubectl 读写资源、查看日志、watch、exec、复制文件和转发端口。 支持自建集群和 ACK 的标准 Token、客户端证书访问。

API Server 地址

填写集群提供的 HTTPS API Server 地址,例如 https://<接口主机>:6443。 支持固定的 API 路径前缀;地址不包含用户名、密码、查询参数、fragment、空白或反斜杠, 路径前缀中也不能出现编码的 /、\ 或 .(%2F、%5C、%2E)。

同一个 API Server 可以创建多份资源,分别使用不同身份。需要授予不同使用范围的 身份,应分别放入对应的连接器。

集群 CA

使用私有 CA 或自签证书时,填写 PEM 格式的 集群 CA 证书;使用系统已信任的 公开证书时可以留空。kubeconfig 的 certificate-authority-data 会在导入时自动解析。

需要指定证书验证名称时,在 高级设置 填写 TLS server name:填写域名(可以是 kubernetes 这样的单段名称)或 IP 地址,不带 IPv6 zone id。平台始终验证上游 证书;网络隧道负责可达性,集群 CA 负责信任。

身份凭证

Token:填写 API Server 接受的原始 Bearer Token,不添加 Bearer 前缀。 ServiceAccount Token 是常见选择,实际权限由集群管理员通过 Kubernetes RBAC 配置。

集群管理员可以用集群的标准命令获取 Token:

kubectl --context '<管理员 context>' -n '<namespace>' \
  create token '<服务账号>' --duration=1h

--duration 是请求的有效期,最终期限由 API Server 决定,Token 的 audience 也必须 被目标 API Server 接受。平台保存该 Token,静态 Token 到期后需要替换。

客户端证书:填写 PEM 格式的客户端证书和对应私钥。平台校验证书与私钥是否 匹配,并从证书读取到期时间。ACK 导出的内嵌证书 kubeconfig 可以直接导入。

Token、客户端证书和私钥保存后不再显示,也不会交给 ZAI。已有资源在行菜单中选择 编辑;凭证字段留空时保留原值,填写后替换。撤销 和 删除 同样在行菜单中,并要求输入资源名称确认。

到期与轮换

Token 可以在 Token 到期时间 登记到期时间,按表单标出的时区填写;登记的时间不会延长 Token 的实际有效期。修改到期时间时,需要同时填写替换的新 Token。客户端证书的有效期从证书中自动读取。到期的资源不再出现在 ZAI 的可用列表中。

替换凭证或修改连接配置(包括网络隧道和内网路由)会中断正在运行的 kubectl 长连接,例如 logs -f、exec、port-forward;之后的命令自动使用新配置。平台不会替你续期集群 Token 或客户端证书,请在到期前替换。

Contexts 与 namespace

每份资源可以设置多个 context 名称和默认 namespace,最多 64 个 context,名称不能重复。未填写 namespace 时使用 Kubernetes 默认值。默认 namespace 不限制访问范围,操作权限由 Kubernetes 决定。

ZAI 能用的 contexts 汇总自对当前聊天生效的连接器。它看到的 context 名称带有资源标识,用来区分不同连接器或身份下的同名 context。

  • 只有一个 context 时,ZAI 会自动选用它;有多个时,请在消息里说明用哪一个,例如「用 prod-readonly 查看 payments namespace 里的 Pod」。
  • 选定的 context 在同一消息列的后续消息里继续使用。这段工作结束后需要重新选择,另起的消息列也要重新选择;多久结束见限制、保留时间与 ZAI 被移出时。
  • 连接器里的资源有变化时,可以请 ZAI 刷新可用的 contexts。仍然可用的选择会保留,被删除或撤销的会清空,需要重新选择。

导入 kubeconfig

  1. 点连接器页头的 添加访问,在 网络与仓库 分组里选 导入 kubeconfig。
  2. 粘贴配置并选择 解析 kubeconfig。
  3. 核对 API Server、认证方式与 namespace,选择需要的 contexts 后导入。

相同 cluster 与 user 引用的 contexts 合并为一份访问资源;不同身份分别创建资源。 每次导入都会新增配置,已有资源使用编辑入口更新。

支持内嵌的 token、client-certificate-data、client-key-data、 certificate-authority-data 和 tls-server-name。本地文件引用、exec、 auth-provider、自带 proxy-url 和跳过 TLS 验证的配置会被拒绝。 EKS、GKE 的云登录插件不在支持范围内。

网络

资源沿用连接器指定的网络隧道;连接器没有指定时,按生效沙箱配置里的内网路由访问。在 高级设置 中把 内网路由要求 设为 必须经内网路由 时,找不到可用的内网路由就拒绝访问,不会改为直连。已配置的隧道不可用时,访问会失败。

ZAI 的 kubectl 请求由平台转发到 API Server:真实的集群凭证留在平台,不会复制给 ZAI,也不需要为它另配集群 CA。API Server 能否访问,取决于上面的网络隧道或内网路由;API Server 限制来源 IP 时,出口见ZAI 实际看到什么。

验证与日常操作

保存后,在连接器生效的聊天里请 ZAI 列出可用的 contexts,再读取一个已授权 namespace 里的真实资源,例如「列出你能用的 Kubernetes contexts,然后查看 payments namespace 里的 Pod」。接着验证权限边界。只请求 /version 不够:它可能允许匿名访问,不能单独证明身份和权限配置正确。其余排查见验证与排错。

日常使用时:

  • 资源和操作权限由 Kubernetes RBAC、准入规则和凭证身份决定,平台不会让 Kubernetes 拒绝的操作变成成功。
  • 复制文件依赖 exec 权限和容器里的 tar。
  • 端口转发只在 ZAI 的沙箱里监听,不对外开放。

撤销资源、替换凭证或修改连接配置、这段工作结束、网络故障或平台维护,都可能中断 logs -f、exec、port-forward 等长连接。断开不代表已执行的写入或远端命令被撤销;重试前应核对结果。

内置 kubectl 1.36,可用于 1.35–1.37 的 API Server(Kubernetes 官方规定 kubectl 与 API Server 的版本相差不超过一个 minor)。

已有 HTTP API 凭证

以 HTTP API 凭证(Bearer Token)方式添加 Kubernetes 凭证是旧的接入方式,已不能新建;新接入集群时,在 原生资源 里选择 Kubernetes。

早期以这种方式添加的凭证仍按原来的访问目标可用,也可以照常编辑和 替换凭证,但不支持托管 contexts、集群 CA 与客户端证书。需要这些能力时,点连接器页头的 添加访问,在 原生资源 里新建 Kubernetes 资源;两者的凭证独立保存,需要重新填写 Token。

官方资料:kubeconfig、 认证、 RBAC、 kubectl 版本兼容。

本页目录