期望的结果: 我想设置一个包含用户 ID 和密码的 CSV 文件,并以完全管理员身份访问 Kubernetes 仪表板,最好是从任何地方使用浏览器访问。我只是在学习 kubernetes,想尝试集群管理、部署等。这只是为了学习,不是生产设置。我正在使用 Kubernetes 版本 1.9.2 并创建了一个 3 机集群(master 和 2 个 worker)
背景/到目前为止我所做的:
我阅读了仪表板自述文件,并使用下面显示的文件创建了一个管理员用户和管理员角色绑定。然后我可以使用该kubectl describe secret
命令来获取管理员用户的令牌。我kubectl proxy
在集群主服务器上运行,并使用集群主服务器上运行的浏览器使用该令牌向仪表板进行身份验证。所有这些都有效。
管理员用户.yaml:
api版本:v1 种类:服务账户 元数据: 名称:管理员用户 命名空间:kube 系统
管理员角色绑定.yaml:
api版本:rbac.authorization.k8s.io/v1beta1 种类:ClusterRoleBinding 元数据: 名称:管理员用户 角色参考: apiGroup:rbac.authorization.k8s.io 种类:集群角色 名称:集群管理员 主题: - 种类:ServiceAccount 名称:管理员用户 命名空间:kube 系统
我可以以管理员身份登录仪表板 IF:
- 我运行 kubectl 代理
- 我使用运行命令 (1) 的浏览器访问仪表板
- 我使用“令牌”选项登录并粘贴使用该
kubectl describe secret
命令获得的管理员用户令牌。
我想做的事:
- 使用用户名/密码设置 CSV 文件
- 使用用户名/密码以管理员身份登录
- 能够从任何地方登录
为此,我创建了一个 CSV 文件,例如/home/chris/myusers.txt
:
我的密码,管理员,42
我不知道 id 使用什么值,所以我只用 42 下注。
然后我编辑了文件:
/etc/kubernetes/manifests/kube-apiserver.yaml
并添加了这一行:
--basic-auth-file=/home/chris/myusers.txt
然后重启 kubelet:
sudo systemctl restart kubelet
但是,当我这样做时,我的集群停止工作并且我无法访问仪表板,所以我恢复到我仍然使用管理员用户令牌的位置。
我的问题是:
- 有可能做我在这里想做的事情吗?
- 我在用户 CSV 文件中使用哪些 id 值?我会指定哪些组?
- 我还需要进行哪些其他更改才能使所有这些都正常工作?如果我修改 apiserver 清单以使用带有用户 ID/密码的文件,这是否会弄乱我集群的其余配置?