github.com/alibaba/sealer@v0.8.6-0.20220430115802-37a2bdaa8173/applications/nydus/README.md (about) 1 # Overview 2 3 The nydus project implements a user space filesystem on top of a container image format that improves over the current OCI image specification, in terms of container launching speed, image space, and network bandwidth efficiency, as well as data integrity.See [Nydus](https://github.com/dragonflyoss/image-service). 4 5 Nydus can help sealer to improve image distribution performance. 6 7 ## How to use it 8 9 Using existing images that support nydus directly, such as: 10 11 ```shell 12 sealer run kubernetes-nydus:v1.19.8 --masters xxx.xxx.xxx.xxx --passwd xxxxxxx 13 ``` 14 15 or merge nydus image to other images, such as: 16 17 ```shell 18 sealer merge kubernetes:v1.19.8 nydus:v1.0.0 -t kubernetes-nydus:1.0.0 19 ``` 20 21 ## How to rebuild it 22 23 1. copy nydusdfile dir to /var/lib/sealer 24 25 ```bash 26 cp -r nydusdfile /var/lib/sealer 27 ``` 28 29 2. git clone nydus, buid binary and copy to nydusdfile dir 30 31 ```bash 32 cd ~ 33 git clone https://github.com/dragonflyoss/image-service.git 34 cd image-service 35 # build nydusd,nydus-images, x86_64 36 make static-release 37 cp target-fusedev/x86_64-unknown-linux-musl/release/nydusd /var/lib/sealer/nydusdfile/clientfile 38 cp target-fusedev/x86_64-unknown-linux-musl/release/nydus-image /var/lib/sealer/nydusdfile/serverfile 39 # build nydus-backend-proxy 40 cd contrib/nydus-backend-proxy 41 make static-release 42 cp arget/x86_64-unknown-linux-musl/release/nydus-backend-proxy /var/lib/sealer/nydusdfile/serverfile 43 ``` 44 45 the final nydusdfile dir is as: 46 47 ```bash 48 nydusdfile 49 ├── clientfile # the files need be scp to inodes to start nydusd 50 │ ├── clean.sh # nydusd clean 51 │ ├── nydusd # nydusd,Linux FUSE user-space daemon 52 │ └── start.sh # start nydusd 53 └── serverfile # the files for nydusdserver 54 ├── nydus-backend-proxy # A simple HTTP server to serve local directory as a blob backend for nydusd 55 ├── nydusblobs # nydus blobs dir 56 ├── nydus-image # Convert dir into a nydus format container image generating meta part file and data part file respectively 57 ├── Rocket.toml # Roket config file of nydusd http server 58 ├── serverclean.sh # nydusd http server clean 59 └── serverstart.sh # convert nydus images and start nydusd http server 60 ``` 61 62 3. modify Metadata 63 64 set "NydusFlag":true, such as 65 66 ```bash 67 # vim /var/lib/sealer/Metadata 68 { 69 "version": "v1.19.8", 70 "arch": "x86_64", 71 "NydusFlag":true 72 } 73 ``` 74 75 4. build new image 76 77 ```bash 78 cd /var/lib/sealer 79 sealer build -t {Your Image Name} -f Kubefile . 80 ```