Kubernetes学习笔记-2: 配置Kubernetes Dashboard

如果喜欢有个UI界面的话可以把KUbernetes Dasoboard 配置起来看看。以下是我在我之前配置的虚拟机cluster上配置Kubernetes Dashboard的过程。

前提条件

  • 拥有一个已经初始化完毕且包含worker node的cluster。 我自己是在MacBookPro上起了3个VirtualBox虚拟机搭建了简易Cluster。
  • 在master node 上跑 "kubectl get nodes", 可以看到三个node都是Ready状态:
[root@kub-master ~]# kubectl get nodes
NAME         STATUS    ROLES     AGE       VERSION
kub-master   Ready     master    1d        v1.11.3
kub-node01   Ready     <none>    1d        v1.11.3
kub-node02   Ready     <none>    1d        v1.11.3
[root@kub-master ~]#

配置从Mac主机直接操作Cluster

如果嫌每次运行Kubectl都得SSH进master node太麻烦,也可以从其他机器直接操作cluster。对我来说,就是在macBookPro笔记本电脑上进行配置即可。

首先安装kubectl,直接跑“brew install kubectl” 即可。安装完毕后在到当前用户根目录下创建个“.kube”目录。

将master node上的配置文件scp 下来:

scp root@<master node ip address>:/etc/kubernetes/admin.conf  ~/.kube/config

此时在本机运行 "kubectl get nodes" 就和在master node里运行完全一样了。

安装Kubernetes Dashbaord

经过上一步的配置,直接在本地跑一句话即可:

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

此时可以看到Kubernetes Dasoboard的Pod已经跑起来了:

[root@kub-master ~]# kubectl get pods -n kube-system -o wide | grep dashboard
kubernetes-dashboard-767dc7d4d-6rfkb   1/1       Running   0          6h        10.36.0.1      kub-node02   <none>
[root@kub-master ~]#

创建Authentication Token

Kubernetes Dashbaord 他和访问权限可以通过Kubeconfig或Token两种方式来实现,我是按照github上的说明配置了token

创建一个service account,比如命名为admin-user. 在本机编辑一个yaml 文件,比如叫admin-user.yaml,包含以下内容:

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

创建该用户:

kubectl apply -f ./admin-user.yaml

再创建一个角色绑定文件,比如叫"role-binding.yaml",包含如下内容:

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 ./role-binding.yaml

跑以下语句获取token:

[root@kub-master ~]# kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
Name:         admin-user-token-dt8fb
Namespace:    kube-system
Labels:       <none>
Annotations:  kubernetes.io/service-account.name=admin-user
              kubernetes.io/service-account.uid=0eb54c95-c178-11e8-87b2-08002763696f

Type:  kubernetes.io/service-account-token

Data
====
ca.crt:     1025 bytes
namespace:  11 bytes
token:      eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLWR0OGZiIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiIwZWI1NGM5NS1jMTc4LTExZTgtODdiMi0wODAwMjc2MzY5NmYiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06YWRtaW4tdXNlciJ9.eEOjIFDAnqfu--cA4X1AADsVQ2RLulkP0HIDq84G0capZBRKPs1fjjOGM67wmuQBbhMpi18nfi_moKknpJ_xBPMNY29_GezrC5-BHAY_CjMLn4CJyq--DFvh7Es_xoymndS9vBQHeBPgpqhjzKs9gc2AaLvVDz7Ls1GbvbS93SptV8JC4hmSOVPWhkGqwjx-Ijk-X0Lq52S9ZeFpSYmy0vUJMkcIpUtUiuBsTJBxYBbTuX5maIy1q_9fmmyMJnr0ztuz3gRyj8pLVUR7PCEueoj6ZhgQgmKIHT46xRSkyzkcNOTZLo4qENouKmLOKKTEISI-kx2I9-oMH2z8wXUfwg

登录Kubernetes Dashboard

在本机跑一下“kubectl proxy”, 再在本地浏览器里访问如下URL:

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

此时应该可以看到登录页面,选择Token方式,再把之前保存的Token粘贴进来,点击“Sign In”按钮。

 此时Dashboard首页就应该出现了:

参考文献

  • https://github.com/kubernetes/dashboard
  • https://github.com/kubernetes/dashboard/wiki/Creating-sample-user

猜你喜欢

转载自www.cnblogs.com/cbw99/p/9709180.html