原文网址:K8S的dashboard使用账号密码登录-CSDN博客
本文介绍K8S的dashboard使用账号密码登录的方法。
-----------------------------------------------------------------------------------------------
分享Java真实高频面试题,吊打面试官: Java后端真实面试题大全 - 自学精灵
分享靠谱的Java高级实战,包含:高并发、架构、全局处理等:JavaWeb高级实战 - 自学精灵
-----------------------------------------------------------------------------------------------
Dashboard 支持 Kubeconfig 和 Token 两种认证方式,但都不方便,可以添加账号密码方式。
注意:从K8S的1.19版本开始,已经取消了使用basic-auth-file参数进行用户名密码登录。在1.19之前,可以通过设置来进行用户名密码登录,而且账号和密码必须都是admin。见:https://github.com/kubernetes/kubernetes/pull/89069
本文只是做个测试,最终是不可行的(虽然能登录成功,但是无法看到数据)。建议使用Token方式,见:这里
以下所有操作都是在master节点执行。
创建basic_auth_file文件,并创建用户。
cat << EOF | sudo tee /etc/kubernetes/pki/basic_auth_file
admin,admin123,1
EOF
用户格式为:用户名,密码,用户ID
先备份一下
sudo cp /etc/kubernetes/manifests/kube-apiserver.yaml /etc/kubernetes/manifests/kube-apiserver.yaml.bak
编辑 kube-apiserver.yaml,加一行配置:
- --token-auth-file=/etc/kubernetes/pki/basic_auth_file
修改的位置如下:
修改配置后会自动重启api-server,这里看一下是否重启成功了:
kubectl get pods -A
结果
看起来是重启了,但是上边的calico-kube-controllers是Error,它也在重启。过一会儿再次查看:
可以发现,过了几分钟后,calico-kube-controllers也没问题了。
kubectl create clusterrolebinding \
login-dashboard-with-cluster-admin \
--clusterrole=cluster-admin --user=admin
详解
将admin用户绑定到集群角色cluster-admin
login-dashboard-with-cluster-admin:自定义集群角色绑定name
--clusterrole:集群角色。cluster-admin是一个内置的ClusterRole(集群角色),它具有最高级别的权限,允许持有该角色的用户或服务账户对整个Kubernetes集群进行广泛的控制
--user:用户名
结果
命令
kubectl get clusterrolebinding login-dashboard-with-cluster-admin
结果
修改recommended.yaml,添加两行配置:
- --token-ttl=21600
- --authentication-mode=basic
第一行:修改token超时时间,默认是900秒(15分钟) ,本处改为6小时。
第二行:修改认证方式为basic
修改位置如下
命令
kubectl apply -f recommended.yaml
结果
访问:https://ip:30001
会有个警告,从高级里点进去即可:
输入账号密码:admin admin123
登录成功
可以发现,是没有数据的!解决不了 !