安装 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 登录即可

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值