registry.k8s.io
kraken
registry.k8s.io | kraken | |
---|---|---|
20 | 14 | |
350 | 5,885 | |
2.6% | 1.3% | |
7.2 | 3.5 | |
4 months ago | 8 days ago | |
Go | Go | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
registry.k8s.io
-
Pull through cache, like AWS just announced
If you stop to think about, what AWS is selling here, it's quite funny. Most of the infrastructure behind registry.k8s.io is hosted on AWS (and also GCP). So AWS essentially tells you: Don't trust the upstream registry, it might go down, cache it on your own registry, hosted also by us.
- Resilient image cache/mirror
-
Announcing pull through cache for registry.k8s.io in Amazon Elastic Container Registry
For example: if you only allow cluster autoscaler and metrics server from registry.k8s.io you can pull those images through the cache as someone who has create repo IAM privileges. If someone without create repo privileges tries to pull a new image it will fail because they can't create the initial repo.
- How are they doing it?
-
registry.k8s.io down from Paris, France?
https://registry.k8s.io (the root url at /) redirects you to https://github.com/kubernetes/registry.k8s.io where we have an issue tracker.
-
FailedCreatePodSandBox
❗ This container is having trouble accessing https://registry.k8s.io
- registry.k8s.io/README.md at main · kubernetes/registry.k8s.io · GitHub
-
How to own your own Docker Registry address
Hosting a forwarding / redirect server instead of actually hosting images is probably a decent idea.
The K8s proxy is redirecting from only hosting on GCR to community-owned registries - https://kubernetes.io/blog/2023/03/10/image-registry-redirec...
You can view the code here - https://github.com/kubernetes/registry.k8s.io
But because everyone is already pointing at gcr.io (just like many openfaas users point at docker.io/) - they're having to do a huge campaign to announce the new URL - the same would apply with the author's solution here.
I wrote some automation for hosting (not redirects) in arkade with the OSS registry - Get a TLS-enabled Docker registry in 5 minutes - https://blog.alexellis.io/get-a-tls-enabled-docker-registry-...
The registry is also something you can run on a VM if you so wish, and have act as a pull through cache.
Apart from reliability - GitHub's container registry is the current next best option - but we have to ask ourselves, what happens when they start charging or the outages start to last longer or are more frequent than 1-2 times per week as we've seen in Q1 2023.
-
Docker's deleting Open Source images and here's what you need to know
One annoyance with how docker images are specified is they include the location where they are stored. So if you want to change where you store you image you break everyone.
I wonder if what regsitry.k8s.io does could be generalized:
https://github.com/kubernetes/registry.k8s.io/blob/main/cmd/...
The idea is the depending on which cloud you are pulling the image from, they will use the closest blob store to service the request. This also has the effect that you could change the source of truth for the registry without breaking all Dockerfiles.
-
k8s.gcr.io Image Registry Will Be Frozen From the 3rd of April 2023
If you are using updated helm charts then most of them have already replaced with registry.k8s.io, for example nginx ingress so not really breaking change.
kraken
-
BTFS (BitTorrent Filesystem)
https://github.com/uber/kraken?tab=readme-ov-file#comparison...
"Kraken was initially built with a BitTorrent driver, however, we ended up implementing our P2P driver based on BitTorrent protocol to allow for tighter integration with storage solutions and more control over performance optimizations.
Kraken's problem space is slightly different than what BitTorrent was designed for. Kraken's goal is to reduce global max download time and communication overhead in a stable environment, while BitTorrent was designed for an unpredictable and adversarial environment, so it needs to preserve more copies of scarce data and defend against malicious or bad behaving peers.
Despite the differences, we re-examine Kraken's protocol from time to time, and if it's feasible, we hope to make it compatible with BitTorrent again."
-
Resilient image cache/mirror
Kraken seems unmaintained: https://github.com/uber/kraken/issues/313
-
DockerHub replacement stratagy and options
For within your boundary of control, whether that be r/selfhosting, r/homelab, or enterprise a small registry or something like uber's kraken registry makes more sense.
-
Docker is deleting Open Source organisations - what you need to know
First hit on Google is https://github.com/uber/kraken Did not know such thing exists.
-
MinIO passes 1B cumulative Docker Pulls
Uber Engineering open-sourced Kraken [1], their peer-to-peer docker registry. I remember it originally using the BitTorrent protocol but in their readme they now say it is "based on BitTorrent" due to different tradeoffs they needed to make.
As far as I know there aren't any projects doing peer-to-peer distribution of container images to servers, probably because it's useful to be able to use a stock docker daemon on your server. The Kraken page references Dragonfly [2] but I haven't grokked it yet, it might be that.
It's also possible that in practice you'd want your CI nodes optimized for compute because they're doing a lot of work, your registry hosts for bandwidth, and your servers again for compute, and having one daemon to rule them all seems elegant but is actually overgeneralized, and specialization is better.
1 https://github.com/uber/kraken
-
Ask HN: Have You Left Kubernetes?
If you're pulling big images you could try kube-fledged (it's the simplest option, a CRD that works like a pre-puller for your images), or if you have a big cluster you can try a p2p distributor, like kraken or dragonfly2.
Also there's that project called Nydus that allows starting up big containers way faster. IIRC, starts the container before pulling the whole image, and begins to pull data as needed from the registry.
https://github.com/senthilrch/kube-fledged
https://github.com/dragonflyoss/Dragonfly2
https://github.com/uber/kraken
https://nydus.dev/
-
Kube-fledged: Cache Container Images in Kubernetes
Uber Kraken: Kraken is a P2P Docker registry capable of distributing TBs of data in seconds (URL: https://github.com/uber/kraken)
-
How to handle registry outages ? Registry outage contingency plans ?
Might want to consider a private p2p solution like https://github.com/uber/kraken or similar.
-
How to handle locally build container images across nodes? Container Registry the only way?
Cost, availability, upkeep. Same as any other service. There are alternatives… https://github.com/uber/kraken
- Can Kubernetes pre-pull and cache images?
What are some alternatives?
official-images - Primary source of truth for the Docker "Official Images" program
Dragonfly - This repository has be archived and moved to the new repository https://github.com/dragonflyoss/Dragonfly2.
cri-o - Open Container Initiative-based implementation of Kubernetes Container Runtime Interface
kube-fledged - A kubernetes operator for creating and managing a cache of container images directly on the cluster worker nodes, so application pods start almost instantly
one-click-apps - Community Maintained One Click Apps (https://github.com/caprover/caprover)
containers-roadmap - This is the public roadmap for AWS container services (ECS, ECR, Fargate, and EKS).
docker-registry-mirror - Helm chart for a Docker registry. Successor to stable/docker-registry chart.
deckschrubber - Deckschrubber inspects images of a Docker Registry and removes those older than a given age. :high_brightness::ship:
ipdr - 🐋 IPFS-backed Docker Registry
image-cache-daemon
devenv - Fast, Declarative, Reproducible, and Composable Developer Environments