K8S教程(5)Dashboard的安装与使用
K8S Dashboard的官方介绍:
https://kubernetes.io/zh/docs/tasks/access-application-cluster/web-ui-dashboard/
1、下载资源清单并且应用
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml
2、查看应用资源清单后所创建的deployment及Pod信息
如果出现Pod一直Crash启动不了的问题,并且日志显示Initializing csrf token from kubernetes-dashboard-csrf secret panic: Get https://ip:443/api/v1/namespaces/kubernetes-dashboard/secrets/kubernetes-dashboard-csrf: dial tcp ip: i/o timeout这样的错误,可以通过编辑yaml文件将dashboard部署到主节点解决
kubectl get deployment kubectl get deployment -n kubernetes-dashboard #dashboard会创建在这个namespace中 kubectl get pods -n kubernetes-dashboard vi recommended.yaml #如果需要手动指定master的话修改该文件 spec: nodeName: server1 #新增这行 containers: - name: kubernetes-dashboard image: kubernetesui/dashboard:v2.0.0 imagePullPolicy: Always spec: nodeName: server1 #新增这行 containers: - name: dashboard-metrics-scraper image: kubernetesui/metrics-scraper:v1.0.4
3、将Services 类型修改为NodePort,这样外部才能访问
kubectl get svc -n kubernetes-dashboard #查看svc发现type是clusterip,这样外部无法访问 kubectl edit svc kubernetes-dashboard -n kubernetes-dashboard #将类型修改为NodePort
4、访问任意Node的IP加上SVC的端口就可以访问Dashboard了,然后看到需要一个token进行登录,这里需要创建一个用户并赋予一个角色
kubectl get clusterrole #查看默认的角色,比如里面有一个cluster-admin就是管理员角色
5、定义创建角色的清单文件,以创建admin-user的用户为例,然后将其设置为cluster-admin角色
vi admin-user.yaml apiVersion: v1 kind: ServiceAccount metadata: name: admin-user namespace: kubernetes-dashboard --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: admin-user roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: admin-user namespace: kubernetes-dashboard
6、使用清单文件创建用户
kubectl apply -f admin-user.yaml
7、查看token信息并对token解密
kubectl get secrets -n kubernetes-dashboard #可以看到多了admin-user的信息 kubectl get secrets -n kubernetes-dashboard admin-user-token-vw2mc -o yaml #查看该用户的具体信息,里面包含了已经加密过的token echo '将token复制到这里' | base64 -d #获取解密后的token
8、使用解密后的token登录dashboard,登录后可以看到K8S集群的各种信息
9、通过dashboard也可以简单的创建Deployment,其它类型的需要使用yaml来创建
评论