Jump to contentJump to page navigation: previous page [access key p]/next page [access key n]
documentation.suse.com / SUSE Private Registry Documentation / Deployment with High Availability

3 Deployment with High Availability

You can use Helm to deploy highly available (HA) Private Registry on a Kubernetes cluster. The HA setup ensures that users do not experience interruptions of service if one of the nodes on which Private Registry is running becomes unavailable.

3.1 Architecture of the HA setup

Most of the Private Registry components are now stateless. Therefore, we can scale them by increasing pod replicas, ensuring they run on multiple worker nodes. Kubernetes services ensure connectivity between pods.

For storage, users should provide an HA PostgreSQL and Valkey or Redis cluster for application data, along with PVCs or object storage for storing images and charts.

Private Registry HA setup

Private Registry HA setup. Kubernetes cluster with Ingress in HA setup using HA PostgreSQL and HA Valkey.

3.2 Prerequisites

  • A Kubernetes cluster version 1.20 or higher

  • Helm version 3.2.0 or higher

  • HA Ingress controller (Private Registry does not manage the external endpoint)

  • HA PostgreSQL 9.6+ (Private Registry does not handle the deployment of HA database)

  • HA Valkey or Redis (Private Registry does not handle the deployment of HA Valkey or Redis)

  • Persistent Volume Claim (PVC) that can be shared across nodes or external object storage

  • An active subscription for SUSE Private Registry

3.3 Deploying Private Registry with HA

  1. Download the Private Registry Helm chart.

      $ helm pull oci://registry.suse.com/private-registry/private-registry-helm --untar
  2. Update the deployment parameters to match your requirements. Refer to Appendix B, Example of a Private Registry HA setup Helm chart for an example Helm chart for Private Registry HA setup. Refer to Appendix A, Overriding the SUSE Private Registry Helm chart for a complete list of values to specify or override.

  3. Install the Private Registry Helm chart. Replace <RELEASE_NAME> with your custom release name for the Helm chart deployment.

      $ helm install <RELEASE_NAME> private-registry-helm/