在 k3s 中使用 Spegel 實現 p2p Docker Registry

我最近為了執行 Atuin 而架設了一個新的 k3s 叢集。自從我寫了關於這個主題的上一篇筆記以來,已經有一些改變!
我確實需要為這篇文章寫一個 v2 版本,不過在這段期間,我稍微了解了一下 Spegel,這是 k3s 內建的可選 integrated registry(整合式倉庫)。
如果伺服器節點是以 --embedded-registry 啟動,它們就會建置並執行 Spegel registry。這表示它們會在連接埠 6443 上託管本機 OCI registry,同時透過連接埠 5001 連線到 p2p network(點對點網路)。
要讓 upstream registry mirroring(上游倉庫鏡像)正常運作,你必須編輯 /etc/rancher/k3s/registries.yaml
例如:
mirrors:
docker.io:
registry.k8s.io:這樣就能啟用這兩個 registry 的鏡像。此檔案會在啟動時讀取。你可以使用 "*": 來啟用 wildcard mirroring(萬用字元鏡像),必須加上引號。
p2p routing 的運作方式與 BitTorrent 非常相似——Spegel 也使用 Kademlia DHT(Kademlia 分散式雜湊表)來解析 digests(摘要)。
gif 取自 spegel readme
隨機一篇部落格