W jednym z naszych poprzednich artykułów przedstawiliśmy już wdrożenie Oracle BRM 12 Wdrożenie natywne w chmurze do Oracle Cloud. Oracle Cloud to bardzo dobrze zaprojektowane środowisko chmurowe, które jest również przystępne cenowo i stale się rozwija. Jeśli jednak chcą Państwo wdrożyć Oracle BRM 12 do Oracle Cloud, muszą Państwo skorzystać z niektórych bezpłatnych funkcji i komponentów Oracle Cloud, które można przetestować za darmo tylko przez 30 dni. Po upływie tego czasu należy uaktualnić konto do płatnego, jeśli chcą Państwo nadal z niego korzystać.
Mają Państwo również inną opcję, jeśli chcą przetestować Oracle BRM 12 Cloud Native Deployment. Mogą Państwo zdecydować się na wdrożenie lokalne i wdrożyć BRM na swoich lokalnych serwerach. Głównym celem tego artykułu jest pokazanie Państwu, jak można to osiągnąć. W tym artykule dowiedzą się Państwo, jak utworzyć i uruchomić lokalny klaster Kubernetes przy użyciu Minikube oraz jak wdrożyć BRM w chmurze. Oracle BRM 12 do nowo utworzonego i skonfigurowanego klastra. Proszę pamiętać, że Minikube nadaje się tylko do celów testowych i rozwojowych i nie należy go używać w środowisku produkcyjnym. Przyjrzyjmy się konkretnym komponentom naszego systemu, z których będziemy korzystać i jak je zainstalować.
Spis treści
Informacje o Oracle Linux 8
Oprzemy nasze rozwiązanie na systemie operacyjnym Linux, a mianowicie Oracle Linux w wersji 8. Ta dystrybucja Linuksa jest dostarczana przez Oracle i dostępna za darmo. Jest ona oparta na Red Hat Enterprise Linux. Dla tego systemu operacyjnego można również uzyskać komercyjne wsparcie techniczne, jeśli jest ono potrzebne. Warto również wspomnieć, że Oracle Cloud jest zasilany głównie przez serwery Oracle Linux.
Na potrzeby tego artykułu użyjemy Oracle Linux w wersji 8. Oczywiście mogą Państwo korzystać również z innych dystrybucji Linuksa, ale instrukcje dotyczące przygotowania środowiska mogą się różnić w zależności od tego. Jeśli chcą Państwo korzystać z Oracle Linux, można go pobrać bezpłatnie z Oracle Software Delivery Cloud lub z wielu witryn lustrzanych dostępnych na całym świecie.
Mogą Państwo zainstalować Oracle Linux bezpośrednio na swoich serwerach lub wewnątrz maszyny wirtualnej. W tym drugim przypadku oprogramowanie do wirtualizacji musi obsługiwać wirtualizację zagnieżdżoną, jeśli chcą Państwo ściśle przestrzegać instrukcji zawartych w tym artykule.
Po zainstalowaniu Oracle Linux proszę upewnić się, że pakiety oprogramowania zostały zaktualizowane do najnowszych wersji przed kontynuowaniem:
sudo yum update
Następnie proszę zainstalować inne wymagane pakiety:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
Teraz mogą Państwo rozpocząć przygotowywanie klastra Kubernetes. Najpierw zainstalujemy Dockera.
Instalacja Dockera
Docker to zestaw produktów umożliwiających wdrażanie i uruchamianie oprogramowania w kontenerach. Kontenery to pakiety oprogramowania, które łączą własne oprogramowanie, konfigurację i wszystkie potrzebne biblioteki w jeden pakiet, zwany kontenerem.
Poniżej znajdują się instrukcje dotyczące instalacji Docker na 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
Aby włączyć Docker dla bieżącego użytkownika:
sudo usermod -aG docker
newgrp docker
Instalacja kubectl
Kontynuujemy teraz instalację kubectl, który jest narzędziem wiersza poleceń, które pozwala kontrolować klaster Kubernetes.
Proszę pobrać najnowszą stabilną wersję kubectl i przenieść ją do folderu systemowego:
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
Mogą Państwo sprawdzić, czy kubectl działa, wydając następujące polecenie:
wersja kubectl
Otrzymają Państwo wynik podobny do tego:
Wersja klienta: 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″}.
Połączenie z serwerem localhost:8080 zostało odrzucone - czy podali Państwo właściwy host lub port?
Na razie mogą Państwo zignorować błąd w ostatnim wierszu polecenia.
Instalacja Oracle VirtualBox
VirtualBox to produkt do wirtualizacji dostarczany przez Oracle, którego użyjemy jako hiperwizora dla naszego klastra Kubernetes Minikube. Aby zainstalować VirtualBox w naszym systemie, musimy najpierw dodać dodatkowe repozytorium:
cd /etc/yum.repos.d/
sudo wget http://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo
Proszę zainstalować inne potrzebne pakiety:
sudo yum install binutils gcc make patch libgomp glibc-headers glibc-devel kernel-headers kernel-devel elfutils-libelf-devel
Teraz mogą Państwo zainstalować VirtualBox:
sudo yum install VirtualBox-6.1
W tym momencie jesteśmy gotowi do zainstalowania Minikube.
Instalacja Minikube
Minikube to oparty na Dockerze klaster Kubernetes, który nadaje się do celów testowych i deweloperskich. Wdrożymy Oracle BRM 12 Cloud Native Deployment, który jest skonteneryzowaną wersją Oracle BRM do klastra Kubernetes Minikube.
Proszę zainstalować 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/
Możemy teraz uruchomić minikube, który przygotuje swoje środowisko i utworzy nową maszynę wirtualną. Domyślne wartości minikube dla rozmiaru wirtualnego dysku i ilości pamięci dla wirtualnej maszyny są zbyt niskie dla Oracle BRM, dlatego wyraźnie je podniesiemy (oczywiście muszą Państwo mieć wystarczającą ilość dostępnej pamięci fizycznej, w przeciwnym razie mogą wystąpić różne problemy):
minikube start -disk-size='800g' -memory='8192m'
Mogą Państwo sprawdzić, czy minikube został pomyślnie skonfigurowany:
kubectl -n kube-system get pod
Otrzymają Państwo następujące dane wyjściowe:
$ kubectl -n kube-system get pod
NAZWA STATUS GOTOWY RESTARTY WIEK
coredns-6955765f44-d8wj4 1/1 Running 0 7m54s
coredns-6955765f44-fd2lt 1/1 Running 0 7m54s
etcd-minikube 1/1 Running 0 7m46s
kube-apiserver-minikube 1/1 Running 0 7m46s
kube-controller-manager-minikube 1/1 Running 0 7m46s
kube-proxy-j575p 1/1 Running 0 7m54s
kube-scheduler-minikube 1/1 Running 0 7m46s
storage-provisioner 1/1 Running 0 7m52s
Proszę załadować zmienne środowiskowe potrzebne do pracy z minikube i docker w Państwa środowisku:
eval $(minikube docker-env)
Potrzebujemy dodatkowego komponentu przed wdrożeniem BRM do naszego nowo utworzonego klastra - Helm.
Instalacja Sternika
Helm to menedżer pakietów dla Kubernetes. Wykresy Helm służą do zarządzania, instalowania i aktualizowania klastra Kubernetes. Oracle zawiera wykresy Helm potrzebne do wdrożenia i konfiguracji wdrożenia Oracle BRM 12 w wersji Cloud Native Deployment BRM.
Teraz proszę zainstalować Helm:
curl -LO https://git.io/get_helm.sh
chmod +x ./helm.sh
./get_helm.sh
Proszę przeprowadzić wstępną konfigurację steru:
helm init -history-max 200
Teraz Państwa środowisko jest gotowe do rozpoczęcia wdrażania Oracle BRM 12. Oczywiście muszą Państwo wykonać pewne kroki przygotowawcze na instancji bazy danych Oracle, aby Oracle BRM mógł z niej korzystać. Szczegółowe wyjaśnienie tych kroków wykracza poza zakres tego artykułu, ale wszystkie niezbędne informacje na ten temat można znaleźć w dokumentacji Oracle BRM lub skontaktować się z nami, a chętnie Państwu pomożemy.
Wdrożenie Oracle BRM 12 do klastra Kubernetes
Najpierw należy załadować wszystkie dostarczone obrazy docker BRM do środowiska docker. Oracle zapewnia dwa wykresy Helm - pierwszy (oc-cn-init-db-helm-chart) inicjalizuje schemat DB, aby przygotować go do BRM, a drugi (oc-cn-helm-chart) wdraża różne wybrane przez Państwa komponenty BRM.
Proszę zacząć od wdrożenia oc-cn-init-db-helm-chart. Najpierw należy załadować obraz init_db Docker do repozytorium Docker:
docker load -input oc-cn-brm-init-db-12.0.0.2.0.tar
Po pomyślnym załadowaniu obrazu, proszę wyodrębnić oc-cn-init-db-helm-chart i skopiować values.yaml do override-values.yaml. Następnie proszę edytować plik override-values.yaml zgodnie z dokumentacją Oracle BRM 12 Cloud Native Deployment. Proszę pozostawić wartość "imageRepository" pustą. W sekcji "wallet" proszę ustawić poświadczenia dla portfela Oracle. W sekcji "db" należy skonfigurować ustawienia połączenia z bazą danych. Po skonfigurowaniu wszystkich niezbędnych wartości w pliku override-values.yaml, można wdrożyć obraz init_db do klastra Kubernetes za pomocą wykresu Helm:
helm install oc-cn-init-db-helm-chart -name initdb -values oc-cn-init-db-helm- chart/override-values.yaml
Teraz sternik wdroży obraz inicjalizacyjny BRM DB do klastra Kubernetes i rozpocznie przygotowywanie bazy danych dla BRM.
Stan wdrożenia można sprawdzić za pomocą:
helm status initdb
Po chwili initdb pod zakończy przygotowywanie bazy danych i będzie można usunąć bieżące wdrożenie obrazu initdb:
helm delete initdb
Proszę rozpakować oc-cn-helm-chart.tgz i skopiować values.yaml do override-values.yaml. Teraz proszę edytować różne pola w pliku override-values.yaml zgodnie z instrukcjami zawartymi w Oracle BRM 12 Cloud Native Deployment. Mogą Państwo skopiować niektóre pola (takie jak sekcje "wallet" i "db") z wykresu init-db, którego używali Państwo wcześniej.
Proszę użyć polecenia "docker load -input", aby załadować wszystkie obrazy docker, które chcą Państwo wdrożyć do repozytorium Docker.
Następnie można wdrożyć wykres Helm:
helm install oc-cn-helm-chart -name occn-ps2 -namespace ocgbu -values oc-cn-helm-chart/override-values.yaml
Teraz BRM zostanie wdrożony w Państwa lokalnym klastrze Kubernetes. Więcej wskazówek na temat monitorowania klastra i diagnozowania problemów znajdą Państwo w naszym poprzednim artykule.
Mogą Państwo również monitorować swój klaster Kubernetes za pomocą Kubernetes Dashboard:
minikube dashboard
Dashboard zostanie otwarty w nowym oknie przeglądarki.
Wnioski
Niniejszy artykuł poprowadzi Państwa przez główne etapy wdrażania natywnego środowiska Oracle BRM Cloud Native Deployment w lokalnym klastrze minikube Kubernetes. Wdrożenia tego można używać do celów testowych i deweloperskich. Jeśli potrzebują Państwo dodatkowej pomocy przy wdrażaniu Oracle BRM do minikube, potrzebują sugestii lub szukają Państwo niezawodnego dostawcy rozwiązań dla wszystkich swoich potrzeb związanych z rozliczeniami, prosimy o kontakt z nami.