在Kube环境部署Supabase时,如何禁用IPv6解决实时服务启动失败?
解决Supabase Realtime服务IPv6启动失败问题
报错原因
报错信息显示Realtime服务尝试通过IPv6(:inet6)监听8080端口,但当前Kubernetes集群环境不支持IPv6协议族,导致启动失败。
禁用IPv6的配置方法
方法1:通过Helm Chart配置修改
若使用Helm部署Supabase,在values.yaml中找到Realtime服务配置段,添加/修改参数强制使用IPv4:
realtime: config: PORT: 8080 HOST: "0.0.0.0" # 覆盖Endpoint监听配置,禁用IPv6 REALTIME_WEB_ENDPOINT_HTTP_OPTIONS: "[{:port, 8080}, {:inet, :inet4}]"
执行更新部署命令:
helm upgrade supabase supabase/supabase -f values.yaml
方法2:手动修改Deployment环境变量
若为手动编写Deployment配置,在Realtime容器的环境变量中添加:
env: - name: REALTIME_WEB_ENDPOINT_HTTP_OPTIONS value: "[{:port, 8080}, {:inet, :inet4}]" - name: HOST value: "0.0.0.0"
应用配置:
kubectl apply -f your-realtime-deployment.yaml
方法3:自定义配置文件修改(若挂载了配置)
如果挂载了Realtime的config.exs配置文件,找到Endpoint监听配置部分,将:inet6替换为:inet4:
config :realtime_web, RealtimeWeb.Endpoint, http: [ port: 8080, ip: {0, 0, 0, 0}, # 指定IPv4任意地址 protocol_options: [] ]
验证
部署完成后,查看Realtime Pod日志确认服务正常启动:
kubectl logs -f <realtime-pod-name>
内容的提问来源于stack exchange,提问作者A karthikeyan
相关产品推荐
相关产品推荐

