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

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 组、资源或子资源、操作和可选资源名称。结果只说明所查询的操作是否被允许,并不列举账户的全部有效权限。脚本中的对应操作见命令行参考。