# Kuboard介绍

<AdSenseTitle/>

Kubernetes 容器编排已越来越被大家关注，然而学习 Kubernetes 的门槛却依然很高，主要体现在这几个方面：

* 集群的安装复杂

* Kubernetes相较于容器，引入了许多新的概念

* 需要手工编写 YAML 文件

* 没有好的参考案例可以遵循



今天给大家介绍的这款工具 Kuboard，是一款免费的 Kubernetes 图形化管理工具，Kuboard 力图帮助用户快速在 Kubernetes 上落地微服务。为了达到此目标，Kuboard 提供了针对上述问题的解决办法：

* Kuboard 官网提供 Kubernetes 免费安装文档、免费在线答疑，每天约有 200 位网友参照 Kuboard 提供的文档进行 K8S 集群安装。
* Kuboard 官网提供 Kubernetes 免费中文教程、用户无需付费购买视频教程或参加线下培训班，就可参照 Kuboard 提供的免费教程完成 K8S 的学习，更有 QQ 社群可以和网友互相讨论，共同进步。
* Kuboard 是 Kubernetes 的一款图形化管理工具，使用 Kuboard，用户无需编写 YAML 文件，就可以完成应用程序的部署和管理。
* Kuboard 官网提供 Spring Cloud 等微服务参考架构在 K8S 上的详细部署文档和步骤，是 Spring Cloud 用户将自己的应用迁移到 K8S 部署环境的非常好的参考资料。


Kuboard 发布不到两个月时间，github star 已经迅速增长到 461，获得了许多用户的喜爱。

<p style="max-width: 720px;">
  <img src="./share-coder.assets/image-20191008204458253.png" alt="Kubernetes 教程" style="max-width: 100%"></img>
</p>


## 安装Kuboard

如果您已经有了 Kubernetes 集群，只需要一行命令即可安装 Kuboard：

``` sh
kubectl apply -f https://kuboard.cn/install-script/kuboard.yaml
```

然后访问您集群中任意节点的 32567 端口（http://any-of-your-node-ip:32567），即可打开 Kuboard 界面。



## 使用Kuboard

Kuboard 通过三层界面来管理 Kubernetes 以及部署在其上的微服务应用，使得一个非常复杂的系统变得易于理解：

1. 集群概览层

   Kuboard 中查看集群概览的界面如下图所示，下层由 Kubernetes 的计算资源和存储资源组成，上层则是应用的名称空间。

   ![Kubernetes 教程](./share-coder.assets/image-20191002073039330.png)

2. 名称空间层

   进入 Kuboard 名称空间界面后，可以看到该名称空间下部署的所有应用、配置信息、存储卷声明，以及在名称空间内可执行的操作，例如创建工作负载、导出工作负载、导入工作负载、容器组列表、调整镜像版本等。

   这里比较特殊的一点是，Kuboard 以分层的方式展现微服务架构的经典分层，包括展现层、API网关层、微服务层、持久层、中间件层和监控层。

   ![Kubernetes 教程](./share-coder.assets/image-20191002073210761.png)

3. 工作负载层

   从名称空间点击某一个应用模块后，可进入到工作负载的详情页。在这里可以看到控制器（Deployment、StatefulSet、DaemonSet等）的详细信息，也可以看到其管理的 Pod 的详情、监控、Pod 的日志、Pod的命令行控制台等。

   在 Kuboard 工作负载编辑器里，可以通过图形界面完成应用的部署和管理、伸缩、卸载等操作，而无需编写复杂的 yaml 文件。

   ![Kubernetes 教程](./share-coder.assets/image-20191002073245932.png)



## Kubernetes免费教程

### **Kubernetes 体验**

* 安装 Kubernetes 单Master节点（30分钟，初学者也许需要更多）

* 安装微服务管理界面（5分钟）

* 创建 busybox（10分钟）

* 导入 example 微服务应用（15分钟）

### **Kubernetes 入门**

* 0. 学习Kubernetes基础知识 (10分钟)

* 1. 部署一个应用程序 (5分钟)

* 2. 查看 Pods / Nodes (10分钟)

* 3. 公布应用程序 (10分钟)

* 4. 伸缩应用程序 (10分钟)

* 5. 执行滚动更新 (10分钟)

* 6. 复习Kubernetes核心概念 (10分钟)

### **Kubernetes 进阶**

* 使用私有 registry 中的 docker 镜像

* 工作负载
  * 容器组 - 概述
  * 容器组 - 生命周期
  * 容器组 - 初始化容器
  * 控制器 - 概述
  * 控制器 - Deployment
  * 控制器 - StatefulSet
  * 控制器 - DaemonSet
  * 控制器 - Job
  * 控制器 - CronJob

* 服务发现、负载均衡、网络
  * Service 概述
  * Service 详细描述
  * Service/Pod 的 DNS
  * Service 连接应用程序
  * Ingress 通过互联网访问您的应用
  * 如何选择网络插件

* 存储
  * 数据卷 Volume
  * 存储卷 PV 和存储卷声明 PVC
  * 存储类 StorageClass
  * 自建 NFS 服务

* 配置
  * 使用 ConfigMap 配置您的应用程序
  * 管理容器的计算资源
  * 将容器调度到指定的节点
  * 污点和容忍 taints and toleration
  * Secrets

### **Kubernetes 高级**

* Kubernetes 日志可视化

* Kubernetes 监控

* Kubernetes 联邦

## Spring Cloud在Kubernetes上的部署实战

在 Kubernetes 上部署 Spring Cloud 微服务

* 准备
  * 准备OCP的构建环境和部署环境
  * 构建docker镜像并推送到仓库

* 部署
  * 部署顺序
  * 在K8S上部署eureka-server
  * 在K8S上部署mysql
  * 在K8S上部署redis
  * 在K8S上部署auth-server
  * 在K8S上部署user-center
  * 在K8S上部署api-gateway
  * 在K8S上部署back-center
  * 重新审视配置信息

* 多环境
  * 导出部署配置
  * 导入部署配置
