Перейти к основному содержимому

Релиз СПО v1.5.1

Требуемые версии:

ПродуктВерсия
infra1.5.0
monq6.4.0+

В обновлении:

Будет произведено обновление redis

ПродуктНовая версия
infra1.5.1

Уровень простоя - простой на время обновления redis.

Обновление redis

Выполнить предрелизную подготовку

Проверить соответствие текущей версии инфраструктуры:

kubectl get cm -n infra infra -o=jsonpath={.data.version}

K8S (deployment, для обновления инсталляций из образа VM)

  1. Создать РК БД redis:
mkdir -p /backup/redis
cp -r /storage/redis* /backup/redis/
  1. Получить адрес локального docker registry:
registryUrl=$(kubectl get deploy -n infra redis -o jsonpath='{.spec.template.spec.containers[0].image}' | sed -nE 's/(.*)\/(.*)/\1/p')
  1. Скачать образы и добавить их в локальный docker registry (необходимо наличие доступа в сеть Интернет):
docker pull redis:6.2.6
docker tag redis:6.2.6 ${registryUrl}/redis:6.2.6
docker push ${registryUrl}/redis:6.2.6
docker rmi redis:6.2.6

В случае отсутствия доступа в сеть Интернет необходимо выполнить следующие действия:

На пк с доступом в сеть Интернет скачать images и сохранить в файл:

docker pull redis:6.2.6
docker save -o redis.img redis:6.2.6

Передать файл redis.img на сервер monq, выполнить импорт и добавить образы в локальный registry:

docker load -i redis.img
docker tag redis:6.2.6 ${registryUrl}/redis:6.2.6
docker push ${registryUrl}/redis:6.2.6
docker rmi redis:6.2.6
  1. Обновить redis:
kubectl scale deploy -n infra redis --replicas=0
kubectl set image -n infra deployment/redis redis=${registryUrl}/redis:6.2.6
kubectl scale deploy -n infra redis --replicas=1
  1. Выполнить проверку:
  • проверить состояние поды redis kubectl get po -n infra -l app=redis
  • авторизоваться в интерфейсе monq;
  • убедиться в отсутствии ошибок;
  1. Зафиксировать версию инфраструктурного релиза:
cat <<EOF | kubectl apply -f -
apiVersion: v1
data:
version: 1.5.1
kind: ConfigMap
metadata:
name: infra
namespace: infra
EOF

Дополнительно

Обновление Docker инсталяций

  1. Создать РК БД redis:
CONTAINER_NAME="redis"
mkdir -p /backup/${CONTAINER_NAME}
cp -r /storage/${CONTAINER_NAME}/* /backup/${CONTAINER_NAME}/
  1. Обновить redis:
CONTAINER_NAME="redis"
VERSION="6.2.6"
docker stop ${CONTAINER_NAME}
docker rm ${CONTAINER_NAME}

docker run -d \
--name ${CONTAINER_NAME} \
-h ${CONTAINER_NAME} \
-p 6379:6379 \
--restart=unless-stopped \
-v /storage/${CONTAINER_NAME}/data:/data \
-v /storage/${CONTAINER_NAME}/etc/redis/:/etc/redis/ \
redis:${VERSION} redis-server /etc/redis/redis.conf