Containerized Vertica

Vertica leverages container technology to meet the needs of modern application development and operations workflows that must deliver software quickly and efficiently across a variety of infrastructures.

Vertica Eon Mode leverages container technology to meet the needs of modern application development and operations workflows that must deliver software quickly and efficiently across a variety of infrastructures. Containerized Vertica supports Kubernetes with automation tools to help maintain the state of your environment with minimal disruptions and manual intervention.

Containerized Vertica provides the following benefits:

  • Performance: Eon Mode separates compute from storage, which provides the optimal architecture for stateful, containerized applications. Eon Mode subclusters can target specific workloads and scale elastically according to the current computational needs.

  • High availability: Vertica containers provide a consistent, repeatable environment that you can deploy quickly. If a database host or service fails, you can easily replace the resource.

  • Resource utilization: A container is a runtime environment that packages an application and its dependencies in an isolated process. This isolation allows containerized applications to share hardware without interference, providing granular resource control and cost savings.

  • Flexibility: Kubernetes is the de facto container orchestration platform. It is supported by a large ecosystem of public and private cloud providers.

Containerized Vertica ecosystem

Vertica provides various tools and artifacts for production and development environments. The containerized Vertica ecosystem includes the following:

  • Vertica Helm chart: Helm is a Kubernetes package manager that bundles into a single package the YAML manifests that deploy Kubernetes objects. Download Vertica Helm charts from the Vertica Helm Charts Repository.

  • Custom Resource Definition (CRD): A CRD is a shared global object that extends the Kubernetes API with your custom resource types. Use the CRD to instantiate a custom resource (CR), a deployable object that defines the state of an Eon Mode database on Kubernetes.

  • VerticaDB Operator: The operator is a custom controller that monitors the state of your CR and automates administrator tasks. If the current state differs from the declared state, the operator works to correct the current state.

  • Admission controller: The admission controller uses a webhook that the operator queries to verify changes to mutable states in a CR.

  • VerticaDB vlogger: The vlogger is a lightweight image used to deploy a sidecar utility container. The sidecar sends logs from vertica.log in the Vertica server container to standard output on the host node to simplify log aggregation.

  • Vertica Community Edition (CE) image: The CE image is the containerized version of the limited Enterprise Mode Vertica community edition (CE) license. The CE image provides a test environment consisting of an example database and developer tools.

    In addition to the pre-built CE image, you can build a custom CE image with the tools provided in the Vertica one-node-ce GitHub repository.

  • Communal Storage Options: Vertica supports a variety of public and private cloud storage providers. For a list of supported storage providers, see Containerized environments.

  • UDx development tools: The UDx-container GitHub repository provides the tools to build a container that packages the binaries, libraries, and compilers required to create C++ Vertica user-defined extensions. For additional details about extending Vertica in C++, see C++ SDK.

Vertica images

The following table describes images that Vertica provides for server and automation tools:

Image Description
Vertica Kubernetes minimal image (without Tensorflow)

Optimized for Kubernetes. The default image included in the Vertica Helm charts. This image does not contain the TensorFlow package.

Image names:

Vertica Kubernetes (with Tensorflow)

Optimized for Kubernetes. This image has full machine learning capabilities.

Image name: vertica/vertica-k8s:11.1.1-0

Vertica Community Edition

A single-node Enterprise Mode image for test environments. For more information, see Vertica community edition (CE).

Image name: vertica/vertica-ce:11.1.1-0

VerticaDB Operator

The operator monitors the state of your custom resources and automates life cycle tasks for Vertica on Kubernetes. For installation instructions, see Installing the Vertica DB operator.

Image name: vertica/verticadb-operator:1.5.0

Vertica vlogger

Lightweight image for sidecar logging. The vlogger sends the contents of vertica.log to stdout on the host node. For implementation details, see Creating a custom resource.

Image name: vertica/vertica-logger:1.0.0

Creating a custom Vertica image

The Creating a Vertica Image tutorial in the Vertica Integrator's Guide provides a line-by-line description of the Dockerfile hosted on GitHub. You can add dependencies to replicate your development and production environments.