Disk space issue on some zuul nodes

This PS moves containerd's and docker's runtime folders to /opt/.

Zuul nodepool now may have nodes with 40GB / and 80 GB /opt that is
different from previouly available 80Gb on / partition. Containerd
increases disk space usage on zuul nodes and cannot fit into 40Gb /.

Change-Id: I295dba5bf9a75f0d63bc80a25f80315bcfbd4e01
This commit is contained in:
Sergiy Markin 2023-08-15 14:17:45 +00:00
parent 840f697fd1
commit bd03f8fd4d
1 changed files with 43 additions and 32 deletions

View File

@ -39,6 +39,9 @@ export DEBIAN_FRONTEND=noninteractive
sudo swapoff -a
sudo mkdir -p /opt/docker
sudo mkdir -p /opt/containerd
echo "DefaultLimitMEMLOCK=16384" | sudo tee -a /etc/systemd/system.conf
sudo systemctl daemon-reexec
@ -109,25 +112,7 @@ sudo add-apt-repository \
$(lsb_release -cs) \
stable"
# NOTE: Configure docker
docker_resolv="/etc/resolv.conf"
docker_dns_list="$(awk '/^nameserver/ { printf "%s%s",sep,"\"" $NF "\""; sep=", "} END{print ""}' "${docker_resolv}")"
sudo -E mkdir -p /etc/docker
sudo -E tee /etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2",
"live-restore": true,
"dns": [${docker_dns_list}]
}
EOF
cat /etc/docker/daemon.json
if [ -n "${HTTP_PROXY}" ]; then
sudo mkdir -p /etc/systemd/system/docker.service.d
@ -174,6 +159,46 @@ install rbd /bin/true
EOF
cat << EOF | sudo tee /etc/containerd/config.toml
version = 2
# persistent data location
root = "/opt/containerd"
[debug]
level = "warn"
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
runtime_type = "io.containerd.runc.v2"
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
SystemdCgroup = true
EOF
sudo systemctl restart containerd
# NOTE: Configure docker
docker_resolv="/etc/resolv.conf"
docker_dns_list="$(awk '/^nameserver/ { printf "%s%s",sep,"\"" $NF "\""; sep=", "} END{print ""}' "${docker_resolv}")"
sudo -E mkdir -p /etc/docker
sudo -E tee /etc/docker/daemon.json <<EOF
{
"data-root": "/opt/docker",
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2",
"live-restore": true,
"dns": [${docker_dns_list}]
}
EOF
sudo systemctl restart docker
# Prepare tmpfs for etcd when running on CI
# CI VMs can have slow I/O causing issues for etcd
# Only do this on CI (when user is zuul), so that local development can have a kubernetes
@ -224,20 +249,6 @@ lsmod | grep overlay
cat << EOF | sudo tee /etc/containerd/config.toml
version = 2
[debug]
level = "warn"
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
runtime_type = "io.containerd.runc.v2"
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
SystemdCgroup = true
EOF
sudo systemctl restart containerd
# Install CNI Plugins
# from https://github.com/containernetworking/plugins.git