narrow-baker-33979
04/30/2025, 9:06 PMcreamy-pencil-82913
04/30/2025, 9:28 PMcreamy-pencil-82913
04/30/2025, 9:29 PMcreamy-pencil-82913
04/30/2025, 9:29 PMcreamy-pencil-82913
04/30/2025, 9:29 PMnarrow-baker-33979
05/01/2025, 2:01 PMcreamy-pencil-82913
05/01/2025, 4:03 PMcreamy-pencil-82913
05/01/2025, 4:04 PMnarrow-baker-33979
05/05/2025, 2:22 PMcreamy-pencil-82913
05/05/2025, 5:37 PMAlthough Spegel is listed first, It just seems as though the listing order does not set precedence.That is not the case. Mirrors are tried in the order listed, and spegel is always tried first. I’ll ask again - what makes you think that it’s not working?
creamy-pencil-82913
05/05/2025, 5:38 PMEndpoints for registry mirrors may also be added as usual. In the following configuration, images pull attempts will first try the embedded mirror, then, then finally `docker.io`:<http://mirror.example.com|mirror.example.com>
```mirrors:
docker.io:
endpoint:
- https://mirror.example.com```
narrow-baker-33979
05/05/2025, 7:25 PMcreamy-pencil-82913
05/05/2025, 7:28 PMnarrow-baker-33979
05/05/2025, 7:28 PMcreamy-pencil-82913
05/05/2025, 7:29 PMnarrow-baker-33979
05/05/2025, 7:43 PM<http://zot.k8s.example.com/example/customer-error-service:1.0.15|zot.k8s.example.com/example/customer-error-service:1.0.15>
narrow-baker-33979
05/05/2025, 7:44 PMmirrors:
<http://zot.k8s.example.com|zot.k8s.example.com>:
endpoint:
- <https://harbor.k8s.example.com/v2/proxy-zot-k8s-example-com>
<http://docker.elastic.co|docker.elastic.co>:
endpoint:
- <https://harbor.k8s.example.com/v2/proxy-docker-elastic-co>
<http://docker.io|docker.io>:
endpoint:
- <https://harbor.k8s.example.com/v2/proxy-docker-io>
<http://gcr.io|gcr.io>:
endpoint:
- <https://harbor.k8s.example.com/v2/proxy-gcr-io>
<http://ghcr.io|ghcr.io>:
endpoint:
- <https://harbor.k8s.example.com/v2/proxy-ghcr-io>
<http://k8s.gcr.io|k8s.gcr.io>:
endpoint:
- <https://harbor.k8s.example.com/v2/proxy-k8s-gcr-io>
<http://nvcr.io|nvcr.io>:
endpoint:
- <https://harbor.k8s.example.com/v2/proxy-nvcr-io>
<http://quay.io|quay.io>:
endpoint:
- <https://harbor.k8s.example.com/v2/proxy-quay-io>
<http://registry.k8s.io|registry.k8s.io>:
endpoint:
- <https://harbor.k8s.example.com/v2/proxy-registry-k8s-io>
<http://registry.opensource.zalan.do|registry.opensource.zalan.do>:
endpoint:
- <https://harbor.k8s.example.com/v2/proxy-registry-opensource-zalan-do>
configs:
"<http://harbor.k8s.example.com|harbor.k8s.example.com>":
tls:
insecure_skip_verify: False
narrow-baker-33979
05/05/2025, 7:48 PM/var/lib/rancher/rke2/agent/etc/containerd/certs.d/
contains a dir and config for 127.0.0.1:9345, which I assume is Spegel / "embedded-registry". In my /etc/rancher/rke2/config.yaml
, I set embedded-registry: true
creamy-pencil-82913
05/05/2025, 7:52 PMdebug: true
you can see detailed logs from spegel and libp2p. Set that on both nodes, and then deploy your pod. Or just do crictl pull <image>
on the other node to trigger an attempt to retrieve it.creamy-pencil-82913
05/05/2025, 7:52 PMnarrow-baker-33979
05/05/2025, 7:53 PMcreamy-pencil-82913
05/05/2025, 7:54 PMcrictl image ls
as <http://zot.k8s.example.com/example/customer-error-service:1.0.15|zot.k8s.example.com/example/customer-error-service:1.0.15>
- exact same as it is specified in your pod spec?narrow-baker-33979
05/05/2025, 7:54 PMcreamy-pencil-82913
05/05/2025, 7:54 PMnarrow-baker-33979
05/05/2025, 7:55 PMnarrow-baker-33979
05/05/2025, 8:38 PM/var/log/messages
from the agent without the image. x.x.x.79
is the server in the cluster:
May 5 20:30:55 ip-x-x-x-203 rke2[38610]: 2025-05-05T20:30:55.986Z#011DEBUG#011basichost#011basic/basic_host.go:340#011failed to fetch local IPv6 address#011{"error": "no route found for ::"}
May 5 20:30:57 ip-x-x-x-203 rke2[38610]: time="2025-05-05T20:30:57Z" level=debug msg="Wrote ping"
May 5 20:31:00 ip-x-x-x-203 rke2[38610]: 2025-05-05T20:31:00.986Z#011INFO#011dht/RtRefreshManager#011rtrefresh/rt_refresh_manager.go:322#011starting refreshing cpl 0 with key CIQAAAAFZUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA (
routing table size was 0)
May 5 20:31:00 ip-x-x-x-203 rke2[38610]: 2025-05-05T20:31:00.986Z#011WARN#011dht/RtRefreshManager#011rtrefresh/rt_refresh_manager.go:233#011failed when refreshing routing table#011{"error": "2 errors occurred:\n\t* failed to query f
or self, err=failed to find any peer in table\n\t* failed to refresh cpl=0, err=failed to find any peer in table\n\n"}
May 5 20:31:00 ip-x-x-x-203 rke2[38610]: 2025-05-05T20:31:00.986Z#011DEBUG#011basichost#011basic/basic_host.go:340#011failed to fetch local IPv6 address#011{"error": "no route found for ::"}
May 5 20:31:01 ip-x-x-x-203 rke2[38610]: time="2025-05-05T20:31:01Z" level=info msg="spegel 2025/05/05 20:31:01 p2p: \"msg\"=\"could not get bootstrap addresses\" \"error\"=\"CA cert validation failed: Get \\\"<https://ip-x-x-x-79.ec2.internal:9345/cacerts>\\\": tls: failed to verify certificate: x509: certificate is valid for ip-x-x-x-79, kubernetes, kubernetes.default, kubernetes.default.svc, kubernetes.default.svc.cluster.local, localhost, not ip-x-x-x-79.ec2.internal\""
creamy-pencil-82913
05/05/2025, 8:48 PMcreamy-pencil-82913
05/05/2025, 8:50 PMcreamy-pencil-82913
05/05/2025, 8:51 PMcertificate is valid for ip-x-x-x-79, kubernetes, kubernetes.default, kubernetes.default.svc, kubernetes.default.svc.cluster.local, localhost, not ip-x-x-x-79.ec2.internal
creamy-pencil-82913
05/05/2025, 8:51 PMcreamy-pencil-82913
05/05/2025, 8:52 PMcreamy-pencil-82913
05/05/2025, 8:52 PMcreamy-pencil-82913
05/05/2025, 8:53 PMcreamy-pencil-82913
05/05/2025, 8:53 PMnarrow-baker-33979
05/05/2025, 9:28 PM