用途:该技能提供在 AWS(EKS)、Azure(AKS)、GCP(GKE)上自托管部署 Materialize 的生产级 Terraform 模块,仓库为 materialize-terraform-self-managed。每个云厂商有独立模块,另有云无关的 Kubernetes 模块用于 Operator 与 Materialize 实例。
主要能力:部署分两层。云基础设施层包含网络(VPC/VNet、子网、NAT、安全组)、Kubernetes 集群与自动扩缩、托管 PostgreSQL(元数据)、对象存储(S3/Blob/GCS,persist 层)。Kubernetes 应用层包含 cert-manager、Materialize Operator(Helm)与 Materialize 实例(自定义资源),另可选 Prometheus、Grafana、HPA 及 Ory 企业认证栈。
使用方式:克隆仓库后进入 <cloud>/examples/simple,创建 terraform.tfvars,执行 terraform init 与 terraform apply。也可在已有 Terraform 项目中以 Git 源引用模块,例如 source = "github.com/MaterializeInc/materialize-terraform-self-managed//kubernetes/modules/materialize-instance?ref=<tag-or-commit>",并始终固定 ref 到标签或提交。部署后用 aws eks update-kubeconfig、az aks get-credentials 或 gcloud container clusters get-credentials 配置 kubectl。连接端口为 6875(SQL)、6876(HTTP)、8080(Console);默认内部负载均衡时用 kubectl port-forward。
适用场景:需要跨云自托管 Materialize 的团队,含简单与含 Ory 认证的企业示例。
限制:persist 后端目前仅 AWS(IRSA)与 Azure(Workload Identity Federation)支持 IAM 认证,GCP 需用 HMAC 密钥走 S3 兼容 API。元数据连接串必须含 statement_timeout=15min。升级需先 Operator 后实例,v26 前逐个小版本升级,不支持降级。GCP 需预先启用多个 API,Azure 需注册 EnableAPIServerVnetIntegrationPreview。简单示例使用自签名证书,生产应改用真实 CA 或 ACME。