一 Kubernetes dashboard简介

1.1 Web UI简介

dashboard是基于Web的Kubernetes用户界面。可以使用dashboard将容器化应用程序部署到Kubernetes集群,对容器化应用程序进行故障排除,以及管理集群资源。可以使用dashboard来概述群集上运行的应用程序,以及创建或修改单个Kubernetes资源(例如部署、任务、守护进程等)。可以使用部署向导扩展部署,启动滚动更新,重新启动Pod或部署新应用程序。
dashboard还提供有关群集中Kubernetes资源状态以及可能发生的任何错误的信息。

二 dashboard部署

2.1 下载yaml

 [root@master ~]# mkdir dashboard					#建议将yaml存储到本地
[root@master ~]# cd dashboard/
[root@master dashboard]# wget https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended/kubernetes-dashboard.yaml
 

2.2 修改为国内源

 [root@master ~]# cd dashboard/
[root@master dashboard]# vi kubernetes-dashboard.yaml
……
image: mirrorgooglecontainers/kubernetes-dashboard-amd64:v1.10.1
……
 
提示:将yaml文件中的image字段修改为mirrorgooglecontainers/kubernetes-dashboard-amd64:v1.10.1。

2.3 安装

 [root@master dashboard]# kubectl apply -f kubernetes-dashboard.yaml
[root@master ~]# kubectl get pod --all-namespaces -o wide| grep kubernetes-dashboard #确认验证
kube-system kubernetes-dashboard-68ddcc97fc-c5thv 0/1 Running 0 30s <none> node2 <none> <none>
 

三 dashboard访问方式

3.1 访问方式概述

安装dashboard后,需要为用户配置对群集资源的访问控制。从版本1.7开始,dashboard不再具有默认授予的完全管理员权限。默认所有权限都被撤销,并且只授予了使Dashboard工作所需的最小权限。
提示:本说明仅针对使用Dashboard 1.7及更高版本的用户。如果确信dashboard需要授予管理员权限,可参考:《附006.Kubernetes身份认证》
通常,其他应用程序不应直接访问dashboard。
dashboard有以下三种访问方式:
kubectl proxy:只能在localhost上访问。访问地址:http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
NodePort:编辑 kubernetes-dashboard.yaml文件中,将 type: ClusterIP 改为 type: NodePort,确认dashboard运行在哪个节点后。访问地址:https://<node-ip>:<nodePort>
apiserver:需要在浏览器中安装用户证书。访问地址: https://<master-ip>:<apiserver-port>/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
提示:kubectl proxy方式不推荐,建议使用有效证书来建立安全的HTTPS连接。

3.2 kubectl proxy

 [root@master ~]# kubectl proxy
[root@master ~]# curl http://127.0.0.1:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/ #访问
 
提示:建议通过后端形式,并且允许所有主机访问的方式:
 [root@master ~]# nohup kubectl proxy --address='0.0.0.0' --accept-hosts='^*$' &

3.3 NodePort

NodePort访问仪表板的方式仅建议用于单节点设置中的Kubernetes环境。
 [root@master ~]# kubectl -n kube-system edit service kubernetes-dashboard
……
type: NodePort
……
#将type: ClusterIP 修改为 type: NodePort。
 
提示:以上操作也可通过以下命令一步完成:
 [root@master ~]# kubectl get pods --namespace=kube-system | grep dashboard
kubernetes-dashboard-68ddcc97fc-c5thv 1/1 Running 0 3h14m
[root@master ~]# kubectl describe pod kubernetes-dashboard-68ddcc97fc-c5thv --namespace=kube-system | grep Node
Node: node2/172.24.8.73
 
测试访问:
浏览器访问:http://172.24.8.73:30343/
提示:若部署的Kubernetes集群为多节点集群,需要通过以上方式查找dashboard所在的node节点,若为单节点集群,则直接访问http://<master>:<port>即可。

3.4 apiserver

若Kubernetes API服务器公开并可从外部访问,可浏览器直接访问:https://172.24.8.71:6443/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
注意:apiserver默认情况下使用system:anonymous用户进行访问,因此没有权限打开相应资源。只有在选择在浏览器中安装用户证书时,才能使用这种访​​问仪表板的方式。
NodePort和apiserver都需要配置相应的认证才可访问,确定某种方式方式后需要配置认证类型。

3.5 Ingress

