install-k8s-operators.sh 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #!/usr/bin/env bash
  2. set -euo pipefail
  3. if [[ "${EUID}" -eq 0 ]]; then
  4. SUDO=""
  5. else
  6. SUDO="sudo"
  7. fi
  8. # 若未安装 helm,则自动安装
  9. if ! command -v helm >/dev/null 2>&1; then
  10. echo "未检测到 helm,自动安装..."
  11. curl -fsSL https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | ${SUDO} bash
  12. fi
  13. # 检查集群可用性
  14. kubectl cluster-info >/dev/null
  15. echo "[1/3] 安装 Spark Operator"
  16. helm repo add spark-operator https://kubeflow.github.io/spark-operator >/dev/null 2>&1 || true
  17. helm repo update >/dev/null
  18. SPARK_OPERATOR_JOB_NAMESPACES_JSON="${SPARK_OPERATOR_JOB_NAMESPACES_JSON:-[\"\"]}"
  19. SPARK_OPERATOR_IVY_CACHE_PATH="${SPARK_OPERATOR_IVY_CACHE_PATH:-/var/lib/wenshu/spark-ivy}"
  20. helm upgrade --install spark-operator spark-operator/spark-operator \
  21. --namespace spark-operator \
  22. --create-namespace \
  23. --set-json "spark.jobNamespaces=${SPARK_OPERATOR_JOB_NAMESPACES_JSON}" \
  24. --set-json "controller.volumes=[{\"name\":\"tmp\",\"emptyDir\":{\"sizeLimit\":\"1Gi\"}},{\"name\":\"wenshu-spark-ivy-cache\",\"emptyDir\":{}}]" \
  25. --set-json "controller.volumeMounts=[{\"name\":\"tmp\",\"mountPath\":\"/tmp\",\"readOnly\":false},{\"name\":\"wenshu-spark-ivy-cache\",\"mountPath\":\"${SPARK_OPERATOR_IVY_CACHE_PATH}\",\"readOnly\":false}]"
  26. echo "[2/3] 安装 StarRocks Operator"
  27. kubectl apply -f https://raw.githubusercontent.com/StarRocks/starrocks-kubernetes-operator/main/deploy/starrocks.com_starrocksclusters.yaml
  28. kubectl apply -f https://raw.githubusercontent.com/StarRocks/starrocks-kubernetes-operator/main/deploy/operator.yaml
  29. echo "[3/3] 验证 Operator"
  30. kubectl get crd sparkapplications.sparkoperator.k8s.io
  31. kubectl get crd starrocksclusters.starrocks.com
  32. kubectl get pods -n spark-operator || true
  33. kubectl get pods -n starrocks || true
  34. echo
  35. echo "Spark + StarRocks Operator 安装完成。"