先来rbac吧
以下是简单版,利用rolebind不能跨namespace的特性来实现
# cat k8s-role-users.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
k8s-app: kubernetes-dashboard
addonmanager.kubernetes.io/mode: Reconcile
name: kubernetes-dashboard-admin
namespace: oms
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: kubernetes-dashboard-admin
namespace: oms
labels:
k8s-app: kubernetes-dashboard
addonmanager.kubernetes.io/mode: Reconcile
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: kubernetes-dashboard-admin
namespace: oms
运行yaml
kubectl apply -f k8s-role-users.yaml
获取token
DASH_TOCKEN=$(kubectl -n oms get secret default-token-sycc -o jsonpath={.data.token} |base64 -d)
这时已经可以根据token来登录dashboard了
为了更方便的来登录,我们制作config
#####注意:
/usr/local/src/dashbord-admin.conf 这个文件目前是没有的,我们通过一步一步来生成他,这个就是我们登录dashboard的config
获取token
DASH_TOCKEN=$(kubectl -n kubernetes-dashboard get secret default-token-sycc -o jsonpath={.data.token} |base64 -d)
# 设置 kubeconfig 文件中的一个集群条目
kubectl config set-cluster kubernetes --server=192.168.2.11:6443 --kubeconfig=/usr/local/src/dashbord-admin.conf
# 设置 kubeconfig 文件中的一个用户条目
kubectl config set-credentials dashboard-admin --token=$DASH_TOCKEN --kubeconfig=/usr/local/src/dashbord-admin.conf
# 设置 kubeconfig 文件中的一个上下文条目
kubectl config set-context dashboard-admin@kubernetes --cluster=kubernetes --user=dashboard-admin --kubeconfig=/usr/local/src/dashbord-admin.conf
#设置 kubeconfig 文件中的当前上下文
kubectl config use-context dashboard-admin@kubernetes --kubeconfig=/usr/local/src/dashbord-admin.conf
ok,完成