基于k8s CRD功能实现有序job功能
软件架构说明: 略🥶
- mkdir $GOPATH/src/k8s.io
- cd $GOPATH/src/k8s.io
- git clone https://github.com/mortimer2015/orderly-task.git
- cd orderly-task
- go mod vendor
- go run cmd/orderly-task/main.go --master="" --kubeconfig="~/.kube/config"
- 日志输出到了标准输出,需要保存日志的话,使用 >>输出到文件
- crd文件参考artifacts/crd.yaml
- task创建示例参考artifacts/example-foo5.yaml和artifacts/example-foo10.yaml
- 如artifacts/example-foo5.yaml的中的
order
是定义task的执行顺序,由小到大逐步执行,jobSpec
的格式和Job的Spec定义格式完全一致 - 如果想使用多个不同task组,只需在不同的命名空间下创建task即可,本controller会自动按照不同的命名空间进行各自task的调度
- mac版二进制包下载,请查看Release
- 创建CRD
kubectl apply -f artifacts/crd.yaml
- 创建task
kubectl apply -f artifacts/example-foo5.yaml
- 查看task
kubectl get task
- 编译
CGO_ENABLED=0 go build --ldflags "-extldflags -static"
,禁用cgo,因为默认镜像使用的busybox - docker build -t docker.io/orderlytask:v9 .
- Fork 本仓库
- 新建 Feat_xxx 分支
- 提交代码
- 新建 Pull Request