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

Релиз v1.5.3

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

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

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

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

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

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

Обновление ArangoDB

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

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

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

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

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

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

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

docker pull arangodb:3.8.1
docker save -o arangodb.img arangodb:3.8.1

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

docker load -i arangodb.img
docker tag arangodb:3.8.1 ${registryUrl}/arangodb:3.8.1
docker push ${registryUrl}/arangodb:3.8.1
docker rmi arangodb:3.8.1
  1. Обновить arangodb до версии 3.8.1 и разрешить обновление:
kubectl scale deploy -n infra arangodb --replicas=0
kubectl set image -n infra deployment/arangodb arangodb=${registryUrl}/arangodb:3.8.1
kubectl patch deployment -n infra arangodb --type='json' \
-p='[{"op": "replace", "path": "/spec/template/spec/containers/0/args", "value": ["--database.auto-upgrade"]}]'
kubectl scale deploy -n infra arangodb --replicas=1
  1. Перезапустить контейнер без флага auto-upgrade:
kubectl scale deploy -n infra arangodb --replicas=0
kubectl patch deployment -n infra arangodb --type='json' \
-p='[{"op": "replace", "path": "/spec/template/spec/containers/0/args", "value": []}]'
kubectl scale deploy -n infra arangodb --replicas=1
  1. Выполнить проверку:
  • авторизоваться в web;
  • проверить наличие пользователей, коллекций и графов;
  • авторизоваться в интерфейсе monq и убедиться в отсутствии ошибок;
  1. Зафиксировать версию инфраструктурного релиза:
cat <<EOF | kubectl apply -f -
apiVersion: v1
data:
version: 1.5.3
kind: ConfigMap
metadata:
name: infra
namespace: infra
EOF

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

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

  1. Создать РК Arangodb:
CONTAINER_NAME="arangodb"
mkdir -p /backup/${CONTAINER_NAME}
rsync -av /storage/${CONTAINER_NAME}/* /backup/${CONTAINER_NAME}/
  1. Запустить промежуточный контейнер для выполнения обновления структуры БД:
CONTAINER_NAME="arangodb"
VERSION="3.8.1"

docker stop ${CONTAINER_NAME}
docker rm ${CONTAINER_NAME}

docker run --rm -it --name ${CONTAINER_NAME} \
-p 8529:8529 \
-e ARANGO_STORAGE_ENGINE=rocksdb \
-v /storage/${CONTAINER_NAME}/backup:/backup \
-v /storage/${CONTAINER_NAME}/var/lib/arangodb3:/var/lib/arangodb3 \
-v /storage/${_CONTAINER_NAME}/var/lib/arangodb3-apps:/var/lib/arangodb3-apps \
arangodb:3.8.1 --database.auto-upgrade
  1. Обновить arangodb до версии 3.8.1:
CONTAINER_NAME="arangodb"
VERSION="3.8.1"

docker run -d --name ${CONTAINER_NAME} \
-p 8529:8529 \
--restart=unless-stopped \
-e ARANGO_STORAGE_ENGINE=rocksdb \
-v /storage/${CONTAINER_NAME}/backup:/backup \
-v /storage/${CONTAINER_NAME}/var/lib/arangodb3:/var/lib/arangodb3 \
-v /storage/${_CONTAINER_NAME}/var/lib/arangodb3-apps:/var/lib/arangodb3-apps \
arangodb:3.8.1 --server.statistics false
  1. Проверить работоспособность:
  • авторизоваться в web;
  • проверить наличие пользователей, коллекций и графов;