Installing Vertica on Kubernetes

Beta Feature — For Test Environments Only

Use the install_vertica script to install Vertica on the pods in your Kubernetes cluster.

Vertica is installed in each pod with the --no-system-configuration option to prevent pods from making configuration changes. To run Vertica optimally, manually configure host nodes using the settings found in the following sections:

For additional details, see "Security Considerations" in Containerized Vertica on Kubernetes

Prerequisite

Before you begin, complete the steps in Installing the Helm Chart.

Installing Vertica with manual steps is a temporary process for 10.1.1. A future release automates this process using an operator.

  1. Create RELEASE, NAMESPACE, SELECTOR, ALL_HOSTS, and POD_NAME shell variables to make subsequent commands more readable:

    1. Store the name or your release in RELEASE, and the namespace you are updating in NAMESPACE:

      $ RELEASE=my-release
      $ NAMESPACE=my-namespace
    2. Store the objects in your release in SELECTOR:

      $ SELECTOR=vertica.com/usage=server,app.kubernetes.io/name=vertica,app.kubernetes.io/instance=$RELEASE
    3. Store the host names in ALL_HOSTS:

      $ ALL_HOSTS=$(kubectl get pods -n $NAMESPACE --selector=$SELECTOR -o=jsonpath='{range .items[*]}{.metadata.name}.{.spec.subdomain},{end}' | sed 's/.$//')
    4. You need to access a shell in a pod in your cluster. Store the name of a pod in POD_NAME:

      $ POD_NAME=$(kubectl get pods -n $NAMESPACE --selector=$SELECTOR -o jsonpath="{.items[0].metadata.name}")
  2. Run the install_vertica script with the kubectl CLI tool. The additional options set up the config directory and add all of the pods to the Vertica cluster in the my-release instance:

    $ kubectl exec $POD_NAME -i -n $NAMESPACE -- sudo /opt/vertica/sbin/install_vertica \
        --license /path/to/license.dat \
        --accept-eula \
        --hosts $ALL_HOSTS \
        --dba-user-password-disabled \
        --failure-threshold NONE \
        --no-system-configuration \
        --point-to-point \
        --data-dir /home/dbadmin/local-data/data