ORAS Resource Client
Documentation for setting Dragonfly's container runtime to ORAS Resource Client.
This method of image pull through Dragonfly is more efficient when compared to proxy method as it avoids TLS termination, reduces CPU time and download time as it creates hardlink(insead of copy) for subsequent file download after downloading the image from source for first time.
Configure dfget daemon
Configure Dfdaemon yaml file, The default path in Linux is /etc/dragonfly/dfget.yaml
in linux,
The default path in Darwin is $HOME/.dragonfly/config/dfget.yaml
,
refer to Dfdaemon.
# Peer task storage option.
storage:
# Task data expire time,
# when there is no access to a task data, this task will be gc.
taskExpireTime: 6h
strategy: io.d7y.storage.v2.advance.
# Disk quota gc threshold, when the quota of all tasks exceeds the gc threshold, the oldest tasks will be reclaimed.
diskGCThreshold: 50Gi
# Disk used percent gc threshold, when the disk used percent exceeds, the oldest tasks will be reclaimed.
# eg, diskGCThresholdPercent=80, when the disk usage is above 80%, start to gc the oldest tasks.
diskGCThresholdPercent: 80
# Set to ture for reusing underlying storage for same task id.
multiplex: true
# The singularity ORAS resources, most of it is same with https scheme.
oras:
proxy:
dialTimeout: 30s
keepAlive: 30s
maxIdleConns: 100
idleConnTimeout: 90s
responseHeaderTimeout: 30s
tlsHandshakeTimeout: 30s
expectContinueTimeout: 10s
insecureSkipVerify: true
ORAS Resource Client downloads images through Dragonfly
Pull the image through ORAS Resource Client:
dfget -u "oras://hostname/path/image:tag" -O /path/to/output
Verify
You can execute the following command to check if the image is distributed via Dragonfly.
grep "peer task done" /var/log/dragonfly/daemon/core.log
The expected output is as follows:
{
"level":"info",
"ts":"2022-09-07 12:04:26.485",
"caller":"peer/peertask_conductor.go:1500",
"msg":"peer task done, cost: 1ms",
"peer":"00.000.0.000-5184-1eab18b6-bead-4a9f-b055-abcdefghihkl",
"task":"b223b11dcb7ad19e3cfc4cg8e5af3b1699a597e974c737bb4004edeefabcdefgh",
"component":"PeerTask"
}