Для установки продукта «Форсайт. Мобильная платформа» на кластере:
Создайте пространства имён для оператора StackGres:
kubectl create namespace stackgres
Также создайте отдельное пространство имён для компонентов мобильной платформы и раздайте права доступа для загрузки образов из пространств имён оператора:
kubectl create namespace
fmp
kubectl create rolebinding serviceaccounts-view --namespace=stackgres --clusterrole=view
--group=system:serviceaccounts:fmp
Объявите переменные:
REGISTRY_HOST. IP-адрес рабочего узла, на котором установлено локальное хранилище Docker Registry;
CLUSTER_HOST. DNS-имя сервера, на котором расположен кластер для доступа к серверу мобильной платформы.
export REGISTRY_HOST=<IP-адрес рабочего узла>
export CLUSTER_HOST=<DNS-имя сервера>
Выполните авторизацию в Docker:
docker login $REGISTRY_HOST
Загрузите архивы образов мобильной платформы в локальное хранилище Docker Registry:
docker load -i ./cluster_images_v23.05.01.tgz
Создайте переменную с именами образов:
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;')
Добавьте образы в реестр 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
Установите пакетный менеджер Helm не ниже версии 3.5. Для проверки версии установленного Helm выполните команду:
helm version
После чего будет возвращена информация о версии Helm:
version.BuildInfo{Version:"v3.10.1", GitCommit:"9f88ccb6aee40b9a0535fcc7efea6055e1ef72c9", GitTreeState:"clean", GoVersion:"go1.18.7"}
Установите оператор StackGres версии 1.0.0 для работы мобильной платформы в кластере:
helm install -n stackgres stackgres-operator ./stackgres-operator/stackgres-operator-1.0.0.tgz -f ./stackgres-operator/values.yaml
Убедитесь, что срок действия ключа Deckhouse не истёк.
Установите продукт «Форсайт. Мобильная платформа»:
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
После выполнения действий на кластере будет установлен продукт «Форсайт. Мобильная платформа».
При необходимости можно удалить мобильную платформу с кластера.
Для удаления продукта «Форсайт. Мобильная платформа» с кластера:
Остановите работу мобильной платформы:
kubectl delete job -n fmp
--all
helm uninstall fmp -n fmp
Удалите данные Persistent Volume Claim:
kubectl delete pvc -n fmp --all
Удалите crd мобильной платформы:
kubectl get -n fmp crd \
| grep -e "\bsg" \
| cut -d '.' -f1 \
| xargs -L1 kubectl delete --all -n fmp
Отвяжите и очистите Volumes:
kubectl get pv | tail -n+2 | awk '$5 == "Released" {print $1}' | xargs -I{} kubectl patch pv {} --type='merge' -p '{"spec":{"claimRef": null}}'
После выполнения действий будет удален продукта «Форсайт. Мобильная платформа» с кластера.
См. также:
Подготовка и развёртывание отказоустойчивого кластера на основе Deckhouse