从容器到kubernetes

dashboard 权限创建

2021-08-30  本文已影响0人  大鹏一怒乘风起

下面我们来讲解如何配置一个拥有完整权限的token.

kubectl create serviceaccount dashboard-admin -n kube-system

kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin

执行完以上操作后,由于管理用户的名称为dashboard-admin,生成的对应的secret的值则为dashboard-admin-token-随机字符串我的机器上完整名称为dashboard-admin-token-sg6bp

[centos@k8s-master dashboard]$ kubectl get secret -n=kube-system |grep dashboard-admin-token
dashboard-admin-token-sg6bp                      kubernetes.io/service-account-token   3      23h
[centos@k8s-master dashboard]$

可以看到这个secret的完整名称,或者不使用grep管道,列出所有的secrets,然后从中寻找需要的.

通过上面介绍过的kubectl describe secret命令查看token

[centos@k8s-master dashboard]$ kubectl describe -n=kube-system  secret dashboard-admin-token-sg6bp
Name:         dashboard-admin-token-sg6bp
Namespace:    kube-system
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: dashboard-admin
              kubernetes.io/service-account.uid: c60d2a65-619e-11e9-a627-0050568417a2

Type:  kubernetes.io/service-account-token

Data
====
ca.crt:     1025 bytes
namespace:  11 bytes
token:      eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkYXNoYm9hcmQtYWRtaW4tdG9rZW4tc2c2YnAiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZGFzaGJvYXJkLWFkbWluIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiYzYwZDJhNjUtNjE5ZS0xMWU5LWE2MjctMDA1MDU2ODQxN2EyIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmRhc2hib2FyZC1hZG1pbiJ9.Ai8UqLHNbwVFf4QRq1p0JdVVy-KuguSTrsJRYmh-TEArH-Bkp0yBWNPpsP8fKL8MRMwlZEyJml-GZEoWvEbInvrgLHtMgA0A6Xbq89fvXqnLQBWsjEnrdIBSHmksLk4v_ldvVrnr6XXK8LGB34TVWxeYvSfv8aF35hXAV_r5-p18t7m9GFxU0_z1Gq1Af9GMA4wotERaWd1hHqNIcrDF8UpgUw2952nIu_VxGSV6eCagPxlpjbyAPrcEjSBK7O7QACtKXnG0bW8MqNaNYiLksYpvtJS7f0GlTeTpDZoj--5gJqAcNanCy7eQU8LuF-fiUaZIfXe0ZaWH0M1mjcAskA
[centos@k8s-master dashboard]$

我们把以上token复制到登陆页面的token栏里,就可以登陆了.登陆以后就可以看到如上面最后展示的有完整信息的界面.

使用kubeconfig文件访问

这里只记录下命令,不做详细介绍,在dashboard 1.10.1里尝试了数次以及按照官网设置--authentication-mode=config也不行,这里就不再做详细介绍了.

DASH_TOCKEN=$(kubectl get secret -n kube-system dashboard-admin-token-sg6bp -o jsonpath={.data.token}|base64 -d)

kubectl config set-cluster kubernetes --server=192.168.124.59:6443 --kubeconfig=/root/dashbord-admin.conf

kubectl config set-credentials dashboard-admin --token=$DASH_TOCKEN --kubeconfig=/root/dashbord-admin.conf

kubectl config set-context dashboard-admin@kubernetes --cluster=kubernetes --user=dashboard-admin --kubeconfig=/root/dashbord-admin.conf

kubectl config user-context dashboard-admin@kubernets --kubeconfig=/root/dashbord-admin.conf

生成的dashbord-admin.conf即可用于登录dashboard

开启跳过登陆

根据使用的版本不同,可能有的版本包含skip按钮,有的则不包含,在1.10.1里面默认不再显然skip按钮,其实dashboard安装有很多坑,如果有读者按照以上设置仍然不能正常成功登陆,但是仍然想要体验dashboard,可以开启默认关闭的skip按钮,这样就可以进入到dashboard管理界面了.

注意,生产环境强烈不建议这样做.

执行命令

kubectl edit deploy -n=kube-system kubernetes-dashboard

在containers下面的args栏里输入

- --enable-skip-login

内容如下

img

然后保存即可.刷新web页面,登陆界面就会多出一个skip按钮.

上一篇下一篇

猜你喜欢

热点阅读