Desired Outcome: 我想设置一个包含用户ID和密码的CSV文件,并以完整的管理员身份访问Kubernetes Dashboard,最好是在任何有浏览器的地方 . 我只是在学习kubernetes并想尝试集群管理,部署等 . 这只是为了学习而不是 生产环境 设置 . 我正在使用Kubernetes版本1.9.2并创建了一个3机器集群(主机和2个工作人员)

Background/What I've done so far:
我阅读了仪表板自述文件,并使用下面显示的文件创建了一个admin-user和admin-role-binding . 然后,我可以使用 kubectl describe secret 命令获取管理员用户的令牌 . 我在群集主服务器上运行 kubectl proxy ,并使用在群集主服务器上运行的浏览器使用该令牌对仪表板进行身份验证 . 所有这一切都有效 .

admin-user.yaml:

apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kube-system

admin-role-binding.yaml:

apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kube-system

我可以以管理员身份登录仪表板:

  • 我运行kubectl代理

  • 我使用我运行命令的浏览器访问仪表板(1)

  • 我使用"token"选项登录并粘贴我使用 kubectl describe secret 命令获得的管理员用户令牌 .

我想做什么:

  • 使用用户ID /密码设置CSV文件

  • 以adminid身份登录userid / password

  • 能够从任何地方登录

为此,我创建了一个CSV文件,例如 /home/chris/myusers.txt

mypasswd,admin,42

我不知道id用什么 Value ,所以我只用42来打扰 .

然后我编辑了文件:
/etc/kubernetes/manifests/kube-apiserver.yaml 并添加此行:
--basic-auth-file=/home/chris/myusers.txt

然后重新启动kubelet:
sudo systemctl restart kubelet

但是,当我这样做时,我的群集停止工作,我无法访问仪表板,所以我回到了仍然使用管理员用户令牌的地方 .

我的问题是:

  • 我可以做我想做的事吗?

  • 我在用户CSV文件中使用哪些ID值?我会指定哪些组?

  • 我需要做出哪些其他更改才能使所有这些变得有效?如果我修改apiserver清单以使用带有用户ID /密码的文件,那是否会破坏我的集群的其余配置?