Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provide a means to specify that docker images from any registry should be retrieved from a given registry or the embedded registry #9590

Closed
matthewadams opened this issue Feb 28, 2024 · 8 comments
Assignees
Milestone

Comments

@matthewadams
Copy link

Is your feature request related to a problem? Please describe.
We're in an air-gapped environment and want to be able to tell k3s to pull all docker images from either a given private registry, or the k3s embedded registry introduced in January 2024. The current feature requires us to edit the file /etc/rancher/k3s/registries.yaml on each machine in the cluster, adding a mirrors: section, then adding an entry for each distinct docker registry amongst all docker images required in the air-gapped environment. After editing the file, we need to restart k3s for the changes to take effect, which is also undesirable.

Describe the solution you'd like
As @brandond described here, we'd like to have either a command-line argument and configuration setting that enables us to statically instruct k3s to get all docker images from either a designated private registry or the embedded registry. Alternatively, this could be implemented in the context of a default fallback registry notion so as to work nicely with default endpoint fallback feature, that is, if k3s can't find a docker image amongst any configured registry mirrors, check a default private registry (if so configured), then the embedded registry (if enabled).

Describe alternatives you've considered
Our only alternative is to manually edit or generate/regenerate a registries.yaml file with a tool or script to contain the distinct set of docker registry names in the mirrors: section and then restart k3s.

Additional context
The full github discussion of this topic can be found here.

Thank you for considering this feature request. 🙏🏼

@phillebaba
Copy link
Contributor

phillebaba commented Feb 29, 2024

@brandond saw your comment in the fork PR but thought it was better to respond here.

This should be a pretty simple feature to implement from a k3s perspective. I guess the most complicated part is agreeing on how it should be configured. As has been stated Containerd does support a default mirror option which will forward requests for all registries to the configured mirror. Having that as an option sounds like a pretty reasonable thing to have.

For historical context there is a reason why Spegel does not use the default mirror configuration to mirror all registries. The challenge with implementing a registry mirror is that the OCI distribution spec does not require the the pulling client to specify the registry of the image it is requesting from the mirror. As long as we are digest references this will not be an issue, but it will create issues when resolving tags to digests as it requires the complete image name reference. Initially Spegel would include a specific header in the mirror configuration to include the original registry in every request. This is for example how Dragonfly solves this problem.

Eventually I found that Containerd in its image pull implementation will include a ns query parameter containing the original registry in every request. This is technically out of spec but it is there, and it makes life a lot easier so Spegel uses it.

All that needs to be changed in Spegel is to allow setting a empty registry list to disable registry filtering. With that small change everything should work and k3s should be able to just use the default mirror configuration.

@brandond
Copy link
Member

brandond commented Feb 29, 2024

Since Spegel uses a regex filter to watch containerd events, it would probably be as easy as just converting a registry name of * or _default to filter regex ^.+/. That's what I was going to try at least.

The ns query parameter seems to be an undocumented standard, nexus for example supports that when used as a pull through cache.

@phillebaba
Copy link
Contributor

Yeah I missed that part when initially writing my reply, hence my reply. The solution is pretty simple, I could throw together a PR now to allow all registries when the list is empty.

@brandond
Copy link
Member

brandond commented Feb 29, 2024

I just quickly threw together k3s-io/spegel@b8f4f0a, which would require users to specifically opt in to mirroring images from all registries by specifying * or _default. This matches how containerd's configuration handles setting default endpoints for all registries.

@phillebaba
Copy link
Contributor

I think that either way would work, setting no registries in the list or a wild card. Could we however merge my PR to change to using upstream Spegel to avoid dealing with more diffs in the fork.

@brandond
Copy link
Member

brandond commented Mar 1, 2024

I ran into a couple issues while further bumping on top of the current main branch in #9599, see spegel-org/spegel@38a05d0...k3s-io:spegel:e300eecb1d56552b307fafb2557c6faa329e1459

@VestigeJ
Copy link

##Environment Details
Reproduced using VERSION=v1.29.2+k3s1
Validated using COMMIT=bba3e3c66b22bbf112dc316a9b5dbd27f68f4ba8

Infrastructure

  • Cloud

Node(s) CPU architecture, OS, and version:

Linux 5.14.21-150500.53-default x86_64 GNU/Linux
PRETTY_NAME="SUSE Linux Enterprise Server 15 SP5"

Cluster Configuration:

NAME               STATUS   ROLES                       AGE   VERSION
ip-2               Ready    control-plane,etcd,master   17m   v1.29.2+k3s-bba3e3c6
ip-1               Ready    control-plane,etcd,master   15m   v1.29.2+k3s-bba3e3c6
ip-3               Ready    control-plane,etcd,master   14m   v1.29.2+k3s-bba3e3c6

Config.yaml:

node-external-ip: 777.77.7.42
token: YOUR_TOKEN_HERE
write-kubeconfig-mode: 644
debug: true
protect-kernel-defaults: true
cluster-init: true
embedded-registry: true

Reproduction

$ curl https://get.k3s.io --output install-"k3s".sh
$ sudo chmod +x install-"k3s".sh
$ sudo groupadd --system etcd && sudo useradd -s /sbin/nologin --system -g etcd etcd
$ sudo modprobe ip_vs_rr
$ sudo modprobe ip_vs_wrr
$ sudo modprobe ip_vs_sh
$ sudo printf "on_oovm.panic_on_oom=0 \nvm.overcommit_memory=1 \nkernel.panic=10 \nkernel.panic_ps=1 \nkernel.panic_on_oops=1 \n" > ~/90-kubelet.conf
$ sudo cp 90-kubelet.conf /etc/sysctl.d/
$ sudo systemctl restart systemd-sysctl
$ VERSION=v1.29.2+k3s1
$ sudo vim /etc/rancher/k3s/registries.yaml //file pasted below in details
$ sudo INSTALL_K3S_VERSION=$VERSION INSTALL_K3S_SKIP_ENABLE=true INSTALL_K3S_EXEC=server ./install-k3s.sh
$ sudo vim /etc/systemd/system/k3s.service.env //file pasted below in details
$ sudo systemctl start k3s
$ set_kubefig //export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
$ kgn //kubectl get nodes
$ kgp -A //kubectl get pods -A
$ k create deploy wonky --image=nginx:latest
$ k scale deploy wonky --replicas=9
$ sudo journalctl -u k3s | grep -i spegel
$ sudo journalctl -u k3s | grep -i spegel
$ sudo cat /etc/rancher/k3s/registries.yaml
$ sudo cat /etc/systemd/system/k3s.service.env
$ void;clean_logs;go_replay;get_figs; //sudo k3s-killall.sh;sudo k3s-uninstall.sh; sudo vacuum logs;sudo cp config.yaml /etc/rancher/k3s/config.yaml; etc
$ sudo vim /etc/rancher/k3s/registries.yaml //file pasted below in details
$ COMMIT=bba3e3c66b22bbf112dc316a9b5dbd27f68f4ba8
$ sudo INSTALL_K3S_COMMIT=$COMMIT INSTALL_K3S_SKIP_ENABLE=true INSTALL_K3S_EXEC=server ./install-k3s.sh
$ sudo vim /etc/systemd/system/k3s.service.env //file pasted below in details
$ sudo systemctl start k3s
$ set_kubefig //export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
$ kgn //kubectl get nodes
$ kgp -A //kubectl get pods -A
$ k create deploy wonky --image=nginx:latest
$ sudo journalctl -u k3s | grep -i spegel
$ k scale deploy wonky --replicas=9
$ sudo journalctl -u k3s | grep -i spegel

