`
itbeingpotato
  • 浏览: 3333 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
社区版块
存档分类
最新评论

kubernetes dashboard源码编译运行(主机+docker)

阅读更多

kubernetes dashboard 介绍

  • 是一款开源软件,它提供了界面化视图,让k8s集群管理者,可以通过界面化进行管理k8s集群。比如pod的创建、deployment的创建等等。
  • 在kubernetes dashboard 源码编译安装之前,你需要在linux(作者使用虚拟机centos7)上部署一个k8s集群,单机或者多节点均可。简易搭建k8s集群可以参考https://github.com/gjmzj/kubeasz自动化搭建K8S集群。

编译环境前提条件

 

  • Docker,如果前面已经使用脚本搭建完成K8S集群,则机器上会自动存在Doker。
  • Golang 1.8+  (可以使用 yum install -y golang 进行安装),kubernetes dashboard 采用angular+go进行开发的,所以需要安装golang来运行go语言环境。
  • Node.js 8+ and npm 5。
  • 1.可以先去https://npm.taobao.org/mirrors/node进行查看所需要的版本,作者使用的是8.5.0版本。
  • 2.下载nodejs:wget -c https://npm.taobao.org/mirrors/node/v8.5.0/node-v8.5.0-linux-x64.tar.xz
  • 3.解压tar -xvf node-v8.5.0-linux-x64.tar.xz
  • 4.进入node-v8.5.0-linux-x64/bin
  • 5.测试
  • [root@kubernetes bin]# ./node -v
  • v8.5.0
  • 6.出现版本号就ok,然后建立软连接到/usr/local/bin
  • ln -s  完整目录/node-v8.5.0-linux-x64/bin/npm /usr/local/bin/npm
  • ln -s  完整目录/node-v8.5.0-linux-x64/bin/node /usr/local/bin/node
  • 7.测试
  • [root@kubernetes bin]# node -v
  • v8.5.0
  • [root@kubernetes bin]# npm -v
  • 5.3.0
  • JDK
  • 作者编译的是kubernetes 1.8.2版本的,最初使用的是jdk1.7最后导致编译报错。最终使用jdk1.8得以解决。
  • Gulp.js 3.9+,这个是 一个自动化构建工具, 使用命令npm install --global gulp-cli 进行安装
  • 安装完毕执行 
  • [root@kubernetes source]# gulp -v
  • [18:42:54] CLI version 2.0.1
  • 发现版本是2.0.1这个先不用管,如果发现命令没有找到,那就去node-v8.5.0-linux-x64/bin目录下找,同样加入软连接即可。

下载源码

  • github 地址是https://github.com/kubernetes/dashboard
  • 作者本次并未下载head版本,下载的是1.8.2版本,地址是https://github.com/kubernetes/dashboard/archive/v1.8.2.tar.gz
  • wget -c https://github.com/kubernetes/dashboard/archive/v1.8.2.tar.gz
  • 解压 tar -zvxf v1.8.2.tar.gz
  • cd dashboard-1.8.2
  • 执行命令 npm i --unsafe-perm,这个命令是下载依赖库,时间较长。
  • 执行完毕,在执行
  • [root@kubernetes dashboard-1.8.2]# gulp -v
  • [18:47:27] Failed to load external module @babel/register
  • [18:47:27] Requiring external module babel-register
  • [18:47:27] CLI version 2.0.1
  • [18:47:27] Local version 3.9.1
  • 发现本地版本是3.9.1,全局是2.0.1.

环境已经准备好,开始编译

  • 设置一个环境变量
  • 可以通过修改/etc/profile文件实现
  • 在最后加上export KUBE_DASHBOARD_APISERVER_HOST="http://127.0.0.1:8080"
  • 这个是kubernetes 集群 kube-serverapi的地址,请根据实际进行修改
  • 修改build/serve.js
  • 找到target: conf.frontend.serveHttps
  • 将https://localhost:${conf.backend.secureDevServerPort}和http://localhost:${conf.backend.devServerPort}中的localhost修改为127.0.0.1
  • 原因是,作者在配置时,如果是localhost,则绑定的127.0.0.1:9090,然后通过其他主机进行访问时ip:9090,访问不到。修改之后即可。
  • 执行 gulp build 进行编译源码。该时间较长。
  • 编译成功,执行 gulp serve进行启动,该时间作者启动使用了8分钟左右。
  • 如果你看到以下界面,那么恭喜你,启动成功了。

     
  • 访问ip:9090进行访问。界面挺漂亮的。


  •  
  • 如果你想在docker中运行,则需要编译打包成镜像
  • 使用命令gulp docker-image:head  ,head是版本号。过程时间较长
  • 通过docker images 可以查询到打包后的镜像。


  •  
  • 镜像运行,可以通过k8s集群进行运行。
  • 如果你使用了上面的链接搭建了一个小的集群,则进入目录/etc/ansible/manifests/dashboard
  •  vi kubernetes-dashboard.yaml 
  • 将镜像mirrorgooglecontainers/kubernetes-dashboard-amd64:v1.6.3改成本地kubernetes/kubernetes-dashboard-amd64:head
  • 并且加上imagePullPolicy: IfNotPresent


  •  
  • 执行命令 kubectl create -f .   进行创建
  • 通过kubectl get pod --all-namespaces  查看所有pod


  •  
  • 出现以上则ok,通过地址https://10.13.11.25:6443/api/v1/namespaces/kube-system/services/kubernetes-dashboard/proxy/#!/cluster?namespace=default进行访问



修改前端界面

  • 源码目录在dashboard-1.8.2/src/app下面
  • 其中frontend是前端界面(使用angular开发)
  • backend是后端(采用go 、go-restful开发)
  • 如果修改前端界面,比如首页,修改完毕之后,则界面F5进行刷新则可以直接看到效果(非Docker容器)
  • 接下来作者就要学习angular前端框架了。

注意事项(作者在搭建环境的时候踩了好多雷和坑):

  • 具体的就不一一细说了,重要的是前期准备,环境的搭建。
  • 一个是jdk版本的问题
  • 要注意设置KUBE_DASHBOARD_APISERVER_HOST这个环境变量
  • 修改serve.js
  • 创建软连接等。
  • 大小: 76.6 KB
  • 大小: 106.6 KB
  • 大小: 33 KB
  • 大小: 47.5 KB
  • 大小: 17 KB
  • 大小: 83.1 KB
分享到:
评论

相关推荐

    使用 Kuboard 替代 Kubernetes Dashboard 概述

    概述 Kubernetes 已然是当下容器编排领域事实上的标准,各大云服务商都急于推出 Kubernetes 服务,互联网公司也... Kubernetes 官方的图形管理界面 Kubernetes Dashboard 面向企业私有化部署的 Rancher 什么是 Kuboard

    Kubernetes Dashboard 部署.docx

    ### Kubernetes Dashboard 部署详解 #### 一、概述 Kubernetes Dashboard 是一款基于 Web 的图形界面工具,用于管理 Kubernetes 集群。通过 Dashboard,用户可以执行多种操作,包括但不限于部署应用程序、管理资源...

    Go-KubernetesDashboard是一个基于Web的Kubernetes集群管理UI

    2. **跨平台兼容**:Go语言的静态编译特性使得Dashboard可以在多种操作系统上运行,无需依赖额外的运行时环境。 3. **简洁的语法**:Go语言的简洁语法使得代码易于理解和维护,这对于开源项目来说非常重要,因为...

    云计算+kubernetes+网络插件yaml文件+dashboard-yaml文件

    在压缩包中的"dashboard-yaml文件"很可能是Kubernetes Dashboard的部署文件,例如`kubectl apply -f dashboard.yaml`即可在集群中安装Dashboard。这个yaml文件通常包含Dashboard的Deployment、Service和RoleBinding...

    基于kubernetes构建Docker集群环境培训视频.rar

    │ 17-kubernetes dashboard认证及分级授权.mp4 │ 18-配置网络插件flannel.mp4 │ 19-基于canel的网络策略.mp4 │ 20-调度器、预选策略及优选函数.mp4 │ 21-kubernetes高级调度方式.mp4 │ 22-容器资源需求、资源...

    kubernetes-dashboard.yaml

    resourceNames: ["kubernetes-dashboard-key-holder", "kubernetes-dashboard-certs"] verbs: ["get", "update", "delete"] # Allow Dashboard to get and update 'kubernetes-dashboard-settings' config map. -...

    kubernetes-dashboard

    【Kubernetes Dashboard 知识详解】 Kubernetes Dashboard 是 Kubernetes 集群的一种图形化管理工具,为用户提供了一种直观的 Web 界面,用于管理和监控集群中的应用和服务。它允许管理员和开发人员通过简单的界面...

    Kubernetes Dashboard实验手册1

    在本实验中,我们主要探讨了如何使用Kubernetes Dashboard这一可视化管理工具来部署和管理集群资源。Kubernetes Dashboard是Kubernetes官方提供的一款Web界面,它允许用户通过图形化界面进行常见的集群操作,如创建...

    kubernetes-dashboard-amd64.tgz

    它支持多种容器运行时,如Docker,且提供了丰富的API和工具,如Kubernetes Dashboard,以增强用户体验。 压缩包子文件的文件名称列表看似是哈希值,这些可能是资源的元数据或者签名,用于验证下载的文件是否完整...

    kubernetes-dashboard.zip

    Kubernetes Dashboard 是一个基于 Web 的图形用户界面(GUI),用于管理和监控 Kubernetes 集群。它提供了对集群资源的直观视图,包括节点、Pods、服务、部署、 ReplicaSets 和 DaemonSets,使得集群操作和故障排查...

    能耗分析系统中心端Dashboard界面HTML+JS+CSS源代码.zip

    数据分析能耗分析系统中心端Dashboard界面HTML+JS+CSS源代码.zip

    kubernetes-dashboard-v1.8.3 yaml文件

    在使用 `kubernetes-dashboard-v1.8.3.yaml` 文件时,首先需要确保你的 Kubernetes 集群已经安装并运行正常,且你有相应的权限来操作集群。然后,执行以下步骤: 1. **下载 YAML 文件**:获取 `kubernetes-...

    kubernetes-dashboard-amd64-v1.10.0镜像

    kubernetes-dashboard-amd64-v1.10.0镜像,docker load -i kubernetes-dashboard-amd64-v1.10.0.tgz

    kubernetes-dashboard 1.8.1.tar

    1. `dashboard.tar`:这可能是Kubernetes Dashboard应用的二进制文件或配置文件的打包,解压后可能包含Dashboard的容器镜像或者其他运行时所需的配置文件。 2. `kubernetes-dashboard.yaml`:这是一个YAML文件,它是...

    百度地图开发java源码-gitlab-docker-k8s:基于GitLab+Docker+K8S的持续集成和交付

    基于GitLab+Docker+K8S的持续集成和交付 此文档主要说明怎样基于GitLab进行持续集成和持续交付,该持续集成与交付集成了gitlab-runner 、mvnw、Docker、harbor、k8s等技术,同时展示了在k8s平台利用EFK(elastic...

    kubernetes-dashboard-amd64-v1.8.3镜像包

    kubernetes-dashboard-amd64-v1.8.3镜像包,由于国外镜像无法下载,可以用这个包load到本地镜像,再上传到你的私有仓库,实现离线部署安装dashboard。解压后有操作命令

    k8s kubernetes dashboard dns 配置文件 yaml

    配置DNS通常涉及到创建一个Deployment和Service的YAML文件,比如`dns.yaml`,该文件定义了DNS Pod的运行方式、它们如何暴露为服务,以及如何与其他Kubernetes资源交互。 `config.json`可能包含集群的配置信息,如...

Global site tag (gtag.js) - Google Analytics