添加qiming-rcoder模块

This commit is contained in:
Codex
2026-06-01 13:54:52 +08:00
parent 8092c4b1f8
commit 4b1a580132
539 changed files with 151650 additions and 0 deletions

View File

@@ -0,0 +1,101 @@
#!/bin/bash
# ============================================================
# JuiceFS + MinIO + PostgreSQL 部署脚本
# 使用 Kustomize overlay (dev / prod) 部署,避免集群级资源冲突
# 用法 (可在任意目录运行):
# ENV=dev k8s/scripts/deploy-juicefs.sh # 部署到 nuwax-rcoder-dev默认
# ENV=prod k8s/scripts/deploy-juicefs.sh # 部署到 nuwax-rcoder-prod
# ============================================================
set -e
ENV="${ENV:-dev}"
case "$ENV" in
dev|prod) ;;
*)
echo "Error: ENV 必须是 dev 或 prod当前值: $ENV"
exit 1
;;
esac
# 路径解析:脚本位于 k8s/scripts/manifests 位于 k8s/manifests/
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
K8S_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)"
NAMESPACE="${NAMESPACE:-nuwax-rcoder-${ENV}}"
MANIFESTS_DIR="${K8S_ROOT}/manifests"
OVERLAY_DIR="${MANIFESTS_DIR}/overlays/${ENV}"
echo "=========================================="
echo " RCoder - JuiceFS 存储部署 (${ENV})"
echo " namespace: ${NAMESPACE}"
echo " overlay: ${OVERLAY_DIR}"
echo "=========================================="
# 检查 kubectl
if ! command -v kubectl &> /dev/null; then
echo "Error: kubectl not found"
exit 1
fi
# 检查 kubectl kustomize 插件
if ! kubectl kustomize --help &> /dev/null; then
echo "Error: kubectl kustomize not found (需要 kubectl 1.14+)"
exit 1
fi
# 部署 JuiceFS CSI Driver
echo ""
echo "[1/6] 检查 JuiceFS CSI Driver..."
if ! kubectl get daemonset juicefs-csi-driver-node -n kube-system &> /dev/null; then
echo "JuiceFS CSI Driver 未部署,是否部署? (y/n)"
read -r response
if [[ "$response" =~ ^[Yy]$ ]]; then
helm repo add juicefs https://juicefs.github.io/charts || true
helm repo update
helm install juicefs-csi-driver juicefs/juicefs-csi-driver \
--namespace kube-system \
--set webhook.enabled=false
echo "等待 JuiceFS CSI Driver 就绪..."
kubectl rollout status daemonset/juicefs-csi-driver-node -n kube-system --timeout=120s
fi
fi
# 使用 Kustomize overlay 部署
echo ""
echo "[2/6] 使用 Kustomize overlay 部署..."
kubectl apply -k "${OVERLAY_DIR}"
# 等待存储层就绪
echo ""
echo "[3/6] 等待 PostgreSQL 就绪..."
kubectl wait --for=condition=ready pod -l app=postgresql -n ${NAMESPACE} --timeout=180s 2>/dev/null || echo "⚠️ PostgreSQL 等待超时"
echo ""
echo "[4/6] 等待 MinIO 就绪..."
kubectl wait --for=condition=ready pod -l app=minio -n ${NAMESPACE} --timeout=180s 2>/dev/null || echo "⚠️ MinIO 等待超时"
echo ""
echo "[5/6] 等待 MinIO Bucket 初始化..."
kubectl wait --for=condition=complete job/minio-init -n ${NAMESPACE} --timeout=120s 2>/dev/null || echo "⚠️ MinIO 初始化等待超时"
# 验证部署
echo ""
echo "[6/6] 验证部署状态..."
echo ""
echo "StorageClass:"
kubectl get sc | grep juicefs || echo " (未找到)"
echo ""
echo "PVC:"
kubectl get pvc -n ${NAMESPACE}
echo ""
echo "Pods:"
kubectl get pods -n ${NAMESPACE}
echo ""
echo "=========================================="
echo " 部署完成!"
echo "=========================================="