Kubernetes- Dashboard安装、访问

Dashbord

官方地址:

  https://github.com/kubernetes/dashboard

安装Dashboard:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.3/aio/deploy/recommended.yaml

需要有国外访问能力,如果没有的话,可以下载或者复制文件内容以后,直接执行。

kubectl get pods -n kubernetes-dashboard

因为已经操作了几天了,所以AGE这部显示6d19h,一般执行完,需要等待几分钟才能看到。

kubectl get svc -n kubernetes-dashboard
NAME                        TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)         AGE
dashboard-metrics-scraper   ClusterIP   10.1.180.251   <none>        8000/TCP        6d19h
kubernetes-dashboard        ClusterIP    10.1.127.181   <none>        443/TCP   6d19h

将IP暴露一下,外部才能访问

kubectl patch svc kubernetes-dashboard -p '{"spec":{"type":"NodePort"}}' -n kubernetes-dashboard

再查看下,type就会从cluster ip 变成 nodeport ,port也会多个端口

访问Dashboard:

# 集群中任意一台服务器地址+端口号

我这边master 是 192.168.56.102   ; node1 :192.168.56.103    ;  node2 :192.168.56.104 ;

访问 https://192.168.56.103:31539

登录方式:

  1. Token认证方式登录
  2. Kubeconfig认证方式登录

Token认证方式登录:

  1. 创建ServiceAccount,根据其管理目标,使用rolebinding或clusterrolebinding绑定至合理role或clusterrole;
  2. 获取到此ServiceAccount的secret,查看secret的详细信息,其中就有token;
  3. 生成kubeconfig文件
kubectl config set-cluster  --kubeconfig=/PATH/TO/SOMEFILE
kubectl config set-credentials NAME --token=$KUBE_TOKEN --kubeconfig=/PATH/TO/SOMEFILE
kubectl config set-context
kubectl config use-context
kubectl create serviceaccount dashboard -n kubernetes-dashboard

kubectl create rolebinding def-ns-admin --clusterrole=admin --serviceaccount=default:def-ns-admin

kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:dashboard


创建完成以后查看下

kubectl describe sa dashboard -n kubernetes-dashboard

根据查到的tokens 去查看token

  

kubectl describe secret dashboard-token-r7rvd -n kubernetes-dashboard

  

将查询结果中的token值复制到UI上,即可完成登录。

因为我们将创建的serviceaccount绑定在了cluster-admin上面,所有cluster-admin角色拥有的权限,在这里这个Pod(Dashboard)都有;

KubeConfig认证方式登录:

  1. 创建ServiceAccount,根据其管理目标,使用rolebinding或clusterrolebinding绑定至合理role或clusterrole;
  2. 获取secret的详细信息;
kubectl create serviceaccount def-ns-admin -n default

    

kubectl config set-cluster kubernetes --server="https://192.168.56.103:6443" --certificate-authority=/etc/kubernetes/pki/ca.crt --kubeconfig=./def-ns-admin.conf

kubectl config view --kubeconfig=./def-ns-admin.conf

# 基于serviceaccount的Token与API Server进行认证;
kubectl get secret

DEF_NS_ADMIN_TOKEN=$(kubectl get secret def-ns-admin-token-9jpqk -o jsonpath={.data.token} | base64 -d)
kubectl config set-credentials def-ns-admin --token=$DEF_NS_ADMIN_TOKEN --kubeconfig=./def-ns-admin.conf

kubectl config view --kubeconfig=./def-ns-admin.conf

 vim ./def-ns-admin.conf 

新增几行,json格式,千万别错,有报错需要检查下(因为之前ip设置错了,所以直接修改了配置文件里的ip 192.168.56.103 变更成了102)

kubectl config view --kubeconfig=./def-ns-admin.conf

 

 kubectl config use-context def-ns-admin@kubernetes --kubeconfig=./def-ns-admin.conf

然后把def-ns-admin.conf 配置文件导出到需要访问的客户端的桌面上,访问时选择

认证登录成功。

猜你喜欢

转载自blog.csdn.net/weixin_45942735/article/details/113506865