Docker Trusted Registry (DTR) is designed for high availability.
When you first install DTR, you create a cluster with a single DTR replica. Replicas are single instances of DTR that can be joined together to form a cluster. When joining new replicas to the cluster, you’ll be creating new DTR instances that are running the same set of services. Any change to the state of an instance is replicated across all other instances.
Having a DTR cluster with multiple replicas, allows you to:
To make a DTR installation tolerant to failures, add additional replicas to the DTR cluster.
DTR replicas | Failures tolerated |
---|---|
1 | 0 |
3 | 1 |
5 | 2 |
7 | 3 |
When sizing your DTR installation for high-availability, follow these rules of thumb:
When installing DTR for production, you should have dedicated nodes for running:
Having dedicated nodes ensures all applications will remain performant since they have dedicated resources for them. It also makes it easier to implement backup policies and disaster recovery plans for UCP and DTR.
To have high-availability on UCP and DTR, you need a minimum of:
DTR does not provide a load balancing service. You can use an on-premises or cloud-based load balancer to balance requests across multiple DTR replicas.
Make sure you configure your load balancer to:
/health
endpoint on each DTR replica, to check if
the replica is healthy and if it should remain on the load balancing pool or
not.