k8s 部署工具 codeci

检测分析服务依赖

Posted by ethan.luo on January 24, 2021

codeci 可以快速部署 k8s 服务, 包括服务间依赖分层部署 (生成依赖关系树, 循环依赖检测, 分组配置启动应用等)。它可以自动分析服务之间的依赖 只需要在服务中进行声明如下即可。

服务依赖定义

服务依赖需要在 metadata.annotations.dependOn 声明依赖项(多个服务用逗号隔开)

如:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: serviceA
  annotations:
    dependOn: serviceB, serviceC
spec:
  selector:
    matchLabels:
      app: serviceA
...

codeci deploy serviceA 进行部署 serviceA 的时候会检测 serviceB、C 是否正常启动,如果没有则先启动 serviceB、C

安装

curl -fsSl https://codeandcode.cn/apps/codeci/install.sh | bash

使用

修改配置文件

vim ~/.codeci/deployconfig
  1. cli 命令

部署服务

codeci deploy [service name] 

or

codeci deploy -s [service name] -c [deployconfig.json]

删除服务

codeci reset [service name]

or

codeci reset -s [service name] -c [deployconfig.json]

分析服务

codeci analyze [service name]

or

codeci analyze -s [service name] -c [deployconfig.json]
  1. 数据迁移

codeci 会自动扫描 services 目录下的 sql 文件

  • init_db.sql 创建 db sql
  • schema.sql 创建表 sql
  • data/*.sql 创建 data sql

这些文件会自动执行,建议 DDL 写上 CREATE IF NOT EXISTS TABLES/DBS