- 前面博客Kubernetes 所有的操作我们都是通过命令行工具 kubectl 完成的。为了提供更丰富的用户体验,Kubernetes 还开发了一个基于 Web 的 Dashboard,用户可以用 Kubernetes Dashboard 部署容器化的应用、监控应用的状态、执行故障排查任务以及管理 Kubernetes 各种资源。
- 在 Kubernetes Dashboard 中可以查看集群中应用的运行状态,也能够创建和修改各种 Kubernetes 资源,比如 Deployment、Job、DaemonSet 等。用户可以 Scale Up/Down Deployment、执行 Rolling Update、重启某个 Pod 或者通过向导部署新的应用。Dashboard 能显示集群中各种资源的状态以及日志信息。
- 可以说,Kubernetes Dashboard 提供了 kubectl 的绝大部分功能,大家可以根据情况进行选择。
可视化管理
- 下载镜像和.yaml文件,将.yaml文件移到kubeadm用户的家目录下,给三个节点都导入镜像。(动态调度,master会调度后端的node节点,不同于swarm)
lftp 172.25.11.250:/pub/k8s> mget kubernetes-dashboard.yaml kubernetes-dashboard.tar
[root@server1 ~]# scp kubernetes-dashboard.tar server2:
[root@server1 ~]# scp kubernetes-dashboard.tar server3:
[root@server1 ~]# docker load -i kubernetes-dashboard.tar
[root@server2 ~]# docker load -i kubernetes-dashboard.tar
[root@server3 ~]# docker load -i kubernetes-dashboard.tar
- 部署,这里部署可能存在一个问题,在 yaml 文件 kubernetes-dashboard.yaml 中拉取了一个镜像k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1,没有配置 docker 代理网络的可能拉取不下来,这里提供下载,使用 docker load 一下即可。
[kubeadm@server1 ~]$ vim kubernetes-dashboard.yaml
112 image: k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1
[kubeadm@server1 ~]$ kubectl apply -f kubernetes-dashboard.yaml
[kubeadm@server1 ~]$ kubectl get pods -n kube-system
[kubeadm@server1 ~]$ kubectl get deployments. -n kube-system
- 修改下载的yaml文件,添加type:NodePort,暴露出 Dashboard 端口,方便外部访问。
[kubeadm@server1 ~]$ kubectl edit service kubernetes-dashboard -n kube-system #文件到数第三行修改 type为: NodePort
[kubeadm@server1 ~]$ kubectl describe svc kubernetes-dashboard -n kube-system #查看随机分配的端口
[kubeadm@server1 ~]$ kubectl get secrets -n kube-syste
kubectl get secrets -n kube-system | grep kubernetes-dashboard
- 创建服务帐号和集群角色绑定配置文件。创建
dashboard-admin.yaml
文件,加入以下内容。
[kubeadm@server1 ~]$ vim dashboard-admin.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kube-system
---
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: kube-system
[kubeadm@server1 ~]$ kubectl apply -f dashboard-admin.yaml
[kubeadm@server1 ~]$ kubectl get secrets -n kube-system | grep admin
[kubeadm@server1 ~]$ kubectl describe secrets admin-user-token-8g42h -n kube-system #查看获取的token
- 浏览器中输入:
https://172.25.11.1:31124
,端口为刚才分配到的端口,利用刚才的token登陆Dashboard。