#openshift #kubernetes
#openshift #kubernetes
Вопрос:
Есть ли способ удалить предыдущие развертывания с помощью cli?
При успешном запуске oc import-image $APPLICATION
появляется новое развертывание с RC, и после нескольких запусков я достигаю максимального RC, и мне придется вручную удалять предыдущие развертывания.
Есть ли сценарий, похожий на oc delete rc $APPLICATION-$(($DEPLOYMENT_NUMBER - 1))
?
Ответ №1:
Со временем у вас может оказаться много контроллеров репликации, и поэтому вам нужно их очистить. Вы можете использовать oc delete rc <rc-num>
или даже лучше oc adm prune
сделать это. Проверка oc adm options
и oc adm prune --help
поиск опций.
$ oc adm prune deployments --keep-complete=5 --namespace=myproject --confirm
Комментарии:
1. Лучший из приведенных выше вариантов, параметр —keep-complete позволяет вам решить, сколько развертываний сохранить без сокращения, команда: oc adm prune deployments —keep-complete=5 —namespace={{ PROJECT_NAME }} —подтвердить
Ответ №2:
В итоге я использовал следующий код для создания (ускоренного) решения.
# DEPLOYMENT_COUNT will be the number of deployments
DEPLOYMENT_COUNT=`oc get rc | wc -l`
DEPLOYMENT_COUNT=$((DEPLOYMENT_COUNT - 1))
for ((i=1; i<$DEPLOYMENT_COUNT 1; i ))
do
#CURR_POD_LINE=`oc get rc | tail -$i | head -n1`
DEPLOYMENT_ID=`oc get rc | tail -$i | head -n1 | awk '{print $1}'`
DESIRED_PODS_COUNT=`oc get rc | tail -$i | head -n1 | awk '{print $5}'`
# IF number of desired pods is 0, then delete the deployment
if [ $DESIRED_PODS_COUNT -eq 0 ]
then
#DELETE
oc delete rc $DEPLOYMENT_ID
fi
echo $DEPLOYMENT_ID
echo $DESIRED_PODS_COUNT
done