Kubernetes Configurator

The Kubernetes configurator tool found in the Pyramid Analytics Customer Portal can be used to configure the "instructions" for your launch of a Pyramid cluster. This tool produces a "YAML" file with the instructions for how to find the right containers and how to deploy the services in a cluster.

Tip: Advanced users can generate their own YAML instructions to deploy Pyramid in other tools or a text editor.

Steps to use the Tool

  1. Select the Version and Build of Pyramid that you want to deploy.
  2. Select the Port assignment for the application.
  3. This is an internal port that is usually accessible from inside the network only. Usually a reverse proxy service is placed on top of this to handle URL and SSL processing, pointing all requests to the site and this port. For more information, see NGINX Web Server.

  4. Select the Persistent Storage model for the cluster. Options include AWS S3, Azure Blob, GCP storage, SFTP, NFS, and so on.
  5. If you are using GoogleStore or NFS as persistent storage, you will need to manually edit the generated YAML file once these steps are complete (see the following sections for details).

  6. Supply an Instance Name for the Pyramid instance running in Kubernetes.

    The name must only contain all lower case alphanumeric characters and hyphens; that is, 'a-z', '0-9', and '-'.

    Notes: If the selected name contains upper case characters, they will be converted to lower case. An error will be displayed if there is an invalid character. For more information, see RFC1123.

  7. Describe the "per service" settings for the cluster:

    For more information about the minimum recommended sizing guidelines, see Recommendations for Kubernetes.

    1. For the DS/ML Services row only, select whether you want to install the Full or Standard version of the service from the drop-down.
    2. The main difference being the incorporated Python Package; Anaconda in the full version and Miniconda in the standard version. The key advantages of installing the Full version are offline installation and faster environment installation, although it is heavier than the standard (recommended) version.

    3. Specify the Initial Pod Count. The cluster assumes a minimum of 1 pod for each service, with the Router having a minimum of 2 pods.
    4. Note: The GIS service has a maximum pod setting of 1 that cannot be changed using this tool.

    5. From the Node Resources drop-down, supply the initial memory and CPU core values for your Kubernetes environment. These are used to size the memory and CPU footprints of the service pods.
    6. There are a minimum of 4 Cores for the Router and GIS, and a minimum of 8 Cores for the other services.

    7. If you would like elastic scaling, and it is available for the service, select the Elastic Scaling checkbox. For each service with scaling enabled, set the Maximum Number of Pods that the system can add when scaling out.
    8. Note: Currently the configuration tool only supports horizontal scaling.

  8. Click Next to see the specific steps to deploy the YAML configuration file:
    1. Deploy the Keda and Prometheus engines for auto scaling containers in Kubernetes.
    2. Download the Pyramid YAML configuration file.
    3. If GoogleStore or NFS storage has been selected, manually edit the relevant section in the YAML file using a text editor (see NFS Edits or GoogleStore Edits, below).
    4. Deploy the YAML file into the Kubernetes cluster.

NFS Edits

If you chose the NFS storage option, then you have to manually modify the YAML file in a text editor as follows:

  1. In the PersistentVolume section:
    1. Under spec > capacity > storage, specify your required <storage size>.
    2. Under spec > nfs > path, specify the <NFS path>.
    3. Under spec > nfs > server, specify the <NFS server IP>.
  2. In the PersistentVolumeClaim section:
    1. Under metadata > namespace, specify your required <namespace>.
    2. Under spec > resources > requests > storage, specify the <storage size> that you want to allocate for Pyramid external storage.

GoogleStore Edits

If you chose the GoogleStore option, then you have to manually modify the YAML file in a text editor:

  1. In the PersistentVolumeClaim section:
    1. Under metadata > namespace, specify your required <namespace>.
    2. Under spec > resources > requests > storage, specify the <storage size> that you want to allocate for Pyramid external storage.
  2. In the StorageClass section:
    1. Under metadata > namespace, specify your required <namespace>.