Results:

previous release behavior

$ sudo journalctl -u k3s | grep -i spegel

Mar 14 17:18:54 ip-134 k3s[3121]: time="2024-03-14T17:18:54Z" level=info msg="spegel 2024/03/14 17:18:54 p2p: \"level\"=0 \"msg\"=\"starting p2p router\" \"id\"=\"/ip4/134/tcp/5001/p2p/QmfUv9Z9jhoYc3hR6d5RGxqcj8SGNqh5opUCvHD9YHfpVs\""
Mar 14 17:18:54 ip-134 k3s[3121]: time="2024-03-14T17:18:54Z" level=info msg="spegel 2024/03/14 17:18:54 p2p: \"level\"=0 \"msg\"=\"leader is self skipping connection to bootstrap node\""
Mar 14 17:18:54 ip-134 k3s[3121]: time="2024-03-14T17:18:54Z" level=info msg="spegel 2024/03/14 17:18:54 p2p: \"level\"=0 \"msg\"=\"leader is self skipping connection to bootstrap node\""
Mar 14 17:18:54 ip-134 k3s[3121]: time="2024-03-14T17:18:54Z" level=info msg="spegel 2024/03/14 17:18:54 \"level\"=0 \"msg\"=\"running scheduled image state update\""
Mar 14 17:20:54 ip-134 k3s[3121]: time="2024-03-14T17:20:54Z" level=info msg="spegel 2024/03/14 17:20:54 p2p: \"level\"=0 \"msg\"=\"leader is self skipping connection to bootstrap node\""
Mar 14 17:22:54 ip-134 k3s[3121]: time="2024-03-14T17:22:54Z" level=info msg="spegel 2024/03/14 17:22:54 p2p: \"level\"=0 \"msg\"=\"leader is self skipping connection to bootstrap node\""
Mar 14 17:23:32 ip-134 k3s[3121]: 2024-03-14T17:23:32.359Z        DEBUG        net/identify        identify/id.go:456        sending snapshot        {"seq": 2, "protocols": ["/ipfs/id/1.0.0","/ipfs/id/push/1.0.0","/ipfs/ping/1.0.0","/libp2p/circuit/relay/0.2.0/stop","/spegel/kad/1.0.0"], "addrs": ["/ip4/134/tcp/5001"]}
Mar 14 17:23:32 ip-134 k3s[3121]: 2024-03-14T17:23:32.369Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 14.888µs)
Mar 14 17:23:58 ip-134 k3s[3121]: 2024-03-14T17:23:58.909Z        DEBUG        net/identify        identify/id.go:456        sending snapshot        {"seq": 2, "protocols": ["/ipfs/id/1.0.0","/ipfs/id/push/1.0.0","/ipfs/ping/1.0.0","/libp2p/circuit/relay/0.2.0/stop","/spegel/kad/1.0.0"], "addrs": ["/ip4/134/tcp/5001"]}
Mar 14 17:23:58 ip-134 k3s[3121]: 2024-03-14T17:23:58.917Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 14.465µs)
Mar 14 17:25:32 ip-134 k3s[3121]: 2024-03-14T17:25:32.370Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 23.002µs)
Mar 14 17:25:58 ip-134 k3s[3121]: 2024-03-14T17:25:58.766Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 21.017µs)
Mar 14 17:27:32 ip-134 k3s[3121]: 2024-03-14T17:27:32.369Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 19.045µs)
Mar 14 17:27:54 ip-134 k3s[3121]: time="2024-03-14T17:27:54Z" level=info msg="spegel 2024/03/14 17:27:54 \"level\"=0 \"msg\"=\"running scheduled image state update\""
Mar 14 17:27:58 ip-134 k3s[3121]: 2024-03-14T17:27:58.766Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 20.85µs)
Mar 14 17:29:32 ip-134 k3s[3121]: 2024-03-14T17:29:32.370Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 20.699µs)
Mar 14 17:29:58 ip-134 k3s[3121]: 2024-03-14T17:29:58.766Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 18.575µs)
Mar 14 17:31:32 ip-134 k3s[3121]: 2024-03-14T17:31:32.370Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 22.293µs)
Mar 14 17:31:58 ip-134 k3s[3121]: 2024-03-14T17:31:58.766Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 22.126µs)
Mar 14 17:33:32 ip-134 k3s[3121]: 2024-03-14T17:33:32.158Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 21.134µs)
Mar 14 17:33:32 ip-134 k3s[3121]: 2024-03-14T17:33:32.369Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 17.48µs)
Mar 14 17:33:58 ip-134 k3s[3121]: 2024-03-14T17:33:58.612Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 18.896µs)
Mar 14 17:33:58 ip-134 k3s[3121]: 2024-03-14T17:33:58.766Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 25.897µs)
Mar 14 17:35:32 ip-134 k3s[3121]: 2024-03-14T17:35:32.369Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 18.449µs)
Mar 14 17:35:32 ip-134 k3s[3121]: 2024-03-14T17:35:32.371Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 85.226µs)
Mar 14 17:35:32 ip-134 k3s[3121]: 2024-03-14T17:35:32.373Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 15.7µs)
Mar 14 17:35:32 ip-134 k3s[3121]: 2024-03-14T17:35:32.374Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 16.054µs)
Mar 14 17:35:32 ip-134 k3s[3121]: 2024-03-14T17:35:32.377Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 12.365µs)
Mar 14 17:35:32 ip-134 k3s[3121]: 2024-03-14T17:35:32.378Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 11.76µs)
Mar 14 17:35:58 ip-134 k3s[3121]: 2024-03-14T17:35:58.766Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 184.387µs)
Mar 14 17:35:58 ip-134 k3s[3121]: 2024-03-14T17:35:58.768Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 15.368µs)
Mar 14 17:35:58 ip-134 k3s[3121]: 2024-03-14T17:35:58.769Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 11.668µs)
Mar 14 17:35:58 ip-134 k3s[3121]: 2024-03-14T17:35:58.771Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 160.265µs)
Mar 14 17:35:58 ip-134 k3s[3121]: 2024-03-14T17:35:58.772Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 11.842µs)
Mar 14 17:35:58 ip-134 k3s[3121]: 2024-03-14T17:35:58.774Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 12.779µs)
Mar 14 17:36:54 ip-134 k3s[3121]: time="2024-03-14T17:36:54Z" level=info msg="spegel 2024/03/14 17:36:54 \"level\"=0 \"msg\"=\"running scheduled image state update\""
Mar 14 17:37:32 ip-134 k3s[3121]: 2024-03-14T17:37:32.370Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 19.606µs)
Mar 14 17:37:58 ip-134 k3s[3121]: 2024-03-14T17:37:58.766Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 24.452µs)
Mar 14 17:39:32 ip-134 k3s[3121]: 2024-03-14T17:39:32.370Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 19.197µs)
Mar 14 17:39:58 ip-134 k3s[3121]: 2024-03-14T17:39:58.766Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 25.303µs)
Mar 14 17:41:32 ip-134 k3s[3121]: 2024-03-14T17:41:32.370Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 491.553µs)
Mar 14 17:41:58 ip-134 k3s[3121]: 2024-03-14T17:41:58.766Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 20.589µs)
Mar 14 17:43:32 ip-134 k3s[3121]: 2024-03-14T17:43:32.163Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 18.83µs)
Mar 14 17:43:32 ip-134 k3s[3121]: 2024-03-14T17:43:32.369Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 19.961µs)
Mar 14 17:43:58 ip-134 k3s[3121]: 2024-03-14T17:43:58.612Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 20.2µs)
Mar 14 17:43:58 ip-134 k3s[3121]: 2024-03-14T17:43:58.765Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 21.252µs)
Mar 14 17:45:32 ip-134 k3s[3121]: 2024-03-14T17:45:32.370Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 21.828µs)
Mar 14 17:45:54 ip-134 k3s[3121]: time="2024-03-14T17:45:54Z" level=info msg="spegel 2024/03/14 17:45:54 \"level\"=0 \"msg\"=\"running scheduled image state update\""
Mar 14 17:45:58 ip-134 k3s[3121]: 2024-03-14T17:45:58.766Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 21.167µs)
Mar 14 17:47:32 ip-134 k3s[3121]: 2024-03-14T17:47:32.370Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 18.899µs)
Mar 14 17:47:32 ip-134 k3s[3121]: 2024-03-14T17:47:32.372Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 12.37µs)
Mar 14 17:47:32 ip-134 k3s[3121]: 2024-03-14T17:47:32.373Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 13.554µs)
Mar 14 17:47:32 ip-134 k3s[3121]: 2024-03-14T17:47:32.375Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 73.186µs)
Mar 14 17:47:32 ip-134 k3s[3121]: 2024-03-14T17:47:32.377Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 13.584µs)
Mar 14 17:47:32 ip-134 k3s[3121]: 2024-03-14T17:47:32.379Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 12.224µs)
Mar 14 17:47:58 ip-134 k3s[3121]: 2024-03-14T17:47:58.766Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 100.798µs)
Mar 14 17:47:58 ip-134 k3s[3121]: 2024-03-14T17:47:58.767Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 11.831µs)
Mar 14 17:47:58 ip-134 k3s[3121]: 2024-03-14T17:47:58.769Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 10.457µs)
Mar 14 17:47:58 ip-134 k3s[3121]: 2024-03-14T17:47:58.770Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 14.485µs)
Mar 14 17:47:58 ip-134 k3s[3121]: 2024-03-14T17:47:58.772Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 13.416µs)
Mar 14 17:47:58 ip-134 k3s[3121]: 2024-03-14T17:47:58.774Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 62.584µs)
Mar 14 17:49:32 ip-134 k3s[3121]: 2024-03-14T17:49:32.370Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 19.69µs)
Mar 14 17:49:58 ip-134 k3s[3121]: 2024-03-14T17:49:58.766Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 21.544µs)
Mar 14 17:51:32 ip-134 k3s[3121]: 2024-03-14T17:51:32.370Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 25.944µs)
Mar 14 17:51:58 ip-134 k3s[3121]: 2024-03-14T17:51:58.765Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 21.513µs)
Mar 14 17:53:32 ip-134 k3s[3121]: 2024-03-14T17:53:32.159Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 20.575µs)
Mar 14 17:53:32 ip-134 k3s[3121]: 2024-03-14T17:53:32.370Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 19.607µs)
Mar 14 17:53:58 ip-134 k3s[3121]: 2024-03-14T17:53:58.612Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 22.525µs)
Mar 14 17:53:58 ip-134 k3s[3121]: 2024-03-14T17:53:58.766Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 17.873µs)
Mar 14 17:54:54 ip-134 k3s[3121]: time="2024-03-14T17:54:54Z" level=info msg="spegel 2024/03/14 17:54:54 \"level\"=0 \"msg\"=\"running scheduled image state update\""
Mar 14 17:55:32 ip-134 k3s[3121]: 2024-03-14T17:55:32.369Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 21.195µs)
Mar 14 17:55:58 ip-134 k3s[3121]: 2024-03-14T17:55:58.765Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 19.165µs)
Mar 14 17:57:32 ip-134 k3s[3121]: 2024-03-14T17:57:32.369Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 18.918µs)
Mar 14 17:57:58 ip-134 k3s[3121]: 2024-03-14T17:57:58.766Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 20.356µs)
Mar 14 17:59:32 ip-134 k3s[3121]: 2024-03-14T17:59:32.370Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 17.275µs)
Mar 14 17:59:32 ip-134 k3s[3121]: 2024-03-14T17:59:32.372Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 95.121µs)
Mar 14 17:59:32 ip-134 k3s[3121]: 2024-03-14T17:59:32.373Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 14.349µs)
Mar 14 17:59:32 ip-134 k3s[3121]: 2024-03-14T17:59:32.375Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 12.304µs)
Mar 14 17:59:32 ip-134 k3s[3121]: 2024-03-14T17:59:32.377Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 14.367µs)
Mar 14 17:59:32 ip-134 k3s[3121]: 2024-03-14T17:59:32.378Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 13.643µs)

