The Kubernetes configurator tool found in the 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.
Advanced users can generate their own YAML instructions to deploy Pyramid in other tools or a text editor.
Steps to use the Tool:
- Select the version of Pyramid to deploy.
- Choose the port assignment for the application. 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. See here for more.
- Select the persistent storage model for the cluster. Choices include AWS S3, Azure Blob, SFTP and NFS.
- If using the NFS option, the YAML file generated needs to be manually edited.
- Supply the initial memory and CPU core values of your Kubernetes environment. These are used to size the memory and CPU footprints of the service pods. The tool will not accept less than 12 CPUs and 16GB of memory. Click here to see the minimum recommended sizing guidelines.
- Set for each service the number of pods you which to deploy initially. The cluster assumes a minimum of 1 for each service, with the Router having a minimum of 2.
- The GIS service has a maximum pod setting of only 1 that cannot be changed in this tool
- Check the "NLQ" option if you plan to enable Natural Language Querying - since this has a dramatic impact on memory allocations to the "AI" services.
- For each relevant service, check if you would like elastic scaling. Currently the configuration tool only supports horizontal scaling. For each service with scaling enabled, set the maximum number of pods the system can add when scaling out.
- Click the NEXT button to see the specific steps needs to deploy the YAML configuration file. These steps involve:
- Deploying "Keda" and "Prometheus" - which are 2 engines for auto scaling containers in Kubernetes
- Downloading the Pyramid YAML configuration file
- Manually editing the "NFS" section in the YAML file with a text editor if NFS storage has been selected (see below).
- Deploying the YAML file into the Kubernetes cluster.
If you chose the NFS option, then you have to manually modify the YAML file in a text editor.
- In the "PersistentVolum"e section
- under spec->capacity->storage you need to define the storage size that you will want to allocate for Pyramid external storage
- under the spec-> NFS, you need to fill the path and the server IP
- In the "PersistentVolumeClaim" section
- under spec->resources->request->storage you need to define the storage size that you want to allocate for Pyramid external storage
apiVersion: v1 kind: PersistentVolume metadata: name: pyramid-storage-pv namespace: pyramid spec: capacity: storage:20Gi volumeMode: Filesystem accessModes: - ReadWriteMany storageClassName: manual mountOptions: - nfsvers=4 nfs: path: /mnt/folder server:192.168.5.12 --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pyramid-storage-pvc namespace: pyramid spec: accessModes: - ReadWriteMany storageClassName: manual resources: requests: storage: 20Gi
The above is a snippet from the generated YAML filw with example entries shown in red.