容器化 Vertica

Vertica Eon 模式利用容器技术来满足现代应用程序开发和运营工作流的需求,这些工作流必须快速高效地跨各种基础架构交付软件。容器化 Vertica [通过自动化工具支持 Kubernetes](/zh-cn/containerized/containerized-on-k8s/),以帮助维护您的环境状态,同时最大限度地减少中断和人工干预。

容器化 Vertica 具有以下优势:

  • 性能:Eon 模式将计算与存储分开,它为有状态的容器化应用程序提供了最佳架构。Eon 模式子群集可以面向特定的工作负载并根据当前的计算需求进行弹性扩展。

  • 高可用性:Vertica 容器提供了一个一致的、可重复的环境,您可以快速部署该环境。如果数据库主机或服务出现故障,您可以轻松更换资源。

  • 资源利用:容器是一个运行时环境,它将应用程序及其依赖项打包在独立的进程中。这种隔离允许容器化应用程序在不产生干扰的情况下共享硬件,从而提供精细的资源控制和成本节约。

  • 灵活性:Kubernetes 是事实上的容器协调平台。它由公有云和私有云提供商的大型生态系统提供支持。

容器化 Vertica 生态系统

Vertica 为生产和开发环境提供各种工具和工件。容器化 Vertica 生态系统包括以下内容:

  • Vertica Helm 图表Helm 是 Kubernetes 包管理器,它将用来部署 Kubernetes 对象的 YAML 清单捆绑到一个包中。从 Vertica Helm 图表存储库下载 Vertica Helm 图表。

  • 自定义资源定义 (CRD):CRD 是共享的全局对象,它使用您的自定义资源类型扩展 Kubernetes API。使用 CRD 实例化自定义资源 (CR),这是一个可部署的对象,用于定义 Kubernetes 上 Eon 模式数据库的状态。

  • VerticaDB 操作器:该操作器是一个自定义控制器,用于监控您的 CR 状态并自动执行管理员任务。如果当前状态与声明的状态不同,则操作器会努力纠正当前状态。

  • 准入控制器:准入控制器使用一个 webhook,操作器通过查询该 webhook 来验证对 CR 中可变状态的更改。

  • VerticaDB vlogger:vlogger 是用于部署 sidecar 实用程序容器的轻量级映像。sidecar 将日志从 Vertica 服务器容器中的 vertica.log 发送到主机节点上的标准输出,以简化日志聚合。

  • Vertica Community Edition (CE) 映像:CE 映像是受限企业模式 Vertica 社区版 (CE) 许可证的容器化版本。CE 映像提供了一个由示例数据库和开发人员工具组成的测试环境。

    除了预先构建的 CE 映像之外,您还可以使用 Vertica one-node-ce GitHub 存储库中提供的工具构建自定义 CE 映像。

  • 公共存储选项:Vertica 支持各种公有云和私有云存储提供程序。有关受支持的存储提供程序的列表,请参阅容器化环境

  • UDx 开发工具:UDx-container GitHub 存储库提供了构建容器的工具,该容器对创建 C++ Vertica 用户定义扩展所需的二进制文件、库和编译器进行打包。有关在 C++ 中扩展 Vertica 的更多详细信息,请参阅 C++ SDK

Vertica 映像

下表描述了 Vertica 为服务器和自动化工具提供的映像:

创建自定义 Vertica 映像

Vertica 集成者指南中的创建 Vertica 映像教程提供了 GitHub 上承载的 Dockerfile 的逐行说明。您可以添加依赖项来复制您的开发和生产环境。