Установка продукта «Форсайт. Мобильная платформа» на кластере

Для установки продукта «Форсайт. Мобильная платформа» на кластере:

  1. Создайте пространства имён для оператора StackGres:

kubectl create namespace stackgres

Также создайте отдельное пространство имён для компонентов мобильной платформы и раздайте права доступа для загрузки образов из пространств имён оператора:

kubectl create namespace fmp
kubectl create rolebinding serviceaccounts-view --namespace=stackgres --clusterrole=view --group=system:serviceaccounts:fmp

  1. Объявите переменные:

export REGISTRY_HOST=<IP-адрес рабочего узла>
export CLUSTER_HOST=<DNS-имя сервера>

  1. Выполните авторизацию в Docker:

docker login $REGISTRY_HOST

  1. Загрузите архивы образов мобильной платформы в локальное хранилище Docker Registry:

docker load -i ./cluster_images_v23.05.01.tgz

  1. Создайте переменную с именами образов:

FMP_IMAGES=$(tar -xzf ./cluster_images_v23.05.01.tgz manifest.json --to-command='cat' \
| grep -oP '(?<=("RepoTags":\["))(.*?)(?=("\]))' \
| sed 's/"//g; s/'"'"'//g; s/,/\n/g;')

  1. Добавьте образы в реестр Docker:

for orig_image in ${FMP_IMAGES[*]}; do
tag_image=$(echo ${orig_image} | awk -v REGISTRY=${REGISTRY_HOST} \
'{
n=split($0,arr,"/");
print REGISTRY "/" arr[n-1] "/" arr[n]
}')
echo -e "\nТэгируем ${orig_image} -> ${tag_image}"
docker tag ${orig_image} ${tag_image}
echo -e "\nПушим ${tag_image}"
docker push $tag_image
done

  1. Установите пакетный менеджер Helm не ниже версии 3.5. Для проверки версии установленного Helm выполните команду:

 helm version

После чего будет возвращена информация о версии Helm:

version.BuildInfo{Version:"v3.10.1", GitCommit:"9f88ccb6aee40b9a0535fcc7efea6055e1ef72c9", GitTreeState:"clean", GoVersion:"go1.18.7"}

  1. Установите оператор StackGres версии 1.0.0 для работы мобильной платформы в кластере:

helm install -n stackgres stackgres-operator ./stackgres-operator/stackgres-operator-1.0.0.tgz -f ./stackgres-operator/values.yaml

  1. Убедитесь, что срок действия ключа Deckhouse не истёк.

  2. Установите продукт «Форсайт. Мобильная платформа»:

helm install fmp ./fmp/chart -n fmp -f ./fmp/values.production.yaml --set django.deployment.image.registry=<IP-адрес рабочего узла>/fmp --set global.imageRegistry=<IP-адрес рабочего узла>/fmp --set nginx.ingress.hostname=$CLUSTER_HOST --set fluentd.enabled=true --timeout 30m0s

После выполнения действий на кластере будет установлен продукт «Форсайт. Мобильная платформа».

При необходимости можно удалить мобильную платформу с кластера.

Удаление продукта «Форсайт. Мобильная платформа» с кластера

Для удаления продукта «Форсайт. Мобильная платформа» с кластера:

  1. Остановите работу мобильной платформы:

kubectl delete job -n fmp --all
helm uninstall fmp -n fmp

  1. Удалите данные Persistent Volume Claim:

kubectl delete pvc -n fmp --all

  1. Удалите crd мобильной платформы:

kubectl get -n fmp crd \
   | grep -e "\bsg" \
   | cut -d '.' -f1 \
   | xargs -L1 kubectl delete --all -n fmp

  1. Отвяжите и очистите Volumes:

kubectl get pv | tail -n+2 | awk '$5 == "Released" {print $1}' | xargs -I{} kubectl patch pv {} --type='merge' -p '{"spec":{"claimRef": null}}'

После выполнения действий будет удален продукта «Форсайт. Мобильная платформа» с кластера.

См. также:

Подготовка и развёртывание отказоустойчивого кластера на основе Deckhouse