开发环境搭建

项目结构

后端

  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 # 主目录

配置开发环境

后端

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

初始化配置

数据库初始化

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

  1. [mysqld]
  2. datadir=/var/lib/mysql
  3. default-storage-engine=INNODB
  4. character_set_server=UTF8MB4
  5. table_open_cache=128
  6. max_connections=2000
  7. max_connect_errors=6000
  8. innodb_file_per_table=1
  9. innodb_buffer_pool_size=1G
  10. max_allowed_packet=64M
  11. transaction_isolation=READ-COMMITTED
  12. innodb_flush_method=O_DIRECT
  13. innodb_lock_wait_timeout=1800
  14. innodb_flush_log_at_trx_commit=0
  15. sync_binlog=0
  16. sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
  17. skip-name-resolve
  18. user=mysql
  19. [mysql]
  20. default-character-set=utf8
  21. [mysql.server]
  22. default-character-set=utf8

请参考文档中的建库语句创建 KubeOperator 使用的数据库,server 服务启动时会自动在配置的库中创建所需的表结构及初始化数据。

  1. CREATE DATABASE `ko` /*!40100 DEFAULT CHARACTER SET utf8mb4 */
KubeOperator 配置文件

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

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

运行后端服务

主目录运行

  1. go run main.go

前端

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

运行步骤

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

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

组件

kobekotf 为 grpc 协议组件,使用 protobuf 生成

配置文件

kobe

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

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

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

  1. server:
  2. host: 0.0.0.0
  3. port: 8080

组件启动

  1. go run cmd/server/*.go