Я установил кластер Kubernetes, используя Rancher, на 5 разных узлах CentOS (скажем, node1, node2, ..., node5).Для нашего запуска CI мы должны очищать устаревшие образы докера перед каждым запуском.Я создал скрипт, который работает на узле 1, и ssh без пароля включен от узла 1 до остальных узлов.Соответствующий раздел скрипта выглядит примерно так:
#!/bin/bash
helm ls --short --all | xargs -L1 helm delete --purge
echo "Deleting old data and docker images from Rancher host node."
rm -rf /var/lib/hadoop/* /opt/ci/*
docker images | grep localhost | awk '{print $3}' | xargs docker rmi -f
hosts=(node2 node3 node4 node5)
for host in ${hosts[*]}
do
echo "Deleting old data and docker images from ${host}"
ssh root@${host} docker images | grep localhost | awk '{print $3}' | xargs docker rmi -f
ssh root@${host} rm -rf /var/lib/hadoop/* /opt/ci/*
done
echo "All deletions are complete! Proceeding with installation."
sleep 2m
Проблема в том, что, хотя команда docker rmi
внутри цикла for выполняется для всех остальных 4 узлов, я получаю ошибку Error: No such image: <image-id>
для каждого изизображения.Но если я выполню ту же команду на этом узле, это будет успешно.Я не уверен, в чем здесь проблема.Любая помощь приветствуется.