В одной из наших предыдущих статей мы уже представляли развертывание Oracle BRM 12 Cloud Native Deployment версия для Oracle Cloud. Oracle Cloud - это очень хорошо разработанная облачная среда, которая также доступна по цене и постоянно развивается. Однако, если Вы хотите развернуть Oracle BRM 12 в Oracle Cloud, Вам придется использовать некоторые несвободные функции и компоненты Oracle Cloud, которые Вы можете бесплатно тестировать только в течение 30 дней. После этого Вам придется перейти на платный аккаунт, если Вы хотите продолжать пользоваться им.

У Вас также есть другой вариант, если Вы хотите протестировать Oracle BRM 12 Cloud Native Deployment. Вы можете пойти на локальное развертывание и развернуть BRM на своих локальных серверах. Основная цель этой статьи - показать Вам, как Вы можете этого добиться. В этой статье Вы узнаете, как создать и запустить локальный кластер Kubernetes с помощью Minikube, а также как развернуть Oracle BRM 12 в Ваш только что созданный и настроенный кластер. Обратите внимание, что Minikube подходит только для целей тестирования и разработки, и Вы не должны использовать его в производственной среде. Давайте рассмотрим конкретные компоненты нашей системы, которые мы будем использовать, и как их установить.
Оглавление
О Oracle Linux 8
Мы будем основывать наше решение на операционной системе Linux, а именно Oracle Linux версии 8. Этот дистрибутив Linux предоставлен компанией Oracle и доступен бесплатно. Он основан на Red Hat Enterprise Linux. Для этой операционной системы Вы также можете получить коммерческую техническую поддержку, если она Вам понадобится. Стоит также отметить, что Oracle Cloud работает в основном на серверах Oracle Linux.
Для целей данной статьи мы будем использовать Oracle Linux версии 8. Конечно, Вы можете использовать и другие дистрибутивы Linux, но инструкции по подготовке среды могут отличаться в зависимости от этого. Если Вы хотите использовать Oracle Linux, Вы можете свободно скачать его с Oracle Software Delivery Cloud или со многих зеркальных сайтов, доступных по всему миру.
Вы можете установить Oracle Linux непосредственно на свои серверы или внутри виртуальной машины. В последнем случае Ваше программное обеспечение для виртуализации должно поддерживать вложенную виртуализацию, если Вы хотите точно следовать инструкциям в этой статье.
После установки Oracle Linux обязательно обновите пакеты программного обеспечения до последних версий, прежде чем продолжить работу:
sudo yum update
Затем установите некоторые другие необходимые пакеты:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
Теперь Вы готовы начать подготовку Вашего кластера Kubernetes. Сначала мы установим Docker.
Установка Docker
Docker - это набор продуктов, который позволяет Вам развертывать и запускать контейнерное программное обеспечение. Контейнеры - это программные пакеты, которые связывают собственное программное обеспечение, конфигурацию и все необходимые библиотеки в один пакет, называемый контейнером.
Здесь приведены инструкции по установке Docker на Oracle Linux 8:
sudo curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
sudo yum makecache
sudo yum remove podman-manpages
sudo dnf -y install docker-ce -nobest
systemctl start docker
systemctl enable docker
systemctl status docker
Чтобы включить Docker для текущего пользователя:
sudo usermod -aG docker
newgrp docker
Установка kubectl
Сейчас мы продолжим с установки kubectl, который является инструментом командной строки, позволяющим управлять кластером Kubernetes.
Скачайте последнюю стабильную версию kubectl и переместите ее в системную папку:
curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl
Вы можете проверить, работает ли kubectl, выполнив следующую команду:
версия kubectl
Вы получите результат, подобный этому:
Версия клиента: version.Info{Major: "1″, Minor: "17″, GitVersion: "v1.17.3″, GitCommit: "06ad960bfd03b39c8310aaf92d1e7c12ce618213″, GitTreeState: "clean", BuildDate: "2020-02-11T18:14:22Z", GoVersion: "go1.13.6″, Compiler: "gc", Platform: "linux/amd64″}
Соединение с сервером localhost:8080 было отклонено - Вы указали правильный хост или порт?
Пока что Вы можете игнорировать ошибку в последней строке ввода команды.
Установка Oracle VirtualBox
VirtualBox - это продукт виртуализации, предоставляемый компанией Oracle, и мы будем использовать его в качестве гипервизора для нашего кластера minikube Kubernetes. Чтобы установить VirtualBox в нашу систему, мы должны сначала добавить дополнительный репозиторий:
cd /etc/yum.repos.d/
sudo wget http://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo
Установите некоторые другие необходимые пакеты:
sudo yum install binutils gcc make patch libgomp glibc-headers glibc-devel kernel-headers kernel-devel elfutils-libelf-devel
Теперь Вы готовы к установке VirtualBox:
sudo yum install VirtualBox-6.1
На этом этапе мы готовы к установке Minikube.
Установка Minikube
Minikube - это основанный на Docker кластер Kubernetes, который подходит для целей тестирования и разработки. Мы развернем Oracle BRM 12 Cloud Native Deployment, который является контейнерной версией Oracle BRM, на кластере Minikube Kubernetes.
Теперь установите minikube:
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && chmod +x minikube
sudo mkdir -p /usr/local/bin/
sudo install minikube /usr/local/bin/
Теперь мы можем запустить minikube, который подготовит свое окружение и создаст новую виртуальную машину. Значения minikube по умолчанию для размера виртуального диска и объема памяти для виртуальной машины слишком малы для Oracle BRM, поэтому мы явно повысим их (очевидно, что для этого у Вас должно быть достаточно физической памяти, иначе могут возникнуть различные проблемы):
minikube start -disk-size='800g' -memory='8192m'
Вы можете проверить, была ли minikube успешно настроена:
kubectl -n kube-system get pod
Вы получите результат, подобный этому:
$ kubectl -n kube-system get pod
ИМЯ ГОТОВНОСТЬ СТАТУС ПЕРЕЗАПУСК ВОЗРАСТ
coredns-6955765f44-d8wj4 1/1 Выполняется 0 7м54с
coredns-6955765f44-fd2lt 1/1 Выполняется 0 7м54с
etcd-minikube 1/1 Выполняется 0 7m46s
kube-apiserver-minikube 1/1 Выполняется 0 7m46s
kube-controller-manager-minikube 1/1 Выполняется 0 7m46s
kube-proxy-j575p 1/1 Выполняется 0 7м54с
kube-scheduler-minikube 1/1 Выполняется 0 7m46s
storage-provisioner 1/1 Выполняется 0 7m52s
Загрузите переменные окружения, необходимые для работы с minikube и docker, в Ваше окружение:
eval $(minikube docker-env)
Нам нужен дополнительный компонент, прежде чем мы развернем BRM на нашем вновь созданном кластере - Helm.
Установка Helm
Helm - это менеджер пакетов для Kubernetes. Диаграммы Helm используются для управления, установки и обновления Вашего кластера Kubernetes. Oracle комплектует диаграммы Helm, необходимые для развертывания и настройки Oracle BRM 12, в своей версии BRM Cloud Native Deployment.
Теперь давайте установим Helm:
curl -LO https://git.io/get_helm.sh
chmod +x ./helm.sh
./get_helm.sh
Выполните начальную настройку штурвала:
helm init -history-max 200
Теперь Ваша среда готова к началу развертывания Oracle BRM 12. Очевидно, что Вам необходимо выполнить некоторые подготовительные шаги на Вашем экземпляре Oracle Database, чтобы Oracle BRM мог его использовать. Подробное объяснение этих шагов выходит за рамки данной статьи, но Вы можете найти всю необходимую информацию об этом в документации Oracle BRM или связаться с нами, и мы будем рады помочь Вам.
Развертывание Oracle BRM 12 в кластере Kubernetes
Сначала Вам необходимо загрузить все предоставленные образы docker BRM в Вашу среду docker. Oracle предоставляет Вам две схемы Helm - первая (oc-cn-init-db-helm-chart) инициализирует схему Вашей БД, чтобы подготовить ее для BRM, а вторая (oc-cn-helm-chart) развертывает различные компоненты BRM, которые Вы выбираете.
Вам нужно начать с развертывания oc-cn-init-db-helm-chart. Сначала Вы должны загрузить Docker-образ init_db в репозиторий Docker:
docker load -input oc-cn-brm-init-db-12.0.0.2.0.tar
После успешной загрузки образа, извлеките oc-cn-init-db-helm-chart и скопируйте values.yaml в override-values.yaml. Затем отредактируйте override-values.yaml в соответствии с документацией Oracle BRM 12 Cloud Native Deployment. Оставьте значение "imageRepository" пустым. В разделе "wallet" установите учетные данные для кошелька Oracle. В разделе "db" Вы должны задать параметры подключения к базе данных. После того, как Вы настроите все необходимые значения в файле override-values.yaml, Вы можете развернуть образ init_db на Вашем кластере Kubernetes с помощью диаграммы Helm:
helm install oc-cn-init-db-helm-chart -name initdb -values oc-cn-init-db-helm- chart/override-values.yaml
Теперь шлем развернуть образ инициализации BRM DB на кластере Kubernetes и начать подготовку Вашей базы данных для BRM.
Вы можете проверить состояние Вашего развертывания с помощью:
helm status initdb
Через некоторое время initdb pod закончит подготовку Вашей базы данных, и Вы можете удалить текущее развертывание образа initdb:
helm delete initdb
Теперь распакуйте oc-cn-helm-chart.tgz и скопируйте values.yaml в override-values.yaml. Теперь отредактируйте различные поля в файле override-values.yaml в соответствии с инструкциями, приведенными в Oracle BRM 12 Cloud Native Deployment. Вы можете скопировать некоторые поля (например, разделы "wallet" и "db") из диаграммы init-db, которую Вы использовали ранее.
Используйте команду "docker load -input" для загрузки всех образов докеров, которые Вы хотите развернуть в хранилище Docker.
Затем Вы можете развернуть диаграмму Helm:
helm install oc-cn-helm-chart -name occn-ps2 -namespace ocgbu -values oc-cn-helm-chart/override-values.yaml
Теперь BRM развернется в Вашем локальном кластере Kubernetes. Дополнительные советы по мониторингу кластера и диагностике проблем Вы можете найти в нашей предыдущей статье.
Вы также можете контролировать свой кластер Kubernetes с помощью Kubernetes Dashboard:
приборная панель minikube
Приборная панель будет открыта в новом окне браузера.

Заключение
Эта статья проведет Вас через основные шаги развертывания Oracle BRM Cloud Native Deployment на локальном кластере minikube Kubernetes. Вы можете использовать это развертывание для целей тестирования и разработки. Если Вам нужна дополнительная помощь в развертывании Oracle BRM в minikube, нужны предложения, или если Вы ищете надежного поставщика решений для всех Ваших потребностей в биллинге, не стесняйтесь обращаться к нам.