$ k scale deploy wonky --replicas=9 //I've elected to do this to generate peer to peer traffic as the pod scales out across the nodes instead of the initial single node in the cluster. Works pretty good :) Spegel is nice from a performance improvement on pod startup time with the image being on the hosts.
deployment.apps/wonky scaled

//New behavior for both mirrors and latest tag on images
$ sudo journalctl -u k3s | grep -i spegel

k3s[19695]: msg="spegel 2024/03/14 20:21:57 \"level\"=0 \"msg\"=\"received image event\" \"image\"=\"docker.io/rancher/mirrored-pause:3.6@sha256:74c4244427b7312c5b901fe0f67cbc53683d06f4f24c6faee65d4182bf0fa893\" \"type\"=\"CREATE\""
k3s[19695]: msg="spegel 2024/03/14 20:21:57 \"level\"=10 \"msg\"=\"advertising keys\" \"host\"=\"QmeWpoTUbfY1bn653sS5igN7WyHWMtGmR4cyhwqrdorCLB\" \"keys\"=[\"docker.io/rancher/mirrored-pause:3.6\" \"sha256:74c4244427b7312c5b901fe0f67cbc53683d06f4f24c6faee65d4182bf0fa893\" \"sha256:c2280d2f5f56cf9c9a01bb64b2db4651e35efd6d62a54dcfc12049fe6449c5e4\" \"sha256:6270bb605e12e581514ada5fd5b3216f727db55dc87d5889c790e4c760683fee\" \"sha256:fbe1a72f5dcd08ba4ca3ce3468c742786c1f6578c1f6bb401be1c4620d6ff705\"]"
k3s[19695]: msg="spegel 2024/03/14 20:21:57 \"level\"=0 \"msg\"=\"received image event\" \"image\"=\"docker.io/rancher/mirrored-pause:3.6@sha256:74c4244427b7312c5b901fe0f67cbc53683d06f4f24c6faee65d4182bf0fa893\" \"type\"=\"UPDATE\""
k3s[19695]: msg="spegel 2024/03/14 20:21:57 \"level\"=10 \"msg\"=\"advertising keys\" \"host\"=\"QmeWpoTUbfY1bn653sS5igN7WyHWMtGmR4cyhwqrdorCLB\" \"keys\"=[\"docker.io/rancher/mirrored-pause:3.6\" \"sha256:74c4244427b7312c5b901fe0f67cbc53683d06f4f24c6faee65d4182bf0fa893\" \"sha256:c2280d2f5f56cf9c9a01bb64b2db4651e35efd6d62a54dcfc12049fe6449c5e4\" \"sha256:6270bb605e12e581514ada5fd5b3216f727db55dc87d5889c790e4c760683fee\" \"sha256:fbe1a72f5dcd08ba4ca3ce3468c742786c1f6578c1f6bb401be1c4620d6ff705\"]"
k3s[19695]: msg="spegel 2024/03/14 20:21:57 \"level\"=0 \"msg\"=\"received image event\" \"image\"=\"docker.io/rancher/mirrored-pause:3.6@sha256:74c4244427b7312c5b901fe0f67cbc53683d06f4f24c6faee65d4182bf0fa893\" \"type\"=\"UPDATE\""
k3s[19695]: msg="spegel 2024/03/14 20:21:57 \"level\"=10 \"msg\"=\"advertising keys\" \"host\"=\"QmeWpoTUbfY1bn653sS5igN7WyHWMtGmR4cyhwqrdorCLB\" \"keys\"=[\"docker.io/rancher/mirrored-pause:3.6\" \"sha256:74c4244427b7312c5b901fe0f67cbc53683d06f4f24c6faee65d4182bf0fa893\" \"sha256:c2280d2f5f56cf9c9a01bb64b2db4651e35efd6d62a54dcfc12049fe6449c5e4\" \"sha256:6270bb605e12e581514ada5fd5b3216f727db55dc87d5889c790e4c760683fee\" \"sha256:fbe1a72f5dcd08ba4ca3ce3468c742786c1f6578c1f6bb401be1c4620d6ff705\"]"
k3s[19695]: msg="spegel 2024/03/14 20:21:57 \"level\"=0 \"msg\"=\"received image event\" \"image\"=\"docker.io/rancher/mirrored-pause:3.6@sha256:74c4244427b7312c5b901fe0f67cbc53683d06f4f24c6faee65d4182bf0fa893\" \"type\"=\"UPDATE\""
k3s[19695]: msg="spegel 2024/03/14 20:21:57 \"level\"=10 \"msg\"=\"advertising keys\" \"host\"=\"QmeWpoTUbfY1bn653sS5igN7WyHWMtGmR4cyhwqrdorCLB\" \"keys\"=[\"docker.io/rancher/mirrored-pause:3.6\" \"sha256:74c4244427b7312c5b901fe0f67cbc53683d06f4f24c6faee65d4182bf0fa893\" \"sha256:c2280d2f5f56cf9c9a01bb64b2db4651e35efd6d62a54dcfc12049fe6449c5e4\" \"sha256:6270bb605e12e581514ada5fd5b3216f727db55dc87d5889c790e4c760683fee\" \"sha256:fbe1a72f5dcd08ba4ca3ce3468c742786c1f6578c1f6bb401be1c4620d6ff705\"]"
k3s[19695]: msg="spegel 2024/03/14 20:21:57 \"level\"=0 \"msg\"=\"received image event\" \"image\"=\"docker.io/rancher/mirrored-pause:3.6@sha256:74c4244427b7312c5b901fe0f67cbc53683d06f4f24c6faee65d4182bf0fa893\" \"type\"=\"UPDATE\""
k3s[19695]: msg="spegel 2024/03/14 20:21:57 \"level\"=10 \"msg\"=\"advertising keys\" \"host\"=\"QmeWpoTUbfY1bn653sS5igN7WyHWMtGmR4cyhwqrdorCLB\" \"keys\"=[\"docker.io/rancher/mirrored-pause:3.6\" \"sha256:74c4244427b7312c5b901fe0f67cbc53683d06f4f24c6faee65d4182bf0fa893\" \"sha256:c2280d2f5f56cf9c9a01bb64b2db4651e35efd6d62a54dcfc12049fe6449c5e4\" \"sha256:6270bb605e12e581514ada5fd5b3216f727db55dc87d5889c790e4c760683fee\" \"sha256:fbe1a72f5dcd08ba4ca3ce3468c742786c1f6578c1f6bb401be1c4620d6ff705\"]"
k3s[19695]: msg="spegel 2024/03/14 20:21:57 \"level\"=0 \"msg\"=\"received image event\" \"image\"=\"docker.io/rancher/mirrored-pause:3.6@sha256:74c4244427b7312c5b901fe0f67cbc53683d06f4f24c6faee65d4182bf0fa893\" \"type\"=\"UPDATE\""
k3s[19695]: msg="spegel 2024/03/14 20:21:57 \"level\"=10 \"msg\"=\"advertising keys\" \"host\"=\"QmeWpoTUbfY1bn653sS5igN7WyHWMtGmR4cyhwqrdorCLB\" \"keys\"=[\"docker.io/rancher/mirrored-pause:3.6\" \"sha256:74c4244427b7312c5b901fe0f67cbc53683d06f4f24c6faee65d4182bf0fa893\" \"sha256:c2280d2f5f56cf9c9a01bb64b2db4651e35efd6d62a54dcfc12049fe6449c5e4\" \"sha256:6270bb605e12e581514ada5fd5b3216f727db55dc87d5889c790e4c760683fee\" \"sha256:fbe1a72f5dcd08ba4ca3ce3468c742786c1f6578c1f6bb401be1c4620d6ff705\"]"
k3s[19695]: msg="spegel 2024/03/14 20:21:57 \"level\"=0 \"msg\"=\"received image event\" \"image\"=\"docker.io/rancher/mirrored-pause:3.6@sha256:74c4244427b7312c5b901fe0f67cbc53683d06f4f24c6faee65d4182bf0fa893\" \"type\"=\"UPDATE\""
k3s[19695]: msg="spegel 2024/03/14 20:21:57 \"level\"=10 \"msg\"=\"advertising keys\" \"host\"=\"QmeWpoTUbfY1bn653sS5igN7WyHWMtGmR4cyhwqrdorCLB\" \"keys\"=[\"docker.io/rancher/mirrored-pause:3.6\" \"sha256:74c4244427b7312c5b901fe0f67cbc53683d06f4f24c6faee65d4182bf0fa893\" \"sha256:c2280d2f5f56cf9c9a01bb64b2db4651e35efd6d62a54dcfc12049fe6449c5e4\" \"sha256:6270bb605e12e581514ada5fd5b3216f727db55dc87d5889c790e4c760683fee\" \"sha256:fbe1a72f5dcd08ba4ca3ce3468c742786c1f6578c1f6bb401be1c4620d6ff705\"]"
k3s[19695]: msg="spegel 2024/03/14 20:21:57 \"level\"=0 \"msg\"=\"received image event\" \"image\"=\"docker.io/rancher/mirrored-pause:3.6@sha256:74c4244427b7312c5b901fe0f67cbc53683d06f4f24c6faee65d4182bf0fa893\" \"type\"=\"UPDATE\""
k3s[19695]: msg="spegel 2024/03/14 20:21:57 \"level\"=10 \"msg\"=\"advertising keys\" \"host\"=\"QmeWpoTUbfY1bn653sS5igN7WyHWMtGmR4cyhwqrdorCLB\" \"keys\"=[\"docker.io/rancher/mirrored-pause:3.6\" \"sha256:74c4244427b7312c5b901fe0f67cbc53683d06f4f24c6faee65d4182bf0fa893\" \"sha256:c2280d2f5f56cf9c9a01bb64b2db4651e35efd6d62a54dcfc12049fe6449c5e4\" \"sha256:6270bb605e12e581514ada5fd5b3216f727db55dc87d5889c790e4c760683fee\" \"sha256:fbe1a72f5dcd08ba4ca3ce3468c742786c1f6578c1f6bb401be1c4620d6ff705\"]"
k3s[19695]: msg="spegel 2024/03/14 20:21:57 \"level\"=0 \"msg\"=\"received image event\" \"image\"=\"docker.io/rancher/mirrored-pause@sha256:74c4244427b7312c5b901fe0f67cbc53683d06f4f24c6faee65d4182bf0fa893\" \"type\"=\"CREATE\""
k3s[19695]: msg="spegel 2024/03/14 20:21:57 \"level\"=10 \"msg\"=\"advertising keys\" \"host\"=\"QmeWpoTUbfY1bn653sS5igN7WyHWMtGmR4cyhwqrdorCLB\" \"keys\"=[\"sha256:74c4244427b7312c5b901fe0f67cbc53683d06f4f24c6faee65d4182bf0fa893\" \"sha256:c2280d2f5f56cf9c9a01bb64b2db4651e35efd6d62a54dcfc12049fe6449c5e4\" \"sha256:6270bb605e12e581514ada5fd5b3216f727db55dc87d5889c790e4c760683fee\" \"sha256:fbe1a72f5dcd08ba4ca3ce3468c742786c1f6578c1f6bb401be1c4620d6ff705\"]"
k3s[19695]: msg="spegel 2024/03/14 20:21:57 \"level\"=0 \"msg\"=\"received image event\" \"image\"=\"docker.io/rancher/mirrored-pause:3.6@sha256:74c4244427b7312c5b901fe0f67cbc53683d06f4f24c6faee65d4182bf0fa893\" \"type\"=\"UPDATE\""
k3s[19695]: msg="spegel 2024/03/14 20:21:57 \"level\"=10 \"msg\"=\"advertising keys\" \"host\"=\"QmeWpoTUbfY1bn653sS5igN7WyHWMtGmR4cyhwqrdorCLB\" \"keys\"=[\"docker.io/rancher/mirrored-pause:3.6\" \"sha256:74c4244427b7312c5b901fe0f67cbc53683d06f4f24c6faee65d4182bf0fa893\" \"sha256:c2280d2f5f56cf9c9a01bb64b2db4651e35efd6d62a54dcfc12049fe6449c5e4\" \"sha256:6270bb605e12e581514ada5fd5b3216f727db55dc87d5889c790e4c760683fee\" \"sha256:fbe1a72f5dcd08ba4ca3ce3468c742786c1f6578c1f6bb401be1c4620d6ff705\"]"
k3s[19695]: msg="spegel 2024/03/14 20:21:57 \"level\"=0 \"msg\"=\"received image event\" \"image\"=\"docker.io/rancher/mirrored-pause@sha256:74c4244427b7312c5b901fe0f67cbc53683d06f4f24c6faee65d4182bf0fa893\" \"type\"=\"UPDATE\""
k3s[19695]: msg="spegel 2024/03/14 20:21:57 \"level\"=10 \"msg\"=\"advertising keys\" \"host\"=\"QmeWpoTUbfY1bn653sS5igN7WyHWMtGmR4cyhwqrdorCLB\" \"keys\"=[\"sha256:74c4244427b7312c5b901fe0f67cbc53683d06f4f24c6faee65d4182bf0fa893\" \"sha256:c2280d2f5f56cf9c9a01bb64b2db4651e35efd6d62a54dcfc12049fe6449c5e4\" \"sha256:6270bb605e12e581514ada5fd5b3216f727db55dc87d5889c790e4c760683fee\" \"sha256:fbe1a72f5dcd08ba4ca3ce3468c742786c1f6578c1f6bb401be1c4620d6ff705\"]"
k3s[19695]: msg="spegel 2024/03/14 20:21:57 \"level\"=0 \"msg\"=\"received image event\" \"image\"=\"docker.io/rancher/mirrored-pause@sha256:74c4244427b7312c5b901fe0f67cbc53683d06f4f24c6faee65d4182bf0fa893\" \"type\"=\"UPDATE\""
k3s[19695]: msg="spegel 2024/03/14 20:21:57 \"level\"=10 \"msg\"=\"advertising keys\" \"host\"=\"QmeWpoTUbfY1bn653sS5igN7WyHWMtGmR4cyhwqrdorCLB\" \"keys\"=[\"sha256:74c4244427b7312c5b901fe0f67cbc53683d06f4f24c6faee65d4182bf0fa893\" \"sha256:c2280d2f5f56cf9c9a01bb64b2db4651e35efd6d62a54dcfc12049fe6449c5e4\" \"sha256:6270bb605e12e581514ada5fd5b3216f727db55dc87d5889c790e4c760683fee\" \"sha256:fbe1a72f5dcd08ba4ca3ce3468c742786c1f6578c1f6bb401be1c4620d6ff705\"]"
k3s[19695]: msg="spegel 2024/03/14 20:21:57 \"level\"=0 \"msg\"=\"received image event\" \"image\"=\"docker.io/rancher/mirrored-pause:3.6@sha256:74c4244427b7312c5b901fe0f67cbc53683d06f4f24c6faee65d4182bf0fa893\" \"type\"=\"UPDATE\""
k3s[19695]: msg="spegel 2024/03/14 20:21:57 \"level\"=10 \"msg\"=\"advertising keys\" \"host\"=\"QmeWpoTUbfY1bn653sS5igN7WyHWMtGmR4cyhwqrdorCLB\" \"keys\"=[\"docker.io/rancher/mirrored-pause:3.6\" \"sha256:74c4244427b7312c5b901fe0f67cbc53683d06f4f24c6faee65d4182bf0fa893\" \"sha256:c2280d2f5f56cf9c9a01bb64b2db4651e35efd6d62a54dcfc12049fe6449c5e4\" \"sha256:6270bb605e12e581514ada5fd5b3216f727db55dc87d5889c790e4c760683fee\" \"sha256:fbe1a72f5dcd08ba4ca3ce3468c742786c1f6578c1f6bb401be1c4620d6ff705\"]"
k3s[19695]: msg="spegel 2024/03/14 20:21:57 \"level\"=0 \"msg\"=\"received image event\" \"image\"=\"docker.io/rancher/mirrored-pause@sha256:74c4244427b7312c5b901fe0f67cbc53683d06f4f24c6faee65d4182bf0fa893\" \"type\"=\"UPDATE\""
k3s[19695]: msg="spegel 2024/03/14 20:21:57 \"level\"=10 \"msg\"=\"advertising keys\" \"host\"=\"QmeWpoTUbfY1bn653sS5igN7WyHWMtGmR4cyhwqrdorCLB\" \"keys\"=[\"sha256:74c4244427b7312c5b901fe0f67cbc53683d06f4f24c6faee65d4182bf0fa893\" \"sha256:c2280d2f5f56cf9c9a01bb64b2db4651e35efd6d62a54dcfc12049fe6449c5e4\" \"sha256:6270bb605e12e581514ada5fd5b3216f727db55dc87d5889c790e4c760683fee\" \"sha256:fbe1a72f5dcd08ba4ca3ce3468c742786c1f6578c1f6bb401be1c4620d6ff705\"]"
k3s[19695]: msg="spegel 2024/03/14 20:21:57 \"level\"=0 \"msg\"=\"received image event\" \"image\"=\"docker.io/rancher/mirrored-pause@sha256:74c4244427b7312c5b901fe0f67cbc53683d06f4f24c6faee65d4182bf0fa893\" \"type\"=\"UPDATE\""
k3s[19695]: msg="spegel 2024/03/14 20:21:57 \"level\"=10 \"msg\"=\"advertising keys\" \"host\"=\"QmeWpoTUbfY1bn653sS5igN7WyHWMtGmR4cyhwqrdorCLB\" \"keys\"=[\"sha256:74c4244427b7312c5b901fe0f67cbc53683d06f4f24c6faee65d4182bf0fa893\" \"sha256:c2280d2f5f56cf9c9a01bb64b2db4651e35efd6d62a54dcfc12049fe6449c5e4\" \"sha256:6270bb605e12e581514ada5fd5b3216f727db55dc87d5889c790e4c760683fee\" \"sha256:fbe1a72f5dcd08ba4ca3ce3468c742786c1f6578c1f6bb401be1c4620d6ff705\"]"
k3s[19695]: {"cniVersion":"1.0.0","forceAddress":true,"hairpinMode":true,"ipMasq":false,"ipam":{"ranges":[[{"subnet":"10.42.0.0/24"}]],"routes":[{"dst":"10.42.0.0/16"}],"type":"host-local"},"isDefaultGateway":true,"isGateway":true,"mtu":8951,"name":"cbr0","type":"bridge"}2024-03-14T20:27:37.511Z        DEBUG        basichost        basic/basic_host.go:438        negotiated: /spegel/kad/1.0.0 (took 19.746µs)
k3s[19695]: msg="spegel 2024/03/14 20:27:37 \"level\"=5 \"msg\"=\"mirrored request\" \"key\"=\"docker.io/library/nginx:latest\" \"path\"=\"/v2/library/nginx/manifests/latest\" \"ip\"=\"127.0.0.1\" \"path\"=\"/v2/library/nginx/manifests/latest\" \"url\"=\"https://777.77.222:6443\""
k3s[19695]: msg="spegel 2024/03/14 20:27:37 \"level\"=0 \"msg\"=\"\" \"path\"=\"/v2/library/nginx/manifests/latest\" \"status\"=200 \"method\"=\"HEAD\" \"latency\"=\"21.507792ms\" \"ip\"=\"127.0.0.1\" \"handler\"=\"mirror\""
k3s[19695]: msg="spegel 2024/03/14 20:27:37 \"level\"=5 \"msg\"=\"mirrored request\" \"key\"=\"sha256:6db391d1c0cfb30588ba0bf72ea999404f2764febf0f1f196acd5867ac7efa7e\" \"path\"=\"/v2/library/nginx/manifests/sha256:6db391d1c0cfb30588ba0bf72ea999404f2764febf0f1f196acd5867ac7efa7e\" \"ip\"=\"127.0.0.1\" \"path\"=\"/v2/library/nginx/manifests/sha256:6db391d1c0cfb30588ba0bf72ea999404f2764febf0f1f196acd5867ac7efa7e\" \"url\"=\"https://777.77.222:6443\""
k3s[19695]: msg="spegel 2024/03/14 20:27:37 \"level\"=0 \"msg\"=\"\" \"path\"=\"/v2/library/nginx/manifests/sha256:6db391d1c0cfb30588ba0bf72ea999404f2764febf0f1f196acd5867ac7efa7e\" \"status\"=200 \"method\"=\"GET\" \"latency\"=\"9.87382ms\" \"ip\"=\"127.0.0.1\" \"handler\"=\"mirror\""
k3s[19695]: msg="spegel 2024/03/14 20:27:37 \"level\"=5 \"msg\"=\"mirrored request\" \"key\"=\"sha256:52478f8cd6a142fd462f0a7614a7bb064e969a4c083648235d6943c786df8cc7\" \"path\"=\"/v2/library/nginx/manifests/sha256:52478f8cd6a142fd462f0a7614a7bb064e969a4c083648235d6943c786df8cc7\" \"ip\"=\"127.0.0.1\" \"path\"=\"/v2/library/nginx/manifests/sha256:52478f8cd6a142fd462f0a7614a7bb064e969a4c083648235d6943c786df8cc7\" \"url\"=\"https://777.77.222:6443\""
k3s[19695]: msg="spegel 2024/03/14 20:27:37 \"level\"=0 \"msg\"=\"\" \"path\"=\"/v2/library/nginx/manifests/sha256:52478f8cd6a142fd462f0a7614a7bb064e969a4c083648235d6943c786df8cc7\" \"status\"=200 \"method\"=\"GET\" \"latency\"=\"31.413682ms\" \"ip\"=\"127.0.0.1\" \"handler\"=\"mirror\""
k3s[19695]: msg="spegel 2024/03/14 20:27:37 \"level\"=5 \"msg\"=\"mirrored request\" \"key\"=\"sha256:92b11f67642b62bbb98e7e49169c346b30e20cd3c1c034d31087e46924b9312e\" \"path\"=\"/v2/library/nginx/blobs/sha256:92b11f67642b62bbb98e7e49169c346b30e20cd3c1c034d31087e46924b9312e\" \"ip\"=\"127.0.0.1\" \"path\"=\"/v2/library/nginx/blobs/sha256:92b11f67642b62bbb98e7e49169c346b30e20cd3c1c034d31087e46924b9312e\" \"url\"=\"https://777.77.164:6443\""
k3s[19695]: msg="spegel 2024/03/14 20:27:37 \"level\"=0 \"msg\"=\"\" \"path\"=\"/v2/library/nginx/blobs/sha256:92b11f67642b62bbb98e7e49169c346b30e20cd3c1c034d31087e46924b9312e\" \"status\"=200 \"method\"=\"GET\" \"latency\"=\"20.964646ms\" \"ip\"=\"127.0.0.1\" \"handler\"=\"mirror\""
k3s[19695]: msg="spegel 2024/03/14 20:27:37 \"level\"=5 \"msg\"=\"mirrored request\" \"key\"=\"docker.io/library/nginx:latest\" \"path\"=\"/v2/library/nginx/manifests/latest\" \"ip\"=\"127.0.0.1\" \"path\"=\"/v2/library/nginx/manifests/latest\" \"url\"=\"https://777.77.222:6443\""
k3s[19695]: msg="spegel 2024/03/14 20:27:37 \"level\"=0 \"msg\"=\"\" \"path\"=\"/v2/library/nginx/manifests/latest\" \"status\"=200 \"method\"=\"HEAD\" \"latency\"=\"8.311837ms\" \"ip\"=\"127.0.0.1\" \"handler\"=\"mirror\""
k3s[19695]: msg="spegel 2024/03/14 20:27:37 \"level\"=5 \"msg\"=\"mirrored request\" \"key\"=\"sha256:39fc875bd2b2e4f867e8e5cc5ad43bd5d6650ddeaf8c28b04f374f7fbca085f3\" \"path\"=\"/v2/library/nginx/blobs/sha256:39fc875bd2b2e4f867e8e5cc5ad43bd5d6650ddeaf8c28b04f374f7fbca085f3\" \"ip\"=\"127.0.0.1\" \"path\"=\"/v2/library/nginx/blobs/sha256:39fc875bd2b2e4f867e8e5cc5ad43bd5d6650ddeaf8c28b04f374f7fbca085f3\" \"url\"=\"https://777.77.164:6443\""
k3s[19695]: msg="spegel 2024/03/14 20:27:37 \"level\"=0 \"msg\"=\"\" \"path\"=\"/v2/library/nginx/blobs/sha256:39fc875bd2b2e4f867e8e5cc5ad43bd5d6650ddeaf8c28b04f374f7fbca085f3\" \"status\"=200 \"method\"=\"GET\" \"latency\"=\"7.685618ms\" \"ip\"=\"127.0.0.1\" \"handler\"=\"mirror\""
k3s[19695]: msg="spegel 2024/03/14 20:27:37 \"level\"=5 \"msg\"=\"mirrored request\" \"key\"=\"docker.io/library/nginx:latest\" \"path\"=\"/v2/library/nginx/manifests/latest\" \"ip\"=\"127.0.0.1\" \"path\"=\"/v2/library/nginx/manifests/latest\" \"url\"=\"https://777.77.222:6443\""
k3s[19695]: msg="spegel 2024/03/14 20:27:37 \"level\"=0 \"msg\"=\"\" \"path\"=\"/v2/library/nginx/manifests/latest\" \"status\"=200 \"method\"=\"HEAD\" \"latency\"=\"8.636699ms\" \"ip\"=\"127.0.0.1\" \"handler\"=\"mirror\""
k3s[19695]: msg="spegel 2024/03/14 20:27:37 \"level\"=5 \"msg\"=\"mirrored request\" \"key\"=\"sha256:035788421403127b57e688a82706198331f06545a955b526f89f2bf53f52b078\" \"path\"=\"/v2/library/nginx/blobs/sha256:035788421403127b57e688a82706198331f06545a955b526f89f2bf53f52b078\" \"ip\"=\"127.0.0.1\" \"path\"=\"/v2/library/nginx/blobs/sha256:035788421403127b57e688a82706198331f06545a955b526f89f2bf53f52b078\" \"url\"=\"https://777.77.164:6443\""
k3s[19695]: msg="spegel 2024/03/14 20:27:37 \"level\"=0 \"msg\"=\"\" \"path\"=\"/v2/library/nginx/blobs/sha256:035788421403127b57e688a82706198331f06545a955b526f89f2bf53f52b078\" \"status\"=200 \"method\"=\"GET\" \"latency\"=\"17.112273ms\" \"ip\"=\"127.0.0.1\" \"handler\"=\"mirror\""
k3s[19695]: msg="spegel 2024/03/14 20:27:37 \"level\"=5 \"msg\"=\"mirrored request\" \"key\"=\"sha256:87c3fb37cbf2f763f67f3b270aa0785ca05a2caedac399b4bfeedfd0ccd77d87\" \"path\"=\"/v2/library/nginx/blobs/sha256:87c3fb37cbf2f763f67f3b270aa0785ca05a2caedac399b4bfeedfd0ccd77d87\" \"ip\"=\"127.0.0.1\" \"path\"=\"/v2/library/nginx/blobs/sha256:87c3fb37cbf2f763f67f3b270aa0785ca05a2caedac399b4bfeedfd0ccd77d87\" \"url\"=\"https://777.77.222:6443\""
k3s[19695]: msg="spegel 2024/03/14 20:27:37 \"level\"=0 \"msg\"=\"\" \"path\"=\"/v2/library/nginx/blobs/sha256:87c3fb37cbf2f763f67f3b270aa0785ca05a2caedac399b4bfeedfd0ccd77d87\" \"status\"=200 \"method\"=\"GET\" \"latency\"=\"6.45869ms\" \"ip\"=\"127.0.0.1\" \"handler\"=\"mirror\""
k3s[19695]: msg="spegel 2024/03/14 20:27:37 \"level\"=5 \"msg\"=\"mirrored request\" \"key\"=\"sha256:c5cdd1ce752da415a6563d9432e1ee718b2f4ba353ee2bb7c8ce2aa78d5b4ee1\" \"path\"=\"/v2/library/nginx/blobs/sha256:c5cdd1ce752da415a6563d9432e1ee718b2f4ba353ee2bb7c8ce2aa78d5b4ee1\" \"ip\"=\"127.0.0.1\" \"path\"=\"/v2/library/nginx/blobs/sha256:c5cdd1ce752da415a6563d9432e1ee718b2f4ba353ee2bb7c8ce2aa78d5b4ee1\" \"url\"=\"https://777.77.222:6443\""
k3s[19695]: msg="spegel 2024/03/14 20:27:37 \"level\"=0 \"msg\"=\"\" \"path\"=\"/v2/library/nginx/blobs/sha256:c5cdd1ce752da415a6563d9432e1ee718b2f4ba353ee2bb7c8ce2aa78d5b4ee1\" \"status\"=200 \"method\"=\"GET\" \"latency\"=\"6.518789ms\" \"ip\"=\"127.0.0.1\" \"handler\"=\"mirror\""
k3s[19695]: msg="spegel 2024/03/14 20:27:37 \"level\"=5 \"msg\"=\"mirrored request\" \"key\"=\"sha256:33952c5995320e59a81112f411bfb02e097562a72c12e85828da51132ace47cd\" \"path\"=\"/v2/library/nginx/blobs/sha256:33952c5995320e59a81112f411bfb02e097562a72c12e85828da51132ace47cd\" \"ip\"=\"127.0.0.1\" \"path\"=\"/v2/library/nginx/blobs/sha256:33952c5995320e59a81112f411bfb02e097562a72c12e85828da51132ace47cd\" \"url\"=\"https://777.77.222:6443\""
k3s[19695]: msg="spegel 2024/03/14 20:27:37 \"level\"=0 \"msg\"=\"\" \"path\"=\"/v2/library/nginx/blobs/sha256:33952c5995320e59a81112f411bfb02e097562a72c12e85828da51132ace47cd\" \"status\"=200 \"method\"=\"GET\" \"latency\"=\"6.107838ms\" \"ip\"=\"127.0.0.1\" \"handler\"=\"mirror\""
k3s[19695]: msg="spegel 2024/03/14 20:27:38 \"level\"=5 \"msg\"=\"mirrored request\" \"key\"=\"sha256:8a1e25ce7c4f75e372e9884f8f7b1bedcfe4a7a7d452eb4b0a1c7477c9a90345\" \"path\"=\"/v2/library/nginx/blobs/sha256:8a1e25ce7c4f75e372e9884f8f7b1bedcfe4a7a7d452eb4b0a1c7477c9a90345\" \"ip\"=\"127.0.0.1\" \"path\"=\"/v2/library/nginx/blobs/sha256:8a1e25ce7c4f75e372e9884f8f7b1bedcfe4a7a7d452eb4b0a1c7477c9a90345\" \"url\"=\"https://777.77.164:6443\""
k3s[19695]: time="2024-03-14T20:27:38Z" level=info msg="spegel 2024/03/14 20:27:38 \"level\"=0 \"msg\"=\"\" \"path\"=\"/v2/library/nginx/blobs/sha256:8a1e25ce7c4f75e372e9884f8f7b1bedcfe4a7a7d452eb4b0a1c7477c9a90345\" \"status\"=200 \"method\"=\"GET\" \"latency\"=\"1.183514165s\" \"ip\"=\"127.0.0.1\" \"handler\"=\"mirror\""

