Chapter 7. Red Hat Quay sizing and subscriptions Scalability of Red Hat Quay is one of its key strengths, with a single code base supporting a broad spectrum of deployment sizes, including the following: Proof of Concept deployment on a single development machine Mid-size deployment of approximately 2,000 users that can serve content to dozens of Kubernetes clusters High-end deployment such as Quay.io that can serve thousands of Kubernetes clusters world-wide Since sizing heavily depends on a multitude of factors, such as the number of users, images, concurrent pulls and pushes, there are no standard sizing recommendations. The following are the minimum requirements for systems running Red Hat Quay (per container/pod instance): Quay: minimum 6 GB; recommended 8 GB, 2 more more vCPUs Clair: recommended 2 GB RAM and 2 or more vCPUs Storage: : recommended 30 GB NooBaa: minimum 2 GB, 1 vCPU (when objectstorage component is selected by the Operator) Clair database: minimum 5 GB required for security metadata Stateless components of Red Hat Quay can be scaled out, but this will cause a heavier load on stateful backend services. 7.1. Red Hat Quay sample sizings The following table shows approximate sizing for Proof of Concept, mid-size, and high-end deployments. Whether a deployment runs appropriately with the same metrics depends on many factors not shown below. Metric Proof of concept Mid-size High End (Quay.io) No. of Quay containers by default 1 4 15 No. of Quay containers max at scale-out N/A 8 30 No. of Clair containers by default 1 3 10 No. of Clair containers max at scale-out N/A 6 15 No. of mirroring pods (to mirror 100 repositories) 1 5-10 N/A Database sizing 2 -4 Cores 6-8 GB RAM 10-20 GB disk 4-8 Cores 6-32 GB RAM 100 GB - 1 TB disk 32 cores 244 GB 1+ TB disk Object storage backend sizing 10-100 GB 1 - 20 TB 50+ TB up to PB Redis cache sizing 2 Cores 2-4 GB RAM 4 cores 28 GB RAM Underlying node sizing (physical or virtual) 4 Cores 8 GB RAM 4-6 Cores 12-16 GB RAM Quay: 13 cores 56GB RAM Clair: 2 cores 4 GB RAM For further details on sizing & related recommendations for mirroring, see the section on repository mirroring . The sizing for the Redis cache is only relevant if you use Quay builders, otherwise it is not significant. 7.2. Red Hat Quay subscription information Red Hat Quay is available with Standard or Premium support, and subscriptions are based on deployments. Note Deployment means an installation of a single Red Hat Quay registry using a shared data backend. With a Red Hat Quay subscription, the following options are available: There is no limit on the number of pods, such as Quay, Clair, Builder, and so on, that you can deploy. Red Hat Quay pods can run in multiple data centers or availability zones. Storage and database backends can be deployed across multiple data centers or availability zones, but only as a single, shared storage backend and single, shared database backend. Red Hat Quay can manage content for an unlimited number of clusters or standalone servers. Clients can access the Red Hat Quay deployment regardless of their physical location. You can deploy Red Hat Quay on OpenShift Container Platform infrastructure nodes to minimize subscription requirements. You can run the Container Security Operator (CSO) and the Quay Bridge Operator (QBO) on your OpenShift Container Platform clusters at no additional cost. Note Red Hat Quay geo-replication requires a subscription for each storage replication. The database, however, is shared. For more information about purchasing a Red Hat Quay subscription, see Red Hat Quay . 7.3. Using Red Hat Quay with or without internal registry Red Hat Quay can be used as an external registry in front of multiple OpenShift Container Platform clusters with their internal registries. Red Hat Quay can also be used in place of the internal registry when it comes to automating builds and deployment rollouts. The required coordination of Secrets and ImageStreams is automated by the Quay Bridge Operator, which can be launched from the OperatorHub for OpenShift Container Platform.

Commands: