Skip to main content
Skip table of contents

Installation and setup for Kubernetes

Before getting started, Delphix recommends engaging your Kubernetes Admin for deployment guidance on available Kubernetes deployment platforms (AKS, EKS, etc.). Configurations like node sizing and persistent volume settings will need to be determined.

Hardware requirements

The hardware requirements for Data Control Tower (DCT) on Kubernetes are listed below. In addition to these requirements, inbound port 443 must be open for API clients, and outbound port 443 to engines. This is the minimum total resource request for the Kubernetes deployment of DCT. Individual service-level resource requests are contained in values.yaml file and can be overridden during deployment.

  • CPU: 4-Core

  • CPU Architecture: x86_64

  • Memory: 16GB

  • Storage: 50GB

  • Port: 443

The recommended minimum 50 GB of storage is shared across the Kubernetes cluster (i.e. hosts). All pods and/or services use this storage for mounted volumes and other utilities, including image storage.

In a single node cluster, if shared volumes are not externalized, the host requires the full 50 GB of storage. If the persistent volume is mounted externally, the host requires 39 GB of storage, since the default storage required by the database (10 GB) and gateway (1 GB) draws from the external storage. The default storage configuration for the database and gateway can be modified in values.yaml.

Kubernetes overview

Data Control Tower can be deployed in a matter of minutes, once a Kubernetes cluster has been identified and deployment details have been aligned with your Kubernetes administrator. The installation consists of three components:

  • Kubernetes cluster: The identified infrastructure to which DCT will be deployed.

  • HELM: This deploys DCT as a Kubernetes application by referencing HELM charts (.yaml files) that make up the DCT install either by an external helm repository (https://dlpx-helm-dct.s3.amazonaws.com, this is the quickest path to installing DCT, as it largely automated) or via local install (this is accomplished by downloading the helm charts directly via the DCT .tar file on http://download.delphix.com ).

  • kubectl: Is a command line tool that enables administrative communication with the deployed pods (most useful post-deployment or after an upgrade).

Installation requirements (Kubernetes)

DCT requires a running Kubernetes cluster; This could be an on-premises cluster, Azure AKS or AWS EKS cluster. DCT also requires a kubectl command line tool to interact with Kubernetes cluster and HELM for deployment on to the cluster.

Requirement

DCT recommended rersion

Comments

Kubernetes Cluster

1.25 or above

HELM

3.9.0 or above

Install HELM as the package manager using the HELM installation article.

kubectl

1.25.0 or above

HELM will internally refer to the kubeconfig file to connect to the Kubernetes cluster. The default kubeconfig file is present at location: ~/.kube/config

If the kubeconfig file needs to be overridden while running HELM commands, set the KUBECONFIG environment variable to the location of the kubeconfig file.

To install kubectl follow the instructions at https://kubernetes.io/docs/tasks/tools/ .

Installing DCT

Add the DCT HELM repo with the following, which will link the DCT HELM repo to the local client HELM repo:

CODE
$ helm repo add dct-services https://dlpx-helm-dct.s3.amazonaws.com 

Update the added repos with the following, which will update the local HELM charts metadata (index.yaml).

CODE
$ helm repo update

Pull the helm charts with the following, which is used to download the .tgz file.

CODE
$ helm pull dct-services/delphix-dct --version x.0.0

Extract the downloaded .tgz and update the following values in values.yaml.

  • To generate the bootstrap APIKey, set apiKeyCreate: true.

  • Provide image credentials to pull images from docker registry.

    • username: <retrieved from download.delphix.com>

    • password: <retrieved from download.delphix.com>

For getting the image credentials, visit the Delphix DCT Download page and login with your customer login credentials. Once logged in, select the DCT Helm Repository link and accept the Terms and Conditions. Use password from the popup screen, as shown below.

OFFLINE MODE

If you do not have direct access to Delphix HELM and Docker repositories, download the HELM charts and Docker images packages as delphix-dct-x.0.0.tar.gz, which is uploaded on the download site.

  • Extract the downloaded .tgz file to get the HELM chart and Docker images.

  • Load extracted Docker images using following:

    • for image in *tar; do sudo docker load --input $image; done

  • RE-tag and push Docker images in your local repository, tag images in the following format:

    • e.g., docker tag registry.delphix.com/delphix-dct:app-x.0.0 <local registry url>:app-x.0.0

      • Note: Re-tag all remaining DCT images in the same format.

  • Update values.yaml for registry name and image credentials:

    • registry: <local registry url>

    • username: <local registry username>

    • password: <local registry password>

  • Deploy.

In version 8.0.0 and above, instead of username/password, an option is available to use credentials from a pre-existing Kubernetes Secret. To do so, instead of providing a username/password, users must create the Kubernetes Secret in the same namespace as the one used for DCT, and reference the registryKey as follows:

NONE
imageCredentials:
  # registry to pull docker images from.
  registry: dct.download.delphix.com/delphix-dct
  # username to login to docker registry. Do not set if registryKey is set.
  username:
  # password to login to docker registry. Do not set if registryKey is set.
  password:
  # Name of an existing docker registry key to use to pull images.
  registryKey: <insert-secret-name-here>

After updating the values.yaml, install it using the following command:

NONE
helm install dct-services delphix-dct

delphix-dct is the name of the folder which was extracted in the previous step. dct-services is the chart name which is given for this deployment.

In the above directory structure, the values.yaml file contains the properties which are configured above. If you want to configure additional properties in values.yaml, create a values.yaml using the sample below. Deploy DCT using following command to use the custom values.yaml:

helm install dct-services -f <path to edited values.yaml> <directory path of the extracted chart>

Sample values.yaml file

A sample values.yaml file can be downloaded below.

values.yaml

Once deployment is complete, check the status of the deployment using the following command (where X.0.0 should be changed to the version of DCT being installed):

NONE
helm list
NAME              NAMESPACE    REVISION    UPDATED                                 STATUS      CHART                    APP VERSION
dct-services      default      1           2023-01-10 19:33:41.713202 -0900        deployed    delphix-dct-x.0.0        x.0.0

Assuming an ingress controller configuration on the Kubernetes cluster is present, when accessing DCT after the deployment, the ingress controller rule needs to be added for proxy service, along with port 443 (if SSL is enabled) and port 80 (if SSL is disabled).

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.