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. 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 #
Download the Private Registry Helm chart.
$ helm pull oci://registry.suse.com/private-registry/private-registry-helm --untar
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.
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/