stripped out some noise and yes 777.77 is a fake ip

$ kgp -A -o wide

NAMESPACE     NAME                                      READY   STATUS      RESTARTS   AGE   IP           NODE               NOMINATED NODE   READINESS GATES
default       wonky-5b8f8c7b86-2mzq8                    1/1     Running     0          10m   10.42.1.5    ip-1                  <none>           <none>
default       wonky-5b8f8c7b86-4vb5b                    1/1     Running     0          10m   10.42.1.6    ip-1                  <none>           <none>
default       wonky-5b8f8c7b86-4zxkz                    1/1     Running     0          10m   10.42.0.9    ip-2                  <none>           <none>
default       wonky-5b8f8c7b86-7lq4k                    1/1     Running     0          10m   10.42.2.5    ip-3                  <none>           <none>
default       wonky-5b8f8c7b86-czstr                    1/1     Running     0          10m   10.42.2.6    ip-3                  <none>           <none>
default       wonky-5b8f8c7b86-gfmlq                    1/1     Running     0          10m   10.42.0.11   ip-2                  <none>           <none>
default       wonky-5b8f8c7b86-kz9w9                    1/1     Running     0          11m   10.42.2.4    ip-3                  <none>           <none>
default       wonky-5b8f8c7b86-sdznh                    1/1     Running     0          10m   10.42.1.4    ip-1                  <none>           <none>
default       wonky-5b8f8c7b86-vrls2                    1/1     Running     0          10m   10.42.0.10   ip-2                  <none>           <none>
kube-system   coredns-6799fbcd5-rpdx7                   1/1     Running     0          16m   10.42.0.3    ip-2                  <none>           <none>
kube-system   helm-install-traefik-crd-c58t9            0/1     Completed   0          16m   10.42.0.5    ip-2                  <none>           <none>
kube-system   helm-install-traefik-cxfj4                0/1     Completed   1          16m   10.42.0.6    ip-2                  <none>           <none>
kube-system   local-path-provisioner-6c86858495-n794l   1/1     Running     0          16m   10.42.0.2    ip-2                  <none>           <none>
kube-system   metrics-server-54fd9b65b-cqbwj            1/1     Running     0          16m   10.42.0.4    ip-2                  <none>           <none>
kube-system   svclb-traefik-2b290cb7-6vj42              2/2     Running     0          14m   10.42.1.2    ip-1                  <none>           <none>
kube-system   svclb-traefik-2b290cb7-hfkrx              2/2     Running     0          15m   10.42.0.7    ip-2                  <none>           <none>
kube-system   svclb-traefik-2b290cb7-scn9k              2/2     Running     0          13m   10.42.2.2    ip-3                  <none>           <none>
kube-system   traefik-f4564c4f4-rrqjn                   1/1     Running     0          15m   10.42.0.8    ip-2                  <none>           <none>

$ sudo cat /etc/rancher/k3s/registries.yaml

mirrors:
  "*":

$ sudo cat /etc/systemd/system/k3s.service.env

K3S_P2P_ENABLE_LATEST=true

@github-project-automation github-project-automation bot moved this from To Test to Done Issue in K3s Development Mar 14, 2024
@matthewadams
Copy link
Author

Thank you! 🙏🏼

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

No branches or pull requests

4 participants