项目结构

后端

  1. .
  2. ├── Dockerfile.amd64 # 构建容器镜像使用的 dockerfile
  3. ├── Makefile # 编译文件
  4. ├── LICENSE
  5. ├── README.md
  6. ├── ROADMAP.md
  7. ├── go.mod
  8. ├── pkg # 主目录
  9. ├── locales # 后端 i18n 翻译目录
  10. ├── docs # REST Api 文档目录
  11. ├── migration # 数据库变更文件目录

前端

  1. .
  2. ├── Dockerfile # 构建容器镜像使用的 dockerfile
  3. ├── LICENSE
  4. ├── README.md
  5. ├── package.json # 包管理文件
  6. ├── src # 主目录

配置开发环境

后端

!!! warning “”

  1. - KubeOperator 后端使用 iris 框架,并使用 Go mod 作为项目管理工具
  2. - 开发环境 Golang 版本 >= 1.14

初始化配置

数据库初始化

!!! warning “” KubeOperator 使用 MySQL 数据库,推荐使用 MySQL 5.7 版本。同时 KubeOperator 对数据库部分配置项有要求,请参考下附的数据库配置,修改开发环境中的数据库配置文件

  1. !!! warning ""
  2. ```mysql
  3. [mysqld]
  4. datadir=/var/lib/mysql
  5. default-storage-engine=INNODB
  6. character_set_server=UTF8MB4
  7. table_open_cache=128
  8. max_connections=2000
  9. max_connect_errors=6000
  10. innodb_file_per_table=1
  11. innodb_buffer_pool_size=1G
  12. max_allowed_packet=64M
  13. transaction_isolation=READ-COMMITTED
  14. innodb_flush_method=O_DIRECT
  15. innodb_lock_wait_timeout=1800
  16. innodb_flush_log_at_trx_commit=0
  17. sync_binlog=0
  18. sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
  19. skip-name-resolve
  20. user=mysql
  21. [mysql]
  22. default-character-set=utf8
  23. [mysql.server]
  24. default-character-set=utf8
  25. ```
  26. 请参考文档中的建库语句创建 KubeOperator 使用的数据库,server 服务启动时会自动在配置的库中创建所需的表结构及初始化数据。
  27. !!! warning ""
  28. ```mysql
  29. CREATE DATABASE `ko` /*!40100 DEFAULT CHARACTER SET utf8mb4 */
  30. ```
KubeOperator 配置文件

!!! warning “” KubeOperator 会默认加载该路径下的配置文件 /etc/ko/app.yaml,请参考下列配置创建对应目录及配置文件

  1. !!! warning ""
  2. ```yaml
  3. bind:
  4. host: 0.0.0.0
  5. port: 8080
  6. logging:
  7. level: info
  8. out_put: fileAndStd
  9. max_age: 2592000
  10. rotation: 86400
  11. # 数据库配置
  12. db:
  13. # mysql 服务地址,按需修改
  14. host: mysql
  15. port: 3306
  16. user: root
  17. # 明文密码:KubeOperator123@mysql
  18. password: U08BAQEBAQHNm6g24wOpMgv34sNpwR5aBVdvFeSE9+6bydHO/WZLvZXlX9rxiY4V
  19. name: ko
  20. max_open_conns: 200
  21. max_idle_conns: 10
  22. jwt:
  23. secret: iXDgDaEYBzIzustW
  24. exp: 480
  25. job:
  26. timeout: 60
  27. # kobe 组件配置
  28. kobe:
  29. # kobe 服务地址,按需修改
  30. host: kobe
  31. port: 8080
  32. # kotf 组件配置
  33. kotf:
  34. # kotf 服务地址,按需修改
  35. host: kotf
  36. port: 8080
  37. webkubectl:
  38. host: webkubectl
  39. port: 8080
  40. kubepi:
  41. host: kubepi
  42. port: 80
  43. cron:
  44. enable: true
  45. encrypt:
  46. multilevel:
  47. enable: true
  48. secret: WjgBAQEBAQG1bkw4r7ZuaKD1klBxrT+zrRk8KWl+7LE0dli3h+a8gl6er0u8Ks1w
  49. parts:
  50. - dP3hT7dBQhygBCYW
  51. - YIi2czL9wv4tQEZD
  52. ```

运行后端服务

!!! warning “” 主目录运行

  1. ```
  2. go run main.go
  3. ```

前端

!!! warning “”

  1. - [neeko](https://github.com/KubeOperator/neeko) 前端使用了 Vue.js 作为前端框架,ElementUI 作为 UI 框架,并使用 npm 作为包管理工具
  2. - 开发者请先下载 Node.js 作为运行环境(推荐版本:v14.x

运行步骤

!!! warning “” 部署运行好 KubeOperator API 服务器(前置条件)

  1. ```bash
  2. 1. 安装依赖
  3. $ npm install
  4. 2. 运行
  5. $ npm run serve
  6. ```

组件

!!! warning “” kobekotf 为 grpc 协议组件,使用 protobuf 生成

配置文件

kobe

!!! warning “” kobe 会默认加载该路径下的配置文件 /etc/kobe/app.yaml,请参考下列配置创建对应目录及配置文件

  1. ```yaml
  2. server:
  3. host: 0.0.0.0
  4. port: 8080
  5. app:
  6. worker: 10
  7. queue: 2000
  8. ansible:
  9. timeout: 10
  10. forks: 20
  11. ```
kotf

!!! warning “” kotf 会默认加载该路径下的配置文件 /etc/kotf/app.yaml,请参考下列配置创建对应目录及配置文件

  1. ```
  2. server:
  3. host: 0.0.0.0
  4. port: 8080
  5. ```

组件启动

!!! warning “”

  1. ```bash
  2. go run cmd/server/*.go
  3. ```