注:使用的是基于VirtualBox的双网卡(NAT网络、Host-only)虚拟机(CentOS 7)环境。

官网:https://github.com/kubernetes/dashboard

参考:

安装

查看最新Relase版本:
https://github.com/kubernetes/dashboard/releases

即,v1.10.1

获取配置文件

alias ksys='kubectl -n kube-system'
下载配置文件:

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

去除Secret

我们需要重新生成secret,并且将该配置文件中创建secret的配置文件信息去掉

  1. # ------------------- Dashboard Secret ------------------- #
  2. #apiVersion: v1
  3. #kind: Secret
  4. #metadata:
  5. # labels:
  6. # k8s-app: kubernetes-dashboard
  7. # name: kubernetes-dashboard-certs
  8. # namespace: kube-system
  9. #type: Opaque
  10. #---

注: 前边加 # 注释掉。

修改镜像文件

如果被墙了

  • 设置docker仓库
  • 修改镜像
    1. vi kubernetes-dashboard.yaml
    image:行修改为:
    1. image: mirrorgooglecontainers/kubernetes-dashboard-amd64:v1.10.1

    修改为NodePort

    找到行:
    1. kind: Service
    将下边
    1. kubectl -n kube-system edit svc kubernetes-dashboard
    spec.type 改为 NodePort

    注:
  • nodePort: 31234 表示使用固定的端口 31234,如果没有指定k8s会自动生成一个端口。

生成证书

生成证书

  1. openssl genrsa -out dashboard.key 2048
  2. openssl req -new -out dashboard.csr -key dashboard.key -subj '/CN=10.141.179.103'
  3. openssl x509 -req -in dashboard.csr -signkey dashboard.key -out dashboard.crt
  4. openssl x509 -in dashboard.crt -text -noout

创建Secret

  1. kubectl -n kube-system create secret generic kubernetes-dashboard-certs --from-file=dashboard.key --from-file=dashboard.crt

查看Secret

  1. kubectl -n kube-system describe secret kubernetes-dashboard-certs

注:

  • 10.141.179.103 是节点的IP,通过此IP访问dashboard(即https://10.141.179.103:xxxxx

安装集群

  1. kubectl apply -f kubernetes-dashboard.yaml

创建用户

token方式登录用户

  • 创建用于登录dashborad的serviceaccount账号

    1. kubectl create serviceaccount dashboard-admin -n kube-system
  • 创建一个clusterrolebingding,将名称为cluster-admin的clusterrole绑定到我们刚刚从的serviceaccount上,名称空间和sa使用:作为间隔

    1. kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
  • 创建完成后系统会自动创建一个secret,名称以serviceaccount(即,dashboard-admin)名称开头

    1. kubectl get secret -n kube-system | grep dashboard-admin
  • 使用describe查看该secret的详细信息,主要是token一段

    1. kubectl describe secret `kubectl get secret -n kube-system | grep dashboard-admin|awk '{print $1}'` -n kube-system
文档更新时间: 2019-08-23 08:08   作者:admin