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: I5079c83de5cb099890b674c6259965db880fad5f
This commit is contained in:
Sergiy Markin 2023-08-15 14:17:45 +00:00
parent 840f697fd1
commit 4fa40c9fd0
2 changed files with 51 additions and 33 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
@ -419,4 +430,4 @@ kubectl exec -it multitool -- nslookup google.com
# sudo sed -i.bkp '/^nameserver.*127.0.0.1/d
# w /dev/stdout' /etc/resolv.conf
cd "${CURRENT_DIR}"
cd "${CURRENT_DIR}"

View File

@ -14,6 +14,12 @@
- hosts: all
roles:
- role: add-authorized-keys
public_keys:
- public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDA7eM8WFJrqQmki8rR0O3QBHyl8xq42jb1RduwuRwjWoGYJI5cX7Fx+7VR4A9ITCoiqxKS8DMfgKbt5jKC6SmvMALULZsnYlthB34KywurgxsW6fgp68DHWQ7J4CCBhoIpl0W3JW7s6b0vHLhab59r0E+AYemBVuWUqbFEy8nDAHcQv1S/2o1udhmljIN7c2ogO4KAJ7Lge0BoIP9ps4u6AVwyQZixp4anU9DHGNA/UQj4M5UyuALj5buEAuATBe9Vqj4sOvZjObPJAGPUrNRrGEWAFk+lSZHRzKXo0eeWtPqoh5UN9UDb5Pocg1krncMIZwjHKovlD1z/O1y91aY5LM1wxm/7aaIiX8eCihyVZaOuDCLF7WDT2SMs7ABcotX2MDtVQTrNNV3MmMAScFNDflzPKszd7cdjLl6PBq8bvPxmCkLmnitPTGOoh9d8i+JlbINvgx1pguYrpeciIyreCO1rjTW3MgB0tyoMEa31V+7HrauBMeNnE68YTqLTIB0= smarkin@mirantis.com
tasks:
- name: Clone dependencies
shell: |
@ -26,6 +32,7 @@
shell: |
set -ex
./tools/deployment/airskiff/developer/009-setup-apparmor.sh
while true; do sleep 100; done
args:
chdir: "{{ zuul.project.src_dir }}"