dashboard也可以使用ingress进行资源公开。
可参考:https://kubernetes.io/docs/concepts/services-networking/ingress/

四 dashboard验证方式

浏览器访问的时候需要加载相应证书,部署完成后默认已经创建相应证书,可参考附01进行导出。由于Kubernetes默认证书可能过期导致无法访问dashboard,本实验在已成功部署Kubernetes后手动重新创建证书。

4.1 创建证书

 [root@master ~]# mkdir /etc/kubernetes/dash_pki
[root@master ~]# cd /etc/kubernetes/dash_pki/
[root@master dash_pki]# openssl genrsa -out ca.key 2048 #生成一个 2048 bit 的 ca.key
[root@master dash_pki]# openssl req -x509 -new -nodes -key ca.key -subj "/CN=172.24.8.71" -days 10000 -out ca.crt #根据 ca.key 生成一个 ca.crt(使用 -days 设置证书的有效时间)
[root@master dash_pki]# openssl genrsa -out server.key 2048 #生成一个 2048 bit 的 server.key
[root@master dash_pki]# openssl req -new -key server.key -subj "/CN=172.24.8.71" -out server.csr #根据 server.key 生成一个 server.csr
[root@master dash_pki]# openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 10000 #根据 ca.key、ca.crt 和 server.csr 生成 server.crt
subject=/CN=172.24.8.71
Getting CA Private Key
[root@master dash_pki]# openssl x509 -noout -text -in ./server.crt #查看证书
 

4.2 修改默认证书配置

 [root@master ~]# cd dashboard/
[root@master dashboard]# kubectl delete -f kubernetes-dashboard.yaml #删除使用默认证书所创建的dashboard
[root@master dashboard]# ll /etc/kubernetes/dash_pki/
[root@master dashboard]# kubectl create secret generic kubernetes-dashboard-certs --from-file="/etc/kubernetes/dash_pki/server.crt,/etc/kubernetes/dash_pki/server.key" -n kube-system #挂载新证书到dashboard
[root@master dashboard]# kubectl get secret kubernetes-dashboard-certs -n kube-system -o yaml #查看新证书
 

4.3 重新部署dashboard

 [root@master dashboard]# kubectl apply -f kubernetes-dashboard.yaml
[root@master dashboard]# kubectl get pods --namespace=kube-system | grep dashboard #确认验证
 

4.4 导入证书

将server.crt导入IE浏览器,导入操作略。

4.5 访问测试

本试验基于apiserver访问方式+Kubeconfig身份验证进行登录。
通过apiserver形式访问:https://172.24.8.71:6443/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
提示:dashboard登录整个流程可参考:https://www.cnadn.net/post/2613.htm
提示:apiserver方式见3.4,Kubeconfig验证方式见《附006.Kubernetes身份认证》中的3.5。
 

附001:导出当前Kubernetes证书

[root@master ~]# grep 'client-certificate-data' ~/.kube/config | head -n 1 | awk '{print $2}' | base64 -d >> kubecfg.crt
[root@master ~]# grep 'client-key-data' ~/.kube/config | head -n 1 | awk '{print $2}' | base64 -d >> kubecfg.key
[root@master ~]# openssl pkcs12 -export -clcerts -inkey kubecfg.key -in kubecfg.crt -out k8s.crt -name "kubernetes-client"
Enter Export Password:[x120952576]
Verifying - Enter Export Password:[x120952576]
使用相应的密码,将k8s.crt导入IE浏览器,导入操作略。

附004.Kubernetes Dashboard简介及使用的更多相关文章

  1. 附024.Kubernetes全系列大总结

    Kubernetes全系列总结如下,后期不定期更新.欢迎基于学习.交流目的的转载和分享,禁止任何商业盗用,同时希望能带上原文出处,尊重ITer的成果,也是尊重知识.若发现任何错误或纰漏,留言反馈或右侧 ...

  2. 附010.Kubernetes永久存储之GlusterFS超融合部署

    一 前期准备 1.1 基础知识 在Kubernetes中,使用GlusterFS文件系统,操作步骤通常是: 创建brick-->创建volume-->创建PV-->创建PVC--&g ...

  3. Kubernetes Dashboard - 每天5分钟玩转 Docker 容器技术(173)

    前面章节 Kubernetes 所有的操作我们都是通过命令行工具 kubectl 完成的.为了提供更丰富的用户体验,Kubernetes 还开发了一个基于 Web 的 Dashboard,用户可以用 ...

  4. Kubernetes dashboard安装

    1. To download Dashboard plugin deployment YAML file from internet. #cd /home #mkdir k8s #cd k8s # w ...

  5. centos7下kubernetes(5。部署kubernetes dashboard)

    基于WEB的dashboard,用户可以用kubernetes dashboard部署容器话的应用,监控应用的状态,执行故障排查任务以及管理kubernetes各种资源. 在kubernetes da ...

  6. kubernetes学习笔记之十一:kubernetes dashboard认证及分级授权

    第一章.部署dashboard 作为Kubernetes的Web用户界面,用户可以通过Dashboard在Kubernetes集群中部署容器化的应用,对应用进行问题处理和管理,并对集群本身进行管理.通 ...

  7. Mac搭建kubernetes dashboard全流程

    1. 下载dashboard文件: curl -o kubernetes-dashboard.yaml https://raw.githubusercontent.com/kubernetes/das ...

  8. kubernetes Dashboard 使用RBAC 权限认证控制

    kubernetes RBAC实战 环境准备 先用kubeadm安装好kubernetes集群,[包地址在此](https://market.aliyun.com/products/56014009/ ...

  9. docker for mac 安装 kubernetes、kubernetes dashboard

    安装参考地址(按照此文档,安装成功):https://yq.aliyun.com/articles/508460 官方说明:https://kubernetes.io/docs/tasks/acces ...

随机推荐

  1. 在eclipse中使用Lombok

    1.下载Lombok.jar http://projectlombok.googlecode.com/files/lombok.jar2.运行Lombok.jar: java -jar  D:\001 ...

  2. TCP/IP协议组随笔

    原文:https://my.oschina.net/xianggao/blog/654677 IP层负责网络主机的定位,数据传输的路由,由IP地址可以唯一的确定Internet上的一台主机. TCP层 ...

  3. Java高级特性—并发包

    1). java并发包介绍 JDK5.0 以后的版本都引入了高级并发特性,大多数的特性在java.util.concurrent 包中,是专门用于多线程发编程的, 主要包含原子量.并发集合.同步器.可 ...

  4. kibana显示elasticsearch集群中flume到入的日志

    日志通过flume导入elasticsearch集群见这里:flume 日志导入elasticsearch kibana介绍 kibana主页 kibana是一个功能强大的elasticsearch数 ...

  5. 倍福TwinCAT(贝福Beckhoff)基础教程6.1 TwinCAT如何与高级语言通讯

    因为使用TwinCAT的人用途不同,重视点就不同.如果用来代替传统PLC+HMI做项目的,很少会需要用到跟高级语言通讯,但是如果是用来做运动控制平台如做机器人运动控制器的,就肯定会用到.不管是否用得上 ...

  6. 倍福TwinCAT(贝福Beckhoff)基础教程1.2 TwinCAT安装配置

    由于TC2和TC3都有可能用到,个人推荐都安装,但是注意必须是先安装的TwinCAT2,然后安装TwinCAT3,如果反了可能两个都没法用(打开TcSwitchRuntime提示Both TwinCA ...

  7. Yii2数据库分页操作方法介绍

    本章节将介绍怎样怎样创建一个从数据表 country 中获取国家数据并显示出来的页面. 为了实现这个目标,你将会配置一个数据库连接.创建一个活动记录类,而且创建一个操作及一个视图. 贯穿整个章节,你将 ...

  8. 操作LOG文件-删除log目录下,所有的空文件-删除5天前的文件

    # 1.logs目录下,有一部分文件是空的# 1.删除log目录下,所有的空文件# 2.删除5天前的文件 # 需求分析:# 1.os.walk()获取到所在以.log结尾的文件# 2.判断文件的大小, ...

  9. ubuntu下USB连接Android手机

    初始工作:将Android手机通过usb连接到电脑,之后点击VM-Removable Devices-google Android - Connect,即可. 若通过usb连接到电脑,Removabl ...

  10. android性能优化学习笔记(加快应用程序启动速度:)

    一:安卓中应用程序的启动方式有两种: 冷启动:后台没有该应用进程,系统会重新创建一个进程分配给该应用(所以会先创建和初始化Application类,再创建和初始化MainActivity,包括测量,布 ...