Dashboard部署

81 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

Dashboard部署

#github上的地址:https://github.com/kubernetes/dashboard
[root@master ~]# mkdir dashboard  && cd dashboard
[root@master dashboard]# wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml
[root@master dashboard]# vim recommended.yaml
kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
spec:
  type: NodePort            #新增
  ports:
    - port: 443
      nodePort: 30001       #新增
      targetPort: 8443
  selector:
    k8s-app: kubernetes-dashboard
[root@master dashboard]# kubectl apply -f recommended.yaml
[root@master dashboard]# kubectl get pod -n kubernetes-dashboard
NAME                                              READY   STATUS    RESTARTS   AGE
dashboard-metrics-scraper-head-6b4c6b5cb9-s96g7   1/1     Running   0          7m40s
kubernetes-dashboard-head-5cb97db4d9-l79c8        1/1     Running   0          7m40s
#查看部署位置和状态
[root@master dashboard]# kubectl describe pod kubernetes-dashboard-head-5cb97db4d9-l79c8 -n kubernetes-dashboard

[root@node1 ~]# docker images           #在node1的镜像中可以查看到dashboard
#如果失败,查看路由
[root@node1 ~]# cat /proc/sys/net/ipv4/ip_forward
1           #1为开启
[root@node1 ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward=1
[root@node1 ~]# iptables -nL
[root@node1 ~]# iptables -P FORWARD ACCEPT   #防火墙规则的问题
[root@master dashboard]# kubectl delete -f  head.yaml       #删除后重新创建
#访问地址和端口
[root@master dashboard]# kubectl get svc -o wide -n kubernetes-dashboard
NAME                        TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE     SELECTOR
dashboard-metrics-scraper   ClusterIP   10.107.243.213   <none>        8000/TCP        2m39s   k8s-app=dashboard-metrics-scraper
kubernetes-dashboard        NodePort    10.109.177.108   <none>        443:30001/TCP   2m39s   k8s-app=kubernetes-dashboard
[root@master ~]# kubectl get pods --all-namespaces      #查看所有pod
[root@master dashboard]#  kubectl get pod -o wide -n kubernetes-dashboard   #查看pod状态
登陆dashboard
[root@master dashboard]# kubectl get pod -o wide -n kubernetes-dashboard    
NAME         READY   STATUS    RESTARTS   AGE   IP               NODE    NOMINATED NODE   READINESS 
GATESdashboard-metrics-scraper-799d786dbf-gbjxr   1/1     Running   0          32m   10.244.166.133   node1   <none>           <none>
kubernetes-dashboard-546cbc58cd-zskc4        1/1     Running   0          32m   10.244.104.4     node2   <none>           <none>
#根据dashboard的pod位置,用该pod的ip地址用https:pod2:30001访问。token登陆。
###用https登陆。不然会无法登陆
[root@master dashboard]# vim create-admin.yaml      #set paste  vim里面复制保持格式不变
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard
---
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: kubernetes-dashboard
[root@master dashboard]# kubectl apply -f create-admin.yaml 
[root@master ~]# kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret |grep admin-user |awk '{print $1}')
Name:         admin-user-token-6c6gp
Namespace:    kubernetes-dashboard
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: admin-user
              kubernetes.io/service-account.uid: e01d1560-b317-4eb0-9e6c-62878ef8d860

Type:  kubernetes.io/service-account-token

Data
====
token:      eyJhbGciOiJSUzI1NiIsImtpZCI6Im5TLUpFNVBCcUR2TFZ6NnVSVHl2X2JUcHBNS0V3aFdWU01QMEZPb2ExRUUifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLTZjNmdwIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiJlMDFkMTU2MC1iMzE3LTRlYjAtOWU2Yy02Mjg3OGVmOGQ4NjAiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQ6YWRtaW4tdXNlciJ9.vuUYvDN748PCmAf6kAGTwKK_mTUWM2YOvUnGJ2riPIcL0T51sZoE337ABOreXrNJucQG_2-3BkNIpgJnZp-M-rPJplB1snDTC3XGKiJxpcZ89-XbTRzPHjwgWB7wd4IlGnPU9MroI9E2cHMZYH0zAZ09ilE7QkSsb3BDimo3yB_LQ7uOySxzjit-zs93zYQ41dnb9AuLLKE3MH0GtlMYozE6TEBM3guRzLo1TDwA-FUiraQ8L2BD9kU5B3CWhddRlIlMKXjUBmN3uHcsFY8lkqy3JY34883U9ZlKI8L38p2pcCILtr80UB0jzDg9m0SDLhgz-e4y2rL0MSPXrfpZpQca.crt:     1099 bytes
namespace:  20 bytes

#找到上面返回带有token的name。然后返回的token最好复制到记事本里面,把格式回车什么的处理一下,不然会不行。

Dashboard的插件安装

Github网站:github.com/kubernetes-…

[root@master ~]# yum -y install  git
[root@master ~]# git clone https://github.com/kubernetes-sigs/metrics-server.git
#修改安装脚本