Cluster prerequisites

Prerequisites for the PerfectScale provisioner in a self-hosted Kubernetes environment

Kubernetes cluster requirements

  1. Storage requirements

    • A Kubernetes storage volume with CSI Driver support.

  2. Load Balancer configuration

    • Should support the TLS 1.3 protocol and higher.

    • ALPN policy for the TLS:443 listener should be set to HTTP2Optional.

    • Should support HTTP2 and have port 443 open.

    • AWS-specific implementation:

      • The security policy for the TLS:443 listener should be ELBSecurityPolicy-TLS13-1-2-2021-06.

  3. DNS configuration

    • The domain name and namespace (where the provisioner will be installed) should not contain digits.

    • Final domain URL structure: <namespace_name>.<suffix_url> .

    • Service-specific URL patterns:

      • API: api-<namespace_name>.<suffix_url>

      • MinIO: minio-<namespace_name>.<suffix_url>

      • Zitadel: zitadel-<namespace_name>.<suffix_url>

These DNS records should point to the cluster Load Balancer.

  1. Storage configuration

  • A default StorageClass should be configured.

Configuration example:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: ebs-sc
  annotations:
    storageclass.kubernetes.io/is-default-class: "true"
provisioner: ebs.csi.aws.com
volumeBindingMode: WaitForFirstConsumer
parameters:
  type: gp3
  encrypted: "true"

Client software requirements

The following tools need to be installed on the system used to communicate with and install the provisioner:

  1. kubectl - command-line tool for interaction with Kubernetes clusters

  1. Kubernetes version compatibility: 1.30 and above.

Persistent storage requirements

Persistent storage is required for stateful platform components, such as databases and internal stateful services. To enable dynamic provisioning and ensure data durability across pod restarts or failures, a CSI (Container Storage Interface) compatible storage solution must be available and properly configured in your Kubernetes cluster.

Ensure that your cluster has a functioning default StorageClass and access to underlying storage that meets your environment's performance and durability needs.

Verifying Prerequisites

  1. Ensure your Load Balancer is configured properly.

  2. Ensure DNS records are properly connected to your Load Balancer.

Last updated

Was this helpful?