You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/kubermatic/v2.29/tutorials-howtos/kkp-configuration/registry-mirrors/_index.en.md
+70-7Lines changed: 70 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,16 +5,22 @@ weight = 8
5
5
6
6
+++
7
7
8
-
## docker.io Pull Rate Limitations
8
+
## Overview
9
9
10
-
`docker.io` registry introduced pretty low rate limits for unauthenticated
11
-
requests. To ensure uninterrupted workloads it's possible to configure the
12
-
`Seed` in a way that docker.io registry will be used through the caching proxy.
10
+
Registry mirrors allow you to configure mirror endpoints for container registries to improve image pull performance, avoid rate limits, and increase reliability through fallback mirrors.
13
11
14
-
### Configuring Public Pull-through Caching Proxy
12
+
Container registry configuration can be applied at two levels:
15
13
16
-
Google has launched [caching public images proxy mirror.gcr.io](https://cloud.google.com/artifact-registry/docs/pull-cached-dockerhub-images).
17
-
Let's configure KKP to use it.
14
+
-**Datacenter Level** (via Seed `NodeSettings`): Default settings for all clusters in a datacenter
Configure registry mirrors at the datacenter level to provide defaults for all user clusters.
20
+
21
+
### Example: Configuring docker.io Mirror
22
+
23
+
`docker.io` registry has rate limits for unauthenticated requests. You can configure a caching proxy like [Google's mirror.gcr.io](https://cloud.google.com/artifact-registry/docs/pull-cached-dockerhub-images):
18
24
19
25
```yaml
20
26
apiVersion: kubermatic.k8c.io/v1
@@ -37,6 +43,63 @@ spec:
37
43
- mirror.gcr.io
38
44
```
39
45
46
+
### Example: Multiple Mirrors for High Availability
47
+
48
+
Configure multiple mirrors per registry for automatic fallback:
49
+
50
+
```yaml
51
+
apiVersion: kubermatic.k8c.io/v1
52
+
kind: Seed
53
+
metadata:
54
+
name: <<exampleseed>>
55
+
namespace: kubermatic
56
+
spec:
57
+
datacenters:
58
+
dc1:
59
+
node:
60
+
containerdRegistryMirrors:
61
+
registries:
62
+
docker.io:
63
+
mirrors:
64
+
- https://mirror1.company.com
65
+
- https://mirror2.company.com
66
+
- mirror.gcr.io
67
+
quay.io:
68
+
mirrors:
69
+
- https://quay-mirror.company.com
70
+
```
71
+
72
+
When configured this way, containerd attempts mirrors in order and falls back to the next if one fails, ensuring high availability.
73
+
74
+
## Cluster-Level Configuration
75
+
76
+
Override datacenter defaults for specific clusters using `ContainerRuntimeOpts`:
77
+
78
+
```yaml
79
+
apiVersion: kubermatic.k8c.io/v1
80
+
kind: Cluster
81
+
metadata:
82
+
name: my-cluster
83
+
spec:
84
+
containerRuntimeOpts:
85
+
containerdRegistryMirrors:
86
+
registries:
87
+
docker.io:
88
+
mirrors:
89
+
- https://cluster-specific-mirror.company.com
90
+
- mirror.gcr.io
91
+
```
92
+
93
+
Cluster-level configuration completely overrides datacenter-level settings for that cluster (not merged).
94
+
95
+
For other container runtime settings including:
96
+
- Insecure registries
97
+
- Registry mirrors
98
+
- Custom pause container images
99
+
- Non-root device ownership
100
+
- Legacy registry mirror format
101
+
102
+
40
103
See more for the [full example of Seed][seed-example] with comments and all possible
0 commit comments