本文介绍tars服务如何快速制作成docker镜像, 并发布到K8S集群上.
docker pull tarscloud/base-compiler
docker run -it -v/var/run/docker.sock:/var/run/docker.sock -v`pwd`:/data/src tarscloud/base-compiler bash
exec-build.sh BaseImage SERVERTYPE(cpp/nodejs/java-war/java-jar/go/php) Files YamlFile Tag Push Dockerfile(可选)
exec-build.sh tarscloud/tars.cppbase:v1.0.0 cpp build/bin/StorageServer yaml/values.yaml v1.0.0 true
# 应用名称
app: OD
# 服务名称
server: StorageServer
# 使用的模板(tars.nodejs/tars.cpp/tars.java/tars.go/tars.php)
template: tars.cpp
# 私有模板(通常为空)
profile: ""
# servant列表
servants:
- name: StorageObj
port: 10000
isTars: true
isTcp: true
thread: 2
capacity: 100000
connection: 100000
timeout: 60000
# 服务部署个数
replicas: 3
# 环境变量, 默认为空
envVars:
- name: name1
value: value1
# 是否启用宿主机网络
hostNetwork: false
# 是否启用hostIpc, 一旦启用, 则共享内存等, 都和宿主机打通, 这个时候就需要注意共享内存key不用搞冲突了!!!
hostIPC: false
# 是否启用hostPorts 默认[]即可
hostPorts: []
# 是否开启hostPorts, 如果使用, 则表示这个Obj, 会开启nodePort(即宿主机的port)
#hostPorts:
# - nameRef: HelloObj
# port: 22394
# 发布地址, id/image必填, 这个通常是CI/CD时自动填写的
repo:
id:
image: yourregistry/od.storageserver
secret: tars-image-secret
#应用级配置, 通常为空
appConfig:
- name: app.conf
content: |
app config content
#节点配置, podSeq表示节点号(statefullset部署的)
nodeConfig:
- name: config.json
podSeq: 0
content: |
node config
# 服务配置文件, 可以有多个!
config:
exec-helm.sh YamlFile Tag
exec-helm.sh yaml/values.yaml v1.0.0
exec-deploy.sh Namespace HelmPackage
exec-deploy.sh tars-dev od-storageserver-1.0.0.tgz