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

Estargz integrates Dragonfly P2P #966

Closed
gaius-qi opened this issue Oct 28, 2022 · 18 comments
Closed

Estargz integrates Dragonfly P2P #966

gaius-qi opened this issue Oct 28, 2022 · 18 comments

Comments

@gaius-qi
Copy link
Contributor

gaius-qi commented Oct 28, 2022

I am a Maintainer of Dragonfly. Does estargz need to combine Dragonfly's P2P transfer function to speed up image loading? Integrate like Nydus and Dragonfly, refer to https://d7y.io/docs/setup/integration/nydus.

If estargz and dragonfly P2P integration is feasible, our two communities can work together to do a good job in the image acceleration ecosystem.

@ktock @AkihiroSuda

@ktock
Copy link
Member

ktock commented Oct 28, 2022

@gaius-qi Thanks for the proposal. SGTM 👍

@gaius-qi
Copy link
Contributor Author

Whether estargz can support a mirror mode similar to nydus? Estargz proxy download requests to Dragonfly.

@ktock
Copy link
Member

ktock commented Oct 28, 2022

@gaius-qi Yes, stargz-snapshotter supports registry mirrors:

https://github.com/containerd/stargz-snapshotter/blob/v0.12.1/docs/overview.md#registry-mirrors-and-insecure-connection

[[resolver.host."exampleregistry.io".mirrors]]
host = "mirrorhost.io"

@gaius-qi
Copy link
Contributor Author

Does it support custom headers?

Registry that controls the final Dragonfly access by adding the X-Dragonfly-Registry Header:

image

@gaius-qi
Copy link
Contributor Author

gaius-qi commented Nov 3, 2022

Does it support custom headers?

Registry that controls the final Dragonfly access by adding the X-Dragonfly-Registry Header:

image

cc @ktock

@gaius-qi
Copy link
Contributor Author

gaius-qi commented Nov 4, 2022

Please help us supplement the documentation for the stargz usage section.

PR: dragonflyoss/d7y.io#178

@ktock

@ktock
Copy link
Member

ktock commented Nov 8, 2022

@gaius-qi

PR: dragonflyoss/d7y.io#178

Added a comment

custom headers

PTAL #983 Does this work for your use-case?

@gaius-qi
Copy link
Contributor Author

gaius-qi commented Nov 8, 2022

#983

Sure, this is work for my use-case #983

This is the document and perf test. If there is any part of stargz that can be optimized, you can tell me, and I will retest the new data.

Document: https://d7y.io/docs/setup/integration/stargz

@gaius-qi
Copy link
Contributor Author

gaius-qi commented Nov 8, 2022

There is another question that can describe the situation of mirror mode to me, how does stargz exchange auth token.

I have a problem now that the first time get blobs from dragonfly mirror returns 401, then stargz goes to the auth service to exchange for the auth token, and the second time stargz request dragonfly mirror with the token, it still returns 401.

How can I get the stargz logs to find the problem?

@ktock
Copy link
Member

ktock commented Nov 8, 2022

@gaius-qi

Which auth method are you using? There are 3 methods are supported as of now: https://github.com/containerd/stargz-snapshotter/blob/v0.12.1/docs/overview.md#registry-related-configuration

Stargz-snapshotter reports failed to prepare remote snapshot warning log when it fails to connect to the registry. Could you provide the log around that message?

@gaius-qi
Copy link
Contributor Author

gaius-qi commented Nov 9, 2022

@gaius-qi

Which auth method are you using? There are 3 methods are supported as of now: https://github.com/containerd/stargz-snapshotter/blob/v0.12.1/docs/overview.md#registry-related-configuration

Stargz-snapshotter reports failed to prepare remote snapshot warning log when it fails to connect to the registry. Could you provide the log around that message?

There should be no problem now, it was caused by dirty data before.

@gaius-qi
Copy link
Contributor Author

gaius-qi commented Nov 9, 2022

@gaius-qi

PR: dragonflyoss/d7y.io#178

Added a comment

custom headers

PTAL #983 Does this work for your use-case?

@ktock

Which version can be released?

Maybe v0.12.2?

Stargz return custom header, refer to dragonflyoss/d7y.io#179.

Can you put a link to the documentation for dragonfly and stargz integration (https://d7y.io/docs/setup/integration/stargz) into the stargz documentation?

@ktock
Copy link
Member

ktock commented Nov 9, 2022

@gaius-qi

There should be no problem now, it was caused by dirty data before.

👍

Maybe v0.12.2?

We'll release v0.13.0 in days.

Can you put a link to the documentation for dragonfly and stargz integration (https://d7y.io/docs/setup/integration/stargz) into the stargz documentation?

Sure. It would be great if you can address dragonflyoss/d7y.io#178 (comment).

@gaius-qi
Copy link
Contributor Author

gaius-qi commented Nov 9, 2022

@ktock

Change eStargz version to v0.13.0: dragonflyoss/d7y.io#180

Stargz document: #988

@gaius-qi
Copy link
Contributor Author

I'm going to post this article to the cncf.io blog, do you have any suggestions?

@ktock
Copy link
Member

ktock commented Nov 10, 2022

@gaius-qi

article

I'm curious about that lazy pulling of eStargz node:19.0 image takes 10s+ in the "Performance testing" section in the linked document. What can be the major bottleneck there (too many prefetch bytes)?

@gaius-qi
Copy link
Contributor Author

@gaius-qi

article

I'm curious about that lazy pulling of eStargz node:19.0 image takes 10s+ in the "Performance testing" section in the linked document. What can be the major bottleneck there (too many prefetch bytes)?

OCIv1:
image

eStargz:
image

I am running node --version.

@gaius-qi
Copy link
Contributor Author

I'm closing this issue. If you have any other questions, let's keep in touch. If you have any questions, you can send me an email at gaius.qi@gmail.com, or you can submit an issue in dragonfly's issue.

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

No branches or pull requests

2 participants