期望的结果: 我想设置一个包含用户ID和密码的CSV文件,并以完整的管理员身份访问Kubernetes Dashboard,最好是在任何有浏览器的地方。我只是在学习kubernetes并想尝试集群管理,部署等。这只是为了学习而不是生产设置。我正在使用Kubernetes版本1.9.2并创建了一个3机器集群(主机和2个工作人员)
背景/到目前为止我做了什么:
我阅读了仪表板自述文件,并使用下面显示的文件创建了一个admin-user和admin-role-binding。然后,我可以使用kubectl describe secret
命令获取管理员用户的令牌。我在群集主服务器上运行kubectl proxy
,并使用在群集主服务器上运行的浏览器使用该令牌对仪表板进行身份验证。所有这些都有效。
管理-user.yaml:
apiVersion: v1 kind: ServiceAccount metadata: name: admin-user namespace: kube-system
系统管理员角色-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 describe secret
命令登录并粘贴管理员用户令牌的选项。我想做什么:
为此,我创建了一个CSV文件,例如/home/chris/myusers.txt
:
mypasswd,admin,42
我不知道用于id的值是什么,所以我只是用42来点击。
然后我编辑了文件:
/etc/kubernetes/manifests/kube-apiserver.yaml
并添加以下内容:
--basic-auth-file=/home/chris/myusers.txt
然后重新启动kubelet:
sudo systemctl restart kubelet
然而,当我这样做时,我的群集停止工作,我无法访问仪表板,所以我还原了仍然使用管理员用户令牌的地方。
我的问题是:
答案 0 :(得分:0)
您可以尝试这个对我有用的产品。从这里参考。
volumeMounts:
- mountPath: /etc/kubernetes/auth.csv
name: kubernetes-dashboard
readOnly: true
volumes:
- hostPath:
path: /etc/kubernetes/auth.csv
name: kubernetes-dashboard
How to config simple login/pass authentication for kubernetes desktop UI