SuperAPI AI 工具集

materialize-terraform-self-managed

部署与运维

查看项目

更新于 10-16 00:20

技能介绍

这是 Materialize 官方维护的自托管 Terraform 模块仓库(materialize-terraform-self-managed)的技能说明,用于在 AWS、Azure、GCP 上部署 Materialize。仓库按 aws/、azure/、gcp/ 分目录存放各云厂商基础设施模块与 simple、enterprise 示例,另有 kubernetes/ 存放云无关模块(cert-manager、Operator、materialize-instance、Prometheus、Grafana、HPA 及企业版 Ory 认证栈),test/ 为 Rust 集成测试,scripts/ 为迁移与工具脚本。

用途与架构:每次部署分两层——云基础设施(网络 VPC/VNet、子网、NAT、安全组;EKS/AKS/GKE 集群与自动扩缩;托管 PostgreSQL 作元数据;S3/Blob/GCS 作 persist 层),以及共享 Kubernetes 应用层(cert-manager 签发证书、Materialize Operator Helm 图表、Materialize 实例自定义资源)。

主要能力:各云模块覆盖 networking、集群、database、storage、operator 等;AWS 用 Karpenter 而非集群自动扩缩器,存储鉴权用 IRSA,外部访问用 NLB(6875 SQL、6876 HTTP、8080 控制台);Azure 用 Cilium 网络与工作负载身份联合;GCP 用 HMAC 密钥走 S3 兼容 API 访问 GCS。materialize-instance 模块暴露 crd_version、instance_name、metadata_backend_url、persist_backend_url、license_key、environmentd_version、rollout_strategy、authenticator_kind 及资源请求等变量。持久层目前仅 AWS(IRSA) 与 Azure(工作负载身份) 支持 IAM 鉴权,GCS 原生 IAM 不支持。CRD 分 v1alpha1(需手动改 request_rollout 触发滚动)与 v1(v26.30+ 推荐,自动触发)。

使用方式:克隆仓库后进入 <cloud>/examples/simple,按云填写 terraform.tfvars(如 AWS 需 name_prefix、aws_profile、license_key、tags),执行 terraform init 与 terraform apply;也可在已有项目中以 Git source 引用模块并固定 ref 到 tag 或 commit。部署后用 aws eks update-kubeconfig、az aks get-credentials、gcloud container clusters get-credentials 配置 kubectl;私有负载均衡默认下用 kubectl port-forward 连接。升级需先看版本说明,逐步升小版本(v26 起可跳),先 Operator 后实例,且不支持降级。

限制与注意:GCP 需预先启用多个 API,Azure 需注册 EnableAPIServerVnetIntegrationPreview;元数据连接串须含 statement_timeout=15min;simple 示例用自签名证书,生产应改用真实 CA;生产许可证与具体定价资料暂未提供。