Удалить контроллеры развертывания / репликации openshift cli

#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