我正在尝试从 pod 终端获取当前登录 OpenShift 的用户的用户名或访问令牌(这里是一个类似的问题)。我需要记录在终端中执行的所有命令,并且还需要包括执行这些命令的用户名。问题是 OpenShift 使用 OpenID 进行身份验证,这意味着它不使用经典的用户/密码,它接受来自身份验证服务器的令牌,这就是我无法使用
curl -ks -u user:pass https://xxx...
的原因。
我将集群管理员角色绑定到服务帐户只是为了测试以避免权限问题,并在 pod 终端中尝试了
oc whoami -t
,但它显示了 pod 运行的服务帐户的令牌。我也尝试过 oc get useroauthaccesstoken
,没有结果,因为它检查服务帐户。权限没有问题,因为 oc get oauthaccesstoken
将返回包括令牌在内的所有用户的列表。
有谁知道是否可以使用 cURL 或其他解决方案将用户名/令牌放入 pod 中?
不确定您到底在寻找什么,但与服务帐户相关的信息应该安装在您的pod中
/var/run/secrets/kubernetes.io/serviceaccount
下,包括令牌
还可以使用
id
命令检索运行该进程的Linux用户ID...:
id
uid=1000720000(1000720000) gid=0(root) groups=0(root),1000720000