Consideration of Distributed Container Image Delivery ================= --- ### Who are we? - 安田 侑史 - クリエーションライン株式会社 - K○大学(2年ぶりに進級,新4年生) - @yupeji - 分子生物学専攻のへっぽこ大学生 --- ### Who are we? - フルカン ムスタファ - Rainlab Inc. Lead Engineer - クリエーションライン株式会社 - @furkanmustafa - DIY・ダサい物作り専門 --- ## Agenda - Bittorrent - Dragonfly - Kraken - Beiran --- # Peer to Peer? --- ## Bittorrent ![](https://obj.rlab.io:443/hackmd/uploads/upload_37efa31fef14e2256a68d8c4d6730732.png) Evangelista et al. 2011 --- ### How slow docker pulling is! --- #### Distributed Container Image Delivery --- # Dragonfly --- ### What is the Dragonfly ? ![](https://obj.rlab.io:443/hackmd/uploads/upload_9e8aa458dfa85ff829753993e7806d09.png) - Made by Alibaba - P2P based image Delivery - https://github.com/dragonflyoss/Dragonfly --- ![](https://obj.rlab.io:443/hackmd/uploads/upload_912d4dc36940dc3fc3f2dbe5b07e7b0b.png) https://d7y.io/en-us/index.html --- ## dfdaemon - proxy between container engine and registry ![](https://obj.rlab.io:443/hackmd/uploads/upload_472f84ed0a1f8d1e6848b558dee8ae0a.png) <span style="font-size: 20px;"> https://github.com/dragonflyoss/Dragonfly/blob/master/docs/design/design.md#architecture </span> --- ![](https://obj.rlab.io:443/hackmd/uploads/upload_912d4dc36940dc3fc3f2dbe5b07e7b0b.png) https://d7y.io/en-us/index.html --- ## dfget - The client of Dragonfly - The role of peer --- ![](https://obj.rlab.io:443/hackmd/uploads/upload_912d4dc36940dc3fc3f2dbe5b07e7b0b.png) https://d7y.io/en-us/index.html --- ## Supernode - Tracker - Scheduler - Cache server - This is like seeder --- ## Dragonfly - P2P based image **Delivery** - For Client side - https://ieevee.com/tech/2019/01/02/dragonfly-on-k8s.html --- # Kraken --- ### What is the Kraken? - Made by Uber - P2P based image registry - https://github.com/uber/kraken --- ![](https://obj.rlab.io:443/hackmd/uploads/upload_389a0e9eef6264466fc125691117293d.png) https://github.com/uber/kraken#architecture --- ## Agent - Docker registry interface - Announces available content to tracker - Peer --- ![](https://obj.rlab.io:443/hackmd/uploads/upload_389a0e9eef6264466fc125691117293d.png) https://github.com/uber/kraken#architecture --- ## Origin - Dedicated seeders - Stores blobs as files on disk - Forms a self-healing hash ring to distribute load --- ![](https://obj.rlab.io:443/hackmd/uploads/upload_389a0e9eef6264466fc125691117293d.png) https://github.com/uber/kraken#architecture --- ## Tracker - Tracks which peers have what content - Provides ordered lists of peers --- ![](https://obj.rlab.io:443/hackmd/uploads/upload_389a0e9eef6264466fc125691117293d.png) https://github.com/uber/kraken#architecture --- ### Proxy - Docker registry interface - Uploads each image layer to the responsible origin - Uploads tags to build-index --- ![](https://obj.rlab.io:443/hackmd/uploads/upload_389a0e9eef6264466fc125691117293d.png) https://github.com/uber/kraken#architecture --- ### Build-index - Mapping of human readable tag to blob digest - No consistency guarantees - Stores tags as files on disk - Powers image replication between clusters --- ## Kraken - P2P based image **registy** --- # Beiran https://hmd.beiran.io/2rnAm9gaQGa89lhCeWWzAg
{}