Vertica images
The following table describes Vertica server and automation tool images:
Image | Description |
---|---|
Vertica Kubernetes minimal image |
Optimized for Kubernetes. This image includes the following UDx development capabilities:
Image names: |
Vertica Kubernetes (Full image) |
Optimized for Kubernetes and includes the following packages for machine learning and UDx development:
Image name: vertica/vertica-k8s:23.3.0-0 |
Vertica Kubernetes (No keys) |
Optimized for Kubernetes and includes the following packages for machine learning and UDx development:
ImportantThis image does not include static SSH keys for internal communication between the pods. You must provide these keys to the custom resource. For details, see VerticaDB CRD.Image name: vertica/vertica-k8s:23.3.0-0-nokeys |
Vertica Community Edition |
A single-node Enterprise Mode image for test environments. For more information, see Vertica community edition (CE). This image includes the following UDx development capabilities:
Image name: vertica/vertica-ce:23.3.0-0 |
VerticaDB Operator |
The operator monitors the state of your custom resources and automates lifecycle tasks for Vertica on Kubernetes. For installation instructions, see Installing the Vertica DB operator. Image name: vertica/verticadb-operator:1.11.2 |
Vertica vlogger |
Lightweight image for sidecar logging. The vlogger sends the contents of 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.
Python container UDx
The Vertica images with Python UDx development capabilities include the vertica_sdk package and the Python Standard Library.
If your UDx depends on a Python package that is not included in the image, you must make the package available to the Vertica process during runtime. You can either mount a volume that contains the package dependencies, or you can create a custom Vertica server image.
Important
When you load the UDx library with CREATE LIBRARY, the DEPENDS clause must specify the location of the Python package in the Vertica server container filesystem.Use the Python Package Index to download Python package source distributions.
Mounting Python libraries as volumes
You can mount a Python package dependency as a volume in the Vertica server container filesystem. A Python UDx can access the contents of the volume at runtime.
-
Download the package source distribution to the host machine.
-
On the host machine, extract the tar file contents into a mountable volume:
$ tar -xvf lib-name.version.tar.gz -C /path/to/py-dependency-vol
-
Mount the volume that contains the extracted source distribution in the custom resource (CR). The following snippet mounts the
py-dependency-vol
volume in the Vertica server container:spec: ... volumeMounts: - name: nfs mountPath: /path/to/py-dependency-vol volumes: - name: nfs nfs: path: /nfs server: nfs.example.com ...
For details about mounting custom volumes in a CR, see VerticaDB CRD.
Adding a Python library to a custom Vertica image
Create a custom image that includes any Python package dependencies in the Vertica server base image.
For a comprehensive guide about creating a custom Vertica image, see the Creating a Vertica Image tutorial in the Vertica Integrator's Guide.
-
Download the package source distribution on the machine that builds the container.
-
Create a Dockerfile that includes the Python source distribution:
FROM vertica/vertica-k8s:latest ADD lib-name.version.tar.gz /path/to/target-dir ...
In the preceding example, the
ADD
command automatically extracts the contents of the tar file into thetarget-dir
directory. -
Build the Dockerfile:
$ docker build . -t image-name:tag
-
Push the image to a container registry so that you can add the image to a Vertica custom resource:
$ docker image push registry-host:port/registry-username/image-name:tag