
davradocker/ruban-ms-microservice-manager本镜像是一款面向应用开发者的工具,旨在简化在Kubernetes(K8s)集群中创建和部署后台服务的流程。通过自动化生成Kubernetes资源配置、集成常用部署工具及简化配置步骤,帮助开发者快速将后台服务(如API服务、定时任务、消息处理服务等)部署到K8s环境,减少手动编写K8s配置文件的复杂度,提升开发效率。
kubectl应用到K8s集群,支持一键部署和版本回滚。kubectl可连接集群(kubectl config view验证)。edit或admin角色)。bashdocker pull k8s-bg-service-creator:latest
通过docker run命令启动容器,传入服务参数,自动生成K8s配置文件并输出到本地目录。
示例:生成无状态后台服务配置
bashdocker run -it --rm \ -v $(pwd)/k8s-config:/output \ # 挂载本地目录接收输出配置 -e SERVICE_NAME="user-api" \ # 服务名称 -e SERVICE_TYPE="deployment" \ # 服务类型(deployment/cronjob/job) -e REPLICAS=2 \ # 副本数 -e IMAGE="myapp/user-api:v1.0" \# 服务镜像 -e PORT=8080 \ # 服务端口 k8s-bg-service-creator:latest
执行后,本地./k8s-config目录将生成deployment.yaml和service.yaml文件。
使用生成的配置文件部署服务:
bashkubectl apply -f ./k8s-config/
验证部署:
bashkubectl get deployments user-api # 查看Deployment状态 kubectl get pods -l app=user-api # 查看Pod状态 kubectl get service user-api # 查看Service暴露的端口
| 环境变量名 | 描述 | 可选值 | 默认值 | 示例 |
|---|---|---|---|---|
SERVICE_NAME | 服务名称(K8s资源前缀) | 字符串(符合K8s命名规范) | bg-service | order-processor |
SERVICE_TYPE | 服务类型 | deployment/cronjob/job | deployment | cronjob |
REPLICAS | 副本数(仅deployment类型) | 正整数 | 1 | 3 |
IMAGE | 服务镜像地址(含版本) | 有效的Docker镜像地址 | - | nginx:alpine |
PORT | 容器端口(仅deployment类型) | 1-65535 | 80 | 9000 |
COMMAND | 容器启动命令 | 字符串(空格分隔参数) | 镜像默认命令 | python /app/main.py |
CRON_SCHEDULE | 定时任务调度(仅cronjob) | Cron表达式 | - | 0 3 * * *(每天3点) |
LOG_LEVEL | 日志级别 | debug/info/warn/error | info | debug |
ENABLE_MONITORING | 是否启用Prometheus监控 | true/false | false | true |
若需复杂配置(如资源限制、环境变量注入、挂载卷),可通过挂载配置文件config.yaml实现:
yaml# config.yaml 示例 service: name: "payment-processor" type: "deployment" replicas: 2 container: image: "myapp/payment:v2.1" port: 8080 command: ["java", "-jar", "/app/payment.jar"] resources: # 资源限制 limits: cpu: "1" memory: "1Gi" requests: cpu: "500m" memory: "512Mi" env: - name: "DB_HOST" value: "mysql-service" - name: "DB_PORT" value: "3306" volumes: - name: "config-volume" configMap: name: "payment-config" volumeMounts: - name: "config-volume" mountPath: "/app/config" monitoring: enabled: true port: 9090 path: "/metrics"
启动容器时挂载配置文件:
bashdocker run -it --rm \ -v $(pwd)/config.yaml:/app/config.yaml \ -v $(pwd)/k8s-config:/output \ k8s-bg-service-creator:latest --config /app/config.yaml
bashdocker run -it --rm \ -v $(pwd)/k8s-config:/output \ -e SERVICE_NAME="log-cleaner" \ -e SERVICE_TYPE="cronjob" \ -e IMAGE="myapp/log-cleaner:v1.2" \ -e COMMAND="/clean.sh --days=7" \ -e CRON_SCHEDULE="0 0 * * *" \ # 每天0点执行 -e LOG_LEVEL="info" \ k8s-bg-service-creator:latest
bashkubectl apply -f ./k8s-config/cronjob.yaml
bashkubectl get cronjobs log-cleaner # 查看CronJob状态 kubectl get jobs --selector=app=log-cleaner # 查看历史任务
docker run。CronJob资源(K8s 1.21+默认启用)。ENABLE_MONITORING=true)时,需确保集群已部署Prometheus Operator。


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务