Files
qiming/qiming-rcoder/k8s/manifests/base/rcoder/rcoder-deployment.yaml
2026-06-01 13:54:52 +08:00

86 lines
2.7 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: rcoder
namespace: nuwax-rcoder
spec:
replicas: 1
selector:
matchLabels:
app: rcoder
component: rcoder-main
template:
metadata:
labels:
app: rcoder
component: rcoder-main
spec:
# Graceful shutdown: allow 60s for containers to clean up
terminationGracePeriodSeconds: 60
serviceAccountName: rcoder-pods-sa
containers:
- name: rcoder
image: nuwax-docker-images-registry.cn-hangzhou.cr.aliyuncs.com/dev/rcoder:latest
# IfNotPresent: 节点已缓存就直接用,避免每次启动都去 registry 验 token/manifest
# 缺点: latest tag 内容更新后需 kubectl rollout restart 才会拉新 image
imagePullPolicy: IfNotPresent
command: ["/app/bin/rcoder"]
args: ["--port", "8087"]
ports:
- containerPort: 8087
env:
- name: CONTAINER_RUNTIME
value: "kubernetes"
- name: RCODER_K8S_NAMESPACE
value: "nuwax-rcoder"
- name: RUST_LOG
value: "info"
# JuiceFS 存储配置 (StorageClass 名称由各环境 overlay 覆盖)
- name: RCODER_K8S_STORAGE_CLASS
value: "juicefs-sc-placeholder"
- name: RCODER_DOCKER_IMAGE
value: "nuwax-docker-images-registry.cn-hangzhou.cr.aliyuncs.com/dev/rcoder:latest"
- name: RCODER_DOCKER_IMAGE_COMPUTER
value: "nuwax-docker-images-registry.cn-hangzhou.cr.aliyuncs.com/dev/rcoder-agent-runner:latest"
resources:
requests:
memory: "512Mi"
cpu: "500m"
limits:
memory: "2Gi"
cpu: "2000m"
# Health probes for K8s liveness/readiness detection
livenessProbe:
httpGet:
path: /health
port: 8087
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 3
readinessProbe:
httpGet:
path: /health
port: 8087
initialDelaySeconds: 10
periodSeconds: 5
timeoutSeconds: 3
failureThreshold: 2
volumeMounts:
- name: rcoder-config
mountPath: /app/config.yml
subPath: config.yml
- name: project-workspace
mountPath: /app/project_workspace
subPath: project_workspace
- name: project-workspace
mountPath: /app/computer-project-workspace
subPath: computer_workspace
volumes:
- name: rcoder-config
configMap:
name: rcoder-config
- name: project-workspace
persistentVolumeClaim:
claimName: rcoder-workspace