以前の記事で Oracle BRM 12 クラウドネイティブの展開 をOracleクラウドにバージョンアップしました。Oracleクラウドは非常によく設計されたクラウド環境で、価格も手頃で、常に進化しています。しかし、Oracle BRM 12をOracle Cloudにデプロイしたい場合、30日間だけ無料でテストできるOracle Cloudのいくつかの非フリーの機能とコンポーネントを使用する必要があります。その後、継続して使用する場合は、有料アカウントにアップグレードする必要があります。
また、Oracle BRM 12クラウドネイティブデプロイメントをテストしたい場合は、別のオプションがあります。オンプレミスのデプロイを行い、ローカルサーバにBRMをデプロイすることができます。この記事の主な目的は、その方法を紹介することです。この記事では、Minikubeを使用してローカルのKubernetesクラスタを作成し、実行する方法と、BRMをデプロイする方法を紹介します。 Oracle BRM 12 を新しく作成、設定したクラスタに追加します。Minikubeはテストおよび開発目的にのみ適しており、本番環境では使用しないでください。それでは、使用するシステムの具体的なコンポーネントとそのインストール方法を見ていきましょう。
目次
Oracle Linux 8について
私たちのソリューションはLinuxオペレーティングシステム、すなわちOracle Linuxバージョン8に基づいています。このLinuxディストリビューションはOracleによって提供され、無料で入手できます。Red Hat Enterprise Linuxをベースにしています。このオペレーティングシステムでは、必要であれば、商用テクニカルサポートを受けることもできます。また、Oracleクラウドは主に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は、コンテナ化されたソフトウェアのデプロイと実行を可能にする製品群です。コンテナは、コンテナと呼ばれる1つのパッケージに独自のソフトウェア、設定、およびすべての必要なライブラリをバンドルしたソフトウェアのバンドルです。
以下は、Oracle Linux 8にDockerをインストールする手順です:
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
docker を有効にします。
systemctl ステータス docker
現在のユーザーのDockerを有効にします:
sudo usermod -aG docker
newgrp docker
kubectlのインストール
続けて、Kubernetesクラスタを制御するコマンドラインツールであるkubectlをインストールします。
最新の安定版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をコンテナ化したOracle BRM 12 Cloud Native Deploymentを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 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 7m54s
coredns-6955765f44-fd2lt 1/1 実行中 0 7m54s
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 7m54s
kube-scheduler-minikube 1/1 実行中 0 7m46s
storage-provisioner 1/1 実行中 0 7m52s
minikubeとdockerを動作させるために必要な環境変数を環境にロードします:
eval $(minikube docker-env)
新しく作成したクラスタにBRMをデプロイする前に、追加のコンポーネントが必要です。
Helmのインストール
HelmはKubernetesのパッケージマネージャです。HelmチャートはKubernetesクラスタの管理、インストール、アップグレードに使用されます。Oracleは、BRMのクラウドネイティブデプロイメントバージョンのOracle BRM 12のデプロイと設定に必要なHelmチャートをバンドルしています。
それでは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 BRMが使用できるように、Oracleデータベースインスタンスでいくつかの準備ステップを実行する必要があります。これらのステップの詳細な説明は、この記事の範囲を超えていますが、Oracle BRMのドキュメントで必要な情報を見つけることができます。
Kubernetes クラスタへの Oracle BRM 12 のデプロイ
まず、提供されているすべての docker BRM イメージを docker 環境にロードする必要があります。最初のもの (oc-cn-init-db-helm-chart) は DB スキーマを初期化して BRM 用に準備し、もう一つのもの (oc-cn-helm-chart) は選択した様々な BRM コンポーネントをデプロイします。
まず oc-cn-init-db-helm-chart をデプロイします。まず init_db Docker イメージを 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にコピーします。その後、Oracle BRM 12 Cloud Native Deploymentのドキュメントに従ってoverride-values.yamlを編集します。imageRepository "の値は空白のままにしておきます。wallet "セクションでOracleウォレットの認証情報を設定します。db "セクションでデータベース接続設定を行います。override-values.yamlファイルに必要な値をすべて設定したら、Helmチャートを使ってinit_dbイメージをKubernetesクラスタにデプロイできます:
helm install oc-cn-init-db-helm-chart -name initdb -values oc-cn-init-db-helm- chart/override-values.yaml
ここでhelmはBRM DB初期化イメージをKubernetesクラスタにデプロイし、BRM用のデータベースの準備を始めます。
デプロイのステータスを確認するには
helm status initdb
しばらくすると、initdbポッドがデータベースの準備を終了するので、現在のinitdbイメージのデプロイメントを削除することができます:
helm delete initdb
oc-cn-helm-chart.tgzを解凍し、values.yamlをoverride-values.yamlにコピーします。Oracle BRM 12 Cloud Native Deploymentにある指示に従って、override-values.yamlの様々なフィールドを編集します。いくつかのフィールド("wallet "や "db "セクションなど)は、以前使用したinit-dbチャートからコピーできます。
docker load -input "コマンドを使って、Dockerリポジトリにデプロイしたい全てのDockerイメージをロードします。
その後、Helmチャートを展開できます:
helm install oc-cn-helm-chart -name occn-ps2 -namespace ocgbu -values oc-cn-helm-chart/override-values.yaml
これでBRMがローカルのKubernetesクラスタにデプロイされます。クラスタの監視と問題の診断に関するヒントは、以前の記事にあります。
Kubernetes DashboardでKubernetesクラスタを監視することもできます:
minikubeダッシュボード
ダッシュボードは新しいブラウザウィンドウで開きます。
結論
この記事では、Oracle BRM Cloud Native Deploymentをローカルのminikube Kubernetesクラスタにデプロイする主な手順を説明します。このデプロイはテストや開発の目的で使用できます。デプロイに追加的なヘルプが必要な場合 オラクルBRM minikubeへのご登録、ご提案が必要な方、請求書発行に関するあらゆるニーズに対応できる信頼性の高いソリューションプロバイダーをお探しの方は、お気軽にお問い合わせください。