Translate Shell容器编排:Docker Swarm与Kubernetes配置

Translate Shell容器编排:Docker Swarm与Kubernetes配置

【免费下载链接】translate-shell :speech_balloon: Command-line translator using Google Translate, Bing Translator, Yandex.Translate, etc. 【免费下载链接】translate-shell 项目地址: https://gitcode.com/gh_mirrors/tr/translate-shell

Translate Shell(命令行翻译工具)支持通过Docker快速部署,但官方未提供容器编排方案。本文基于项目现有Dockerfile,提供Docker Swarm与Kubernetes环境下的高可用部署配置,解决多实例负载均衡、服务发现与健康检查问题。

容器化基础:Dockerfile解析

项目根目录下的Dockerfile定义了基础运行环境,采用Alpine Linux最小镜像,安装了bash、gawk等依赖,并通过wget获取trans可执行文件。关键配置如下:

FROM alpine:latest
RUN apk add bash gawk curl mplayer fribidi less hunspell wget \
    && wget git.io/trans \
    && chmod +x ./trans \ 
    && mv ./trans /usr/local/bin/
ENTRYPOINT ["trans"]
CMD ["--help"]

该配置构建的镜像默认启动翻译工具帮助页面,实际使用需通过docker run -it soimort/translate-shell -shell进入交互模式(README.md#111)。

Docker Swarm部署方案

1. 服务栈配置文件

创建docker-compose.yml定义服务:

version: '3.8'
services:
  translate-api:
    image: soimort/translate-shell
    command: -brief :en
    deploy:
      replicas: 3
      resources:
        limits:
          cpus: '0.5'
          memory: 128M
      restart_policy:
        condition: on-failure
    healthcheck:
      test: ["CMD", "trans", "-V"]
      interval: 30s
      timeout: 10s
      retries: 3
    ports:
      - "8080:8080"

2. 部署命令与扩展

# 初始化Swarm集群
docker swarm init

# 部署服务栈
docker stack deploy -c docker-compose.yml translate-stack

# 查看服务状态
docker service ls | grep translate-api

# 动态扩展实例数
docker service scale translate-stack_translate-api=5

Kubernetes部署方案

1. Deployment配置

创建k8s/deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: translate-shell
spec:
  replicas: 3
  selector:
    matchLabels:
      app: translator
  template:
    metadata:
      labels:
        app: translator
    spec:
      containers:
      - name: trans-api
        image: soimort/translate-shell
        command: ["/bin/sh", "-c", "while true; do trans -brief :en '健康检查'; sleep 30; done"]
        resources:
          limits:
            cpu: "500m"
            memory: "128Mi"
        livenessProbe:
          exec:
            command: ["trans", "-V"]
          initialDelaySeconds: 10
          periodSeconds: 30

2. 服务暴露与负载均衡

创建k8s/service.yaml

apiVersion: v1
kind: Service
metadata:
  name: translate-service
spec:
  selector:
    app: translator
  ports:
  - port: 80
    targetPort: 8080
  type: LoadBalancer

通过kubectl apply -f k8s/部署后,可通过kubectl get pods查看运行实例:

NAME                            READY   STATUS    RESTARTS   AGE
translate-shell-7f9d658c9-2x4kf 1/1     Running   0          5m
translate-shell-7f9d658c9-5b7m2 1/1     Running   0          5m
translate-shell-7f9d658c9-9z6tq 1/1     Running   0          5m

多引擎翻译配置

Translate Shell支持Google、Bing等多引擎(include/Translators/),可通过环境变量动态切换。在Kubernetes中配置ConfigMap:

apiVersion: v1
kind: ConfigMap
metadata:
  name: translate-config
data:
  ENGINE: "bing"
  SOURCE_LANG: "auto"
  TARGET_LANG: "zh-CN"

在Deployment中引用:

env:
- name: TRANSLATE_ENGINE
  valueFrom:
    configMapKeyRef:
      name: translate-config
      key: ENGINE

监控与日志

Prometheus监控

添加Prometheus监控注解:

annotations:
  prometheus.io/scrape: "true"
  prometheus.io/port: "8080"

日志收集

配置容器日志驱动:

spec:
  containers:
  - name: trans-api
    image: soimort/translate-shell
    args: ["-brief", ":en"]
    resources:
      limits:
        cpu: "500m"
        memory: "128Mi"
    volumeMounts:
    - name: logs
      mountPath: /var/log/translate
  volumes:
  - name: logs
    persistentVolumeClaim:
      claimName: translate-logs

部署对比与最佳实践

特性Docker SwarmKubernetes
复杂度简单中等
自动扩缩容需第三方工具原生支持
滚动更新支持支持
服务网格Istio集成
适用场景中小团队企业级部署

建议根据团队规模选择方案:个人或小团队优先使用Docker Swarm快速部署;有高可用与自动扩缩需求的场景选择Kubernetes。

扩展阅读

【免费下载链接】translate-shell :speech_balloon: Command-line translator using Google Translate, Bing Translator, Yandex.Translate, etc. 【免费下载链接】translate-shell 项目地址: https://gitcode.com/gh_mirrors/tr/translate-shell

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值