Vertica 数据库操作器

Vertica 操作器可自动执行基于 Kubernetes 的 Vertica 管理员必须手动执行的、容易出错且耗时的任务。操作器:

  • 安装 Vertica

  • 创建 Eon 模式数据库

  • 升级 Vertica

  • 恢复现有的 Eon 模式数据库

  • 重新启动和重新安排 DOWN pod 以维持仲裁

  • 规模子群集

  • 管理 pod 的服务

  • 监控 pod 运行状况

  • 处理内部和外部流量的负载均衡

Vertica 操作器是使用 SDK 操作器框架的 Go 二进制文件。它在自己的 pod 中运行,并且是命名空间范围内的,可将对象的任何故障限制在其命名空间中。

有关安装和升级操作器的详细信息,请参阅安装 Vertica DB 操作器

监控所需状态

每个命名空间都允许有一个操作器 pod,它充当自定义控制器并监控该命名空间内自定义资源对象的状态。操作器使用控制循环机制来协调状态更改,方法是调查源于自定义资源实例的状态更改通知并定期对当前状态与所需状态进行比较。

如果操作器检测到所需状态的更改,它会确定发生了什么更改并将当前状态与新的所需状态相协调。例如,如果用户从自定义资源实例中删除了一个子群集并成功保存了更改,则操作器将删除 Kubernetes 中相应的子群集对象。

验证状态更改

verticadb-operator Helm 图表包含一个准入控制器,它使用 webhook 来防止对自定义资源进行无效的状态更改。当您保存对自定义资源的更改时,准入控制器 webhook 会查询一个为自定义资源中的可变状态提供规则的 REST 端点。如果所做的更改违反了状态规则,准入控制器会阻止更改并返回错误。例如,如果您尝试保存违反 K-Safety 的更改,则会返回错误。

限制

操作器有以下限制:

  • 您必须手动配置 TLS。有关详细信息,请参阅基于 Kubernetes 的容器化 Vertica

  • 资源类型名称不能包含下划线字符。资源类型名称用于完全限定域名 (FQDN),并且 FQDN 不允许使用下划线字符。您必须提供一个符合 Kubernetes 准则 的有效名称。

    例如,Vertica 服务器生成的默认子群集名称为 default_subcluster。此名称对 Kubernetes 资源类型无效。

  • Vertica 建议不要使用大型群集功能。如果某一个控制节点发生故障,可能会导致一半以上的数据库节点发生故障。这会导致数据库失去仲裁。

  • 备份和还原是一个手动过程。

  • 不支持自动缩放

  • 在 Kubernetes 之外的群集之间导入和导出数据要求您公开具有 NodePort 或 LoadBalancer 服务类型的服务并正确配置网络。