文档目录 +
文档/终端界面指南

终端界面指南

运行 kticket 启动终端界面,也可以指定管理员 kubeconfig:

kticket --kubeconfig /path/to/admin.config

终端至少需要 50 列、18 行。宽屏下,流程步骤、当前表单和请求预览并排显示;较窄的终端使用单栏布局。界面配色跟随终端的明暗背景。

语言与导航

kticket --lang en
kticket --lang zh-CN
kticket --lang zh-TW
kticket --lang ja
kticket --lang fr
kticket --lang de
KTICKET_LANG=zh-CN kticket

语言设置按以下顺序生效:--lang、KTICKET_LANG、LC_ALL、LC_MESSAGES、LANG。支持 zh_CN.UTF-8 等常见区域设置。不支持的系统语言回退为英文;显式指定的语言或 KTICKET_LANG 值无效时会报错。

没有任何语言设置时,主机当前 UTC 偏移为 UTC+8 则使用中文,其他情况使用英文。需要固定语言时,请使用 --lang 或 KTICKET_LANG。

在任意页面按 F2 可切换六种语言,保留输入、光标位置、授权草稿和正在执行的操作。切换仅对当前会话生效。CLI 参数、帮助和输出仍使用英文;资源名、路径、API 操作和底层错误详情保持原文。

按键操作
↑/↓在选项或列表行之间移动
Enter确认输入或当前步骤
Esc / Ctrl+B编辑时返回上一步
Ctrl+U清空当前输入
Tab在单选输入框中补全当前或首个候选项
Space / Tab在命名空间多选列表中勾选或取消勾选
PgUp / PgDn滚动较长的预览、说明和诊断信息
F1查看当前页面的全部快捷键,Esc 关闭帮助
F2切换界面语言

首页可使用方向键选择操作,也可以按 1、2、3 直接进入。各页面的专用操作显示在底栏。

对象选择框获得焦点后会加载候选项。输入文字可筛选列表,完全匹配的项会高亮显示。方向键选中候选项并填入输入框;没有完全匹配项时,Down 选择第一项,Up 选择最后一项。Tab 只补全、不前进,Enter 确认输入。候选项加载失败时仍可手动输入,但要求已存在的对象必须通过校验后才能继续。

页眉显示所选集群、管理员 kubeconfig 中的本地用户别名和认证方式。这里的别名来自配置,不代表经过验证的 Kubernetes 身份。

签发凭据

签发流程分为六个阶段。顶部导航标明当前阶段,表单标题中的 2.1 等编号表示该阶段内的具体字段。

  1. 选择环境。 选择上下文和 ServiceAccount 所在的命名空间,默认命名空间为 kticket-users。
  2. 添加账户。 输入一个名称,或粘贴以逗号、空格、换行分隔的名称。确认去重后的账户列表,以及各账户的新建或复用状态。
  3. 配置权限。 添加本批次所有账户需要获得的授权。列表默认为空。在空列表上按 Enter 会弹出确认框;再按 Enter 表示不新增权限并继续,Esc 关闭对话框。已添加授权时,Enter 一次即可继续。
  4. 凭据设置。 设置有效期、API 服务器地址、TLS 证书校验和已有的输出目录。默认有效期为 24h,至少 10m,精度为整秒;默认输出目录为运行用户的家目录,界面显示其绝对路径;显式填写目录时使用指定目录。
  5. 确认签发。 检查新增授权、保留的权限、连接配置及各账户的 <accountName>.<clusterName>.kubeconfig 文件名。Enter 开始签发,Esc 返回编辑。
  6. 执行结果。 查看各账户的执行结果和需要处理的操作。

选择账户

账户选择器中的已选账户与已有账户

alice、bob 和 carol 已加入本批次:alice 已存在,bob 和 carol 将新建。dave 已存在但尚未选入。勾号表示账户已加入批次,与当前输入或高亮候选项相互独立。

选择器同时展示已选名称和已有的受管账户。选择候选项会填入输入框,按 Enter 将其加入批次;已经选入的账户不会重复添加。

在账户列表中,a 添加名称,d 从本批次移除名称。移除名称不会删除对应的 ServiceAccount。使用 ↑/↓ 可查看各账户已有的直接授权和组授权。

在共用授权列表中,a 添加授权,e 编辑新增项,d 取消新增项。所有账户获得相同的新增授权,同时保留各自已有权限,因此最终权限可能不同。例如,可以为 alice, bob, carol 在 app-dev 和 app-test 中授予 ClusterRole/edit,在 app-prod 中授予 ClusterRole/view。

签发时只能创建账户命名空间和 ServiceAccount。引用的角色与目标命名空间必须已存在;已有 ClusterRole 可以绑定到本次创建的账户命名空间。Role 始终要求命名空间已存在。修改账户命名空间后,目标选择会清空,需要重新确认。

签发前会检查整个批次,包括名称是否合法、目标是否存在、输出位置是否已有文件或符号链接,以及路径是否重复。编辑草稿和批次检查不会写入授权或签发令牌。实际签发时还会再次校验,以发现期间发生的变更。选择集群范围的 cluster-admin 权限或关闭 TLS 证书校验时,确认页会提示其影响。

多选目标命名空间

已勾选两个目标命名空间

图中已勾选 app-dev 和 app-test。确认目标后,再选择角色类型和角色名称,同一个角色会分别应用到每个目标。

添加授权时,使用 ↑/↓ 移动,按 Space 或 Tab 勾选命名空间。也可以输入逗号分隔的名称,或粘贴多行列表。Enter 校验并确认选择,Ctrl+U 清空选择。

为选中的目标选择同一个角色后,界面会按命名空间展开为独立授权并去重,后续可逐项编辑。其他目标需要不同角色时,再添加一组授权。

使用命名空间级 Role 时,每个选中的命名空间都必须存在同名 Role。候选列表只显示所有目标中共有的角色名称。选择命名空间范围的 ClusterRole 会在各目标中创建 RoleBinding,不会授予集群范围权限。

确认批次

包含共用授权和独立输出文件的批量确认页

确认页列出三个账户、申请的八小时有效期、共用授权及各账户的输出文件。alice 在 app-prod 中的已有授权会保留,重复选择该授权不会创建重复绑定。

结果与重试

批次按账户顺序执行,每完成一个账户便更新结果页,遇到第一个失败即停止。使用 ↑/↓ 可查看各账户的操作记录、实际到期时间和撤销命令。已生成的 kubeconfig 文件路径会高亮显示。在本机桌面会话中,按 o 可在系统文件管理器中定位当前选中的成功文件;若当前行失败,则定位批次顺序中第一份成功文件。通过 SSH 或在无桌面环境中不会显示该操作。界面不会显示令牌值。

发生失败后,已完成的凭据和授权仍然保留。在同一会话中按 r,可重新检查并确认失败或待处理的账户,已成功的账户不会重复执行。如果令牌已签发,但后续步骤失败,该账户会标记为“需要处理”,并排除在自动重试之外。再次签发前,应先查看其操作报告。

重试状态仅保存在当前会话中,退出 kticket 后无法恢复该批次。失败后可能保留的集群资源及处理方式见故障处理。

查看账户与凭据

打开账户列表。表格显示受管账户及其绑定;较宽的终端会在创建时间后显示凭据的最近到期时间。账户 UID 显示在所选行下方的详情中。

按键账户列表中的操作
Enter / a打开账户权限编辑器
v查看凭据记录
i开始签发
r进入账户删除确认页
Ctrl+R刷新
q退出

在凭据记录页,↑/↓ 选择记录,PgUp/PgDn 滚动详情,Esc 返回。查看记录不会丢弃尚未提交的权限草稿。记录包含凭据别名、签发时间、到期时间、完整 ID,以及可用时的审计 ID。账户创建时间与凭据签发时间分别显示。

编辑账户权限

暂存新增授权后的账户权限编辑器

alice 保留 app-prod 中的 ClusterRole/view,并暂存一项 app-staging 中的 ClusterRole/edit 授权。选中行下方显示完整绑定引用,按 Enter 进入草稿确认页后再执行。

选中账户后按 Enter,打开权限编辑器。

按键权限编辑器中的操作
a暂存新增授权
e暂存所选授权的替换操作
d暂存移除操作、撤销已暂存的移除,或取消新增项
Enter预览合并后的计划,在确认页再次按下后执行
x丢弃草稿
c检查某项操作的权限
v查看凭据记录
r没有未提交变更时,进入账户删除确认页
Ctrl+R没有未提交变更时刷新

确认前,编辑内容仅保存在本地草稿中。在确认页按 Esc 可返回编辑。返回账户列表、刷新或撤销账户前,需要先应用或丢弃草稿。外部授权以灰色显示,仅供查看;选中后可检查主体和绑定引用。需要预览草稿时,请选中受管授权或新增项。

添加或替换授权时也支持多选命名空间。替换一行会移除原授权,并在每个选中的命名空间中添加指定角色的授权。

使用 d 移除授权会保留账户及其凭据。使用 r 撤销账户会删除 ServiceAccount,使其 UID 对应的全部令牌失效。TUI 中的账户删除操作始终需要在确认页确认。

权限检查接受命名空间、API 组、资源或子资源、操作和可选资源名称。结果只说明所查询的操作是否被允许,并不列举账户的全部有效权限。脚本中的对应操作见命令行参考。