BenjaminYang In solitude, where we are least alone

k8s的Dashboard

 前面章节 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 的绝大部分功能,大家可以根据情况进行选择。

1.Dashboard安装

Kubernetes 默认没有部署 Dashboard,可通过如下命令安装:

kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml

Dashboard 会在 kube-system namespace 中创建自己的 Deployment 和 Service。

执行了配置半天pod起不来

查看日志

[root@k8s-master k8s]# kubectl describe pods --namespace=kube-system kubernetes-dashboard-77fd78f978-v6zcx 

不能科学上网导致镜像pull失败,那就在能下载镜像的地方下载然后将镜像改成需要的名字(所有节点都要执行)

[root@k8s-master k8s]# docker pull mirrorgooglecontainers/kubernetes-dashboard-amd64:v1.10.0
v1.10.0: Pulling from mirrorgooglecontainers/kubernetes-dashboard-amd64
d66237a56abc: Pull complete 
Digest: sha256:e4b764fa9df0a30c467e7cec000920ea69dcc2ba8a9d0469ffbf1881a9614270
Status: Downloaded newer image for mirrorgooglecontainers/kubernetes-dashboard-amd64:v1.10.0
[root@k8s-master k8s]# docker images|grep kubernetes-dashboard
mirrorgooglecontainers/kubernetes-dashboard-amd64   v1.10.0             0dab2435c100        2 months ago        122MB
[root@k8s-master k8s]# docker tag mirrorgooglecontainers/kubernetes-dashboard-amd64:v1.10.0 k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.0
[root@k8s-master k8s]# docker rmi  mirrorgooglecontainers/kubernetes-dashboard-amd64:v1.10.0 

 指定删除重新apply一下配置

kubectl delete -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml

 

 Dashboard 会在 kube-system namespace 中创建自己的 Deployment 和 Service。

因为 Service 是 ClusterIP 类型,为了方便使用,我们可通过 kubectl --namespace=kube-system edit service kubernetes-dashboard 修改成 NodePort 类型。

 保存修改,此时已经为 Service 分配了端口 31551。

创建rdbc授权文件kubernetes-dashboard-rbac.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kube-system
 
---
apiVersion: rbac.authorization.k8s.io/v1beta1
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
kubectl apply -f kubernetes-dashboard-rbac.yaml
#查看admin-user用户token
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
 
#复制token,在浏览器上选择令牌方式
使用火狐浏览器,https://ip:port

 

 

posted @ 2018-11-18 16:20  benjamin杨  阅读(3414)  评论(0编辑  收藏  举报