Skip to content

Commit 0f43e85

Browse files
authored
update v2.29 based on the containerd feature (#2044)
Signed-off-by: Burak Sekili <32663655+buraksekili@users.noreply.github.com>
1 parent a4b65fc commit 0f43e85

File tree

1 file changed

+70
-7
lines changed
  • content/kubermatic/v2.29/tutorials-howtos/kkp-configuration/registry-mirrors

1 file changed

+70
-7
lines changed

content/kubermatic/v2.29/tutorials-howtos/kkp-configuration/registry-mirrors/_index.en.md

Lines changed: 70 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,22 @@ weight = 8
55

66
+++
77

8-
## docker.io Pull Rate Limitations
8+
## Overview
99

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.
1311

14-
### Configuring Public Pull-through Caching Proxy
12+
Container registry configuration can be applied at two levels:
1513

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
15+
- **Cluster Level** (via Cluster `ContainerRuntimeOpts`): Cluster-specific overrides
16+
17+
## Datacenter-Level Configuration
18+
19+
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):
1824

1925
```yaml
2026
apiVersion: kubermatic.k8c.io/v1
@@ -37,6 +43,63 @@ spec:
3743
- mirror.gcr.io
3844
```
3945
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+
40103
See more for the [full example of Seed][seed-example] with comments and all possible
41104
options.
42105

0 commit comments

Comments
 (0)