Supabase完全指南:从安装到高级应用(Kubernetes集群环境)

云信安装大师
90
AI 质量分
10 5 月, 2025
1 分钟阅读
0 阅读

Supabase完全指南:从安装到高级应用(Kubernetes集群环境)

引言

Supabase是一个开源的Firebase替代品,提供数据库、认证、存储等后端服务。本文将带你从零开始在Kubernetes集群上部署Supabase,并探索其高级应用场景。无论你是个人开发者还是企业团队,这份指南都能帮助你快速搭建生产级的Supabase环境。

准备工作

环境要求

  • 运行中的Kubernetes集群(版本1.20+)
  • kubectl命令行工具
  • Helm 3(包管理工具)
  • PostgreSQL基础知识(非必需但有益)

前置知识

  • 基本的Kubernetes概念(Pod、Service、Ingress等)
  • Docker容器基础
  • YAML文件格式

第一步:安装Supabase到Kubernetes集群

1.1 添加Supabase Helm仓库

代码片段
helm repo add supabase https://supabase.github.io/supabase
helm repo update

1.2 创建命名空间

代码片段
kubectl create namespace supabase

1.3 安装Supabase

代码片段
helm install supabase supabase/supabase \
    --namespace supabase \
    --set global.postgresql.auth.postgresPassword="yourSecurePassword" \
    --set kong.enabled=true \
    --set studio.enabled=true

参数说明:
postgresPassword: PostgreSQL超级用户密码(生产环境务必使用强密码)
kong.enabled: 启用API网关
studio.enabled: 启用管理界面

第二步:验证安装

2.1 检查Pod状态

代码片段
kubectl get pods -n supabase -w

等待所有Pod状态变为Running

2.2 获取访问URL

代码片段
kubectl get svc -n supabase supabase-studio -o jsonpath='{.status.loadBalancer.ingress[0].ip}'

在浏览器中访问返回的IP地址,你应该能看到Supabase的管理界面。

第三步:配置Ingress(可选)

如果你有自定义域名和Ingress控制器:

代码片段
# supabase-ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: supabase-ingress
  namespace: supabase
spec:
  rules:
    - host: supabase.yourdomain.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: supabase-studio
                port:
                  number: 3000

应用配置:

代码片段
kubectl apply -f supabase-ingress.yaml

第四步:初始化Supabase项目

  1. 访问Studio界面(通过IP或域名)
  2. 创建新组织和新项目
  3. 重要:记录下API URL和anon/public密钥

Kubernetes部署架构解析

你的Supabase集群现在包含以下组件:

代码片段
┌─────────────┐   ┌─────────────┐   ┌─────────────┐   ┌─────────────┐   ┌─────────────┐  
│ PostgreSQL │───│   Kong     │───│   Studio    │───│ Storage API │───│ Auth API    │  
└─────────────┘   └─────────────┘   └─────────────┘   └─────────────┘   └─────────────┘  
      ▲                  ▲                  ▲                  ▲                  ▲        
      │                  │                  │                  │                  │        
      ▼                  ▼                  ▼                  ▼                  ▼        
┌──────────────────────────────────────────────────────────────────────────────────────┐  
│                                Kubernetes Cluster                                    │  
└──────────────────────────────────────────────────────────────────────────────────────┘  

高级应用场景

A. Auto-scaling配置示例

编辑PostgreSQL的StatefulSet配置:

“`yaml

postgres-autoscale.yaml

apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
name: postgres-hpa
namespace: supabase
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: StatefulSet
name: postgres-postgresql
minReplicas: 2
maxReplicas: 5
metrics:
– type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization:

原创 高质量