安装 Kubernetes Dashboard

安装 Kubernetes Dashboard

按照官网上的说法,安装非常简单,直接执行下面这个命令就可以了
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml

但是由于国内的环境,实际上镜像是下载不下来的。所以需要稍稍麻烦一下。

$ wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
$ vim kubernetes-dashboard.yaml

将其中的

image: k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1

改成

image: registry.aliyuncs.com/google_containers/kubernetes-dashboard-amd64:v1.10.1

然后继续

$ kubectl apply -f kubernetes-dashboard.yaml

这样之后我们的 Kubernetes Dashboard 就运行起来了。

然后可以使用kubectl get pods命令来查看部署状态:

$ kubectl get pods -n kube-system
NAME                                    READY   STATUS    RESTARTS   AGE
calico-node-892sq                       2/2     Running   0          172m
coredns-fb8b8dccf-ss6vw                 1/1     Running   0          3h
coredns-fb8b8dccf-tnhrf                 1/1     Running   0          3h
etcd-k8s-master                         1/1     Running   0          179m
kube-apiserver-k8s-master               1/1     Running   0          179m
kube-controller-manager-k8s-master      1/1     Running   0          179m
kube-proxy-dv6xg                        1/1     Running   0          3h
kube-scheduler-k8s-master               1/1     Running   0          179m
kubernetes-dashboard-78f989899d-qnrd6   1/1     Running   0          43m

如果 Kubernetes 是本地的,那么直接输入下面命令

$ kubectl proxy

就可以访问 Dashboard 了

http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/

如果是远程的,需要外网访问,那么可以输入下面命令

$ kubectl proxy --address='0.0.0.0' --accept-hosts='^*$' 

然后访问

http(s): //MasterIP:8001/api/v1/namespaces/kube-system/services/http(s):kubernetes-dashboard:/proxy/

这样会发现,我们还需要登录

生成用户 Token

参考官方的例子 https://github.com/kubernetes/dashboard/wiki/Creating-sample-user

创建一个用户

# admin-user.yaml apiVersion: v1 kind: ServiceAccount metadata: name: admin-user namespace: kube-system

执行kubectl create命令

$ kubectl create -f admin-user.yaml

绑定权限

默认情况下,kubeadm创建集群时已经创建了admin角色,我们直接绑定即可:

# admin-user-role-binding.yaml 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

执行kubectl create命令:

$ kubectl create -f  admin-user-role-binding.yaml

生成 Token

现在我们需要找到新创建的用户的Token,以便用来登录dashboard:

$ kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}') Name:         admin-user-token-jhr7k
Namespace:    kube-system
Labels: <none> Annotations:  kubernetes.io/service-account.name: admin-user
              kubernetes.io/service-account.uid: 5135e54c-6feb-11e9-93ab-fa163e67e1f7

Type:  kubernetes.io/service-account-token

Data ==== ca.crt:     1025 bytes
namespace:  11 bytes
token: (这里假装有一个很长的 Token) 

然后把 Token 复制到登录界面的 Token 输入框中,就可以进入 Dashboard 了

这样实际上还是很麻烦,因为默认好像是 https 的,所以你点击的登录仍然不会有反应。

最简单的方式是NodePort

NodePort

NodePort是将节点直接暴露在外网的一种方式,不过只建议在开发环境,单节点的安装方式中使用。

启用NodePort很简单,只需执行kubectl edit命令进行编辑:

$ kubectl -n kube-system edit service kubernetes-dashboard

然后我们将其中的type: ClusterIP修改为type: NodePort,保存后使用kubectl get service命令来查看自动生产的端口:

$ kubectl -n kube-system get service kubernetes-dashboard
NAME                   TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S) AGE
kubernetes-dashboard   NodePort   10.102.85.53 <none> 443:30943/TCP   3h45m

然后,可以访问

http(s): //MasterIP:30943

并且用之前生成的 Token 登录即可

全部评论

相关推荐

09-27 14:42
已编辑
浙江大学 Java
未来未临:把浙大放大加粗就行
点赞 评论 收藏
分享
11-01 08:48
门头沟学院 C++
伤心的候选人在吵架:佬你不要的,能不能拿户口本证明过户给我。。球球了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务