Релиз v1.5.3
Требуемые версии:
Продукт | Версия |
---|---|
infra | 1.5.2 |
monq | 6.4.0+ |
В обновлении:
Будет произведено обновление ArangoDB
Продукт | Новая версия |
---|---|
infra | 1.5.3 |
Уровень простоя - простой на время обновления ArangoDB.
Обновление ArangoDB
Выполнить предрелизную подготовку
Проверить соответствие текущей версии инфраструктуры:
kubectl get cm -n infra infra -o=jsonpath={.data.version}
K8S (deployment, для обновления инсталляций из образа VM)
- Создать РК Arangodb:
mkdir -p /backup/arangodb
rsync -av /storage/arangodb/* /backup/arangodb/
- Получить адрес локального docker registry:
registryUrl=$(kubectl get deploy -n infra arangodb -o jsonpath='{.spec.template.spec.containers[0].image}' | sed -nE 's/(.*)\/(.*)/\1/p')
- Скачать образы и добавить их в локальный 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
- Обновить 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
- Перезапустить контейнер без флага 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
- Выполнить проверку:
- авторизоваться в web;
- проверить наличие пользователей, коллекций и графов;
- авторизоваться в интерфейсе monq и убедиться в отсутствии ошибок;
- Зафиксировать версию инфраструктурного релиза:
cat <<EOF | kubectl apply -f -
apiVersion: v1
data:
version: 1.5.3
kind: ConfigMap
metadata:
name: infra
namespace: infra
EOF
##Дополнительно
Обновление Docker инсталляций
- Создать РК Arangodb:
CONTAINER_NAME="arangodb"
mkdir -p /backup/${CONTAINER_NAME}
rsync -av /storage/${CONTAINER_NAME}/* /backup/${CONTAINER_NAME}/
- Запустить промежуточный контейнер для выполнения обновления структуры БД:
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
- Обновить 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
- Проверить работоспособность:
- авторизоваться в web;
- проверить наличие пользователей, коллекций и графов;