centos7中kubernetes部署dashboard可视化插件

Dashboard简介
在 Kubernetes 社区中,有一个很受欢迎的 Dashboard 项目,它可以给用户提供一个可视化的 Web 界面来查看当前集群的各种信息。用户可以用 Kubernetes Dashboard 部署容器化的应用、监控应用的状态、执行故障排查任务以及管理 Kubernetes 各种资源。

部署Dashboard

  • kubernetes集群准备

kubeadm部署3节点kubernetes1.13.0集群(master节点x1,node节点x2)前面文档已经部署完成,不再赘述
centos7中kubernetes部署dashboard可视化插件_第1张图片

  • 我的dashboad部署在master主机上

这里部署dashboard v1.10.1版本。
由于yaml配置文件中指定镜像从google拉取,先下载yaml文件到本地,修改配置从阿里云仓库拉取镜像

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

修改yaml配置文件image部分,指定镜像从阿里云镜像仓库拉取:

[centos@k8s-master ~]$ vim kubernetes-dashboard.yaml
......
 containers:
      - name: kubernetes-dashboard
        #image: k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1
        image: registry.cn-hangzhou.aliyuncs.com/google_containers/kubernetes-dashboard-amd64:v1.10.1

然后执行以下命令部署dashboard服务:

[centos@k8s-master ~]$ kubectl create -f kubernetes-dashboard.yaml

查看Pod 的状态为running说明dashboard已经部署成功:

[centos@k8s-master ~]$ kubectl get pod --namespace=kube-system -o wide | grep dashboard

Dashboard 会在 kube-system namespace 中创建自己的 Deployment 和 Service:

  • 用下列命令查看
kubectl get deployment kubernetes-dashboard --namespace=kube-system
kubectl get service kubernetes-dashboard --namespace=kube-system
  • 访问dashboard

有以下几种方式访问dashboard:
Nodport方式访问dashboard,service类型改为NodePort
loadbalacer方式,service类型改为loadbalacer
Ingress方式访问dashboard
API server方式访问 dashboard
kubectl proxy方式访问dashboard

访问方式很多,但我认为nodeport是最简便的,所以我选择这种方式,其他方式请自行研究
NodePort方式
为了便于本地访问,修改yaml文件,将service改为NodePort 类型:

[centos@k8s-master ~]$ vim kubernetes-dashboard.yaml
找到下列行修改为下列格式
spec:
  type: NodePort       #增加type: NodePort
  ports:
    - port: 443
      targetPort: 8443
      nodePort: 31620  #增加nodePort: 31620

重新应用yaml文件
kubectl apply -f kubernetes-dashboard.yaml

查看service,TYPE类型已经变为NodePort,端口为31620

[centos@k8s-master ~]$ kubectl get service -n kube-system | grep dashboard
kubernetes-dashboard   NodePort    10.107.160.197   <none>        443:31620/TCP   

浏览器访问https://10.0.13.106:31620
centos7中kubernetes部署dashboard可视化插件_第2张图片
Dashboard 支持 Kubeconfig 和 Token 两种认证方式,我们这里选择Token认证方式登录:执行下列命令

  • 创建登录用户
创建dashboard-adminuser.yaml:
vim dashboard-adminuser.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kube-system
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


执行yaml文件:
kubectl create -f dashboard-adminuser.yaml

说明:上面创建了一个叫admin-user的服务账号,并放在kube-system命名空间下,并将cluster-admin角色绑定到admin-user账户,这样admin-user账户就有了管理员的权限。默认情况下,kubeadm创建集群时已经创建了cluster-admin角色,我们直接绑定即可

查看admin-user账户的token
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')

显示的最下面有token值,复制下来
把获取到的Token复制到登录界面的Token输入框中:成功登录

你可能感兴趣的:(centos7中kubernetes部署dashboard可视化插件)