Containerized Vertica
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 Image name: vertica/vertica-logger:1.0.0 |
Important
Vertica integrations for Apache Kafka and Apache Spark require a Java runtime that is not included in any of the official Vertica container images. For details about extending the official Vertica image, see Creating a Custom Vertica Image below.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.
In this section
- Containerized Vertica on Kubernetes
- Vertica DB operator
- Configuring communal storage
- Creating a custom resource
- Custom resource definition parameters
- Subclusters on Kubernetes
- Hybrid Kubernetes clusters
- Generating a custom resource from an existing Eon Mode database
- Troubleshooting your Kubernetes cluster