创建 Kubernetes 仪表板令牌

Creating a Kubernetes Dashboard Token

我正在尝试按照 https://github.com/kubernetes/dashboard/blob/master/docs/user/access-control/creating-sample-user.md 中的说明创建 Kubernetes Dashboard 令牌。但是,当我运行指定的命令时,我得到一个错误

% kubectl -n kubernetes-dashboard create token admin-user
Error: must specify one of -f and -k

error: unknown command "token admin-user"
See 'kubectl create -h' for help and examples

如果我跳回 in the doc history,我会看到一个不同的、更详细的命令 运行

% kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get sa/admin-user -o jsonpath="{.secrets[0].name}") -o go-template="{{.data.token | base64decode}}"

这似乎工作正常,文档更改的 PR 提到“1.24 版”,但没有提到 1.24 版指的是哪个软件(kubectl?仪表板?Kuberenetes 本身?kind?还有别的吗?)

那么第一个命令是怎么回事?为什么不起作用?

这是 kubernetes 1.24 的新功能,您的集群必须是 运行 <1.24 版本的 Kubernetes。请参阅下面的更改日志:

kubectl create token can now be used to request a service account token, and permission to request service account tokens is added to the edit and admin RBAC roles (#107880, @liggitt)

显示更多相关信息的另一个片段:

Kubectl changes:

Adds a command to kubectl to request a bound service account token. This will help ease the transition from scraping generated service account tokens with commands like kubectl get secret "$(kubectl get serviceaccount default -o jsonpath='{.secrets[0].name}')"

检查此以获取更多信息:https://github.com/kubernetes/kubernetes/pull/107880