Oracle Blockchain Platform Enterprise Editionをminikubeにデプロイ

テストおよび内部開発の目的でminikubeを使用できます。本番環境にはminikubeを使用しないでください。

前提条件:
  • CPU: 8以上
  • メモリー: 16 GB
  • 空きディスク領域: 50 GB以上
  • スーパーユーザー権限を持つroot以外のユーザー
  • minikubeノードがインターネットにアクセスできることを確認します。これは、Oracle Blockchain Platformインスタンスへのチェーンコードをインストールするために必要です。
  • minikube v1.33.1以上

minikubeのインストール

このセクションでは、テスト済みバージョンのminikubeをインストールする例を示します。詳細は、「Kubernetesインストール・ツール」を参照してください。

#Download the latest minikube binary
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64

#Install
sudo install minikube-linux-amd64 /usr/local/bin/minikube

#Verify Installation
minikube version

#Start Minikube
minikube start

#Verify Minikube Installation
minikube status
#Install Homebrew (if not already installed)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

#Install minikube using Homebrew
brew install minikube

#Start minikube
minikube start

#Verify minikube Installation
minikube status

Istioインストールの完了

Oracle Blockchain Platform Enterprise Editionでは、バージョン1.20.2以降がサポートされています。次のコマンドを実行する前に、Istioのインストールのステップを完了する必要があります。


# Install
    istioctl install --set profile=default --set values.pilot.env.ENABLE_TLS_ON_SIDECAR_INGRESS=true --set components.cni.enabled=true --set values.cni.repair.deletePods="true"
    ## Enter "y" when prompted for "Proceed? (y/N)"
 
# Verify:
    $ istioctl version
    client version: 1.22.1
    control plane version: 1.22.1
    data plane version: 1.22.1 (1 proxies)

Oracle Blockchain Platform Enterprise Editionのインストール

Oracle Blockchain Platform Enterprise Editionをダウンロードしてminikubeインスタンスにインストールします:

  1. Oracle Blockchain Platform Enterprise Editionのページで、「Download」をクリックし、ステップに従ってOracle Blockchain Platform Enterprise Editionパッケージをダウンロードします。.zipファイルからパッケージを抽出してから、ダウンロードしたアーカイブ・ファイルからパッケージを抽出します。
    tar -xzf <distribution-package-file>
    # example tar -xzf obpee_package_24.1.3-20240723083137.tgz
  2. runme-input.yamlファイルを必要な値で更新します。次のrunme-input.yamlファイルの例は、参照として使用できます。
    imageRegistryConfiguration:
      registry: <container_registry_name>
      imageTagPrefix: <container-image-repository-prefix>
      username: <container-registry-username>
     
    imageReleaseVersion: 24.1.3-20240723083137
     
    # storageClassName should be set to create a dynamic persistent volume. If empty, default storageClass is used.
     
    controlPlaneStorage:
      storageClassName: 
      # Example 500Mi, 5Gi
      size: 4Gi
      
    parentDomainName: example.com
    #imagePullTimeout: Use this field to customize the wait time (in seconds) for pulling the required container images from the repository. Default is 1800 seconds.
        imagePullTimeout: 1800
    前述の例では、変数は、次のリストに示すように定義されています。
    • imageRegistryConfiguration.registry: 使用するコンテナ・レジストリ・サーバー。例: iad.ocir.io
    • imageRegistryConfiguration.imageTagPrefix: イメージのプッシュ先およびプル元となるレジストリを含む、コンテナ・ベース・リポジトリ・パスです。例: iad.ocir.io/obpee/bcs
    • imageRegistryConfiguration.username: コンテナ・レジストリのログイン・ユーザー名
    • imageReleaseVersion: Oracle Blockchain Platform Enterprise Editionリリース・バージョン
    • controlPlaneStorage.storageClassName: PVC (PersistentVolumeClaim)に使用するKubernetesストレージ・クラス。空の場合、デフォルトのstorageClassが使用されます。
    • controlPlaneStorage.size: Blockchain Platform Manager (コントロール・プレーン)サービスのPVCサイズ
    • parentDomainName: Blockchain Platform Managerサービスに使用するドメイン名。例: example.com
    • imagePullTimeout: Oracle Blockchain Platform Enterprise Editionのインストール中のイメージ・プル待機タイムアウト(秒)。デフォルトは1800秒です。
  3. minikubeが実行されていることを確認します。
  4. 新しいターミナル・ウィンドウを開き、配布パッケージ・ディレクトリに移動します。runme_minikube.shスクリプトを実行し、スクリプトの出力に従って手順を進めます:
    ./runme_minikube.sh [--publish-images]

    ノート:

    オプションの--publish-imagesコマンドは、コンテナをOracle Cloud Infrastructure Registryのようなコンテナ・イメージ・レジストリをアップロードします。
    • デフォルトのLDAP管理パスワードを入力します(パスワードは表示されません): 組込みLDAP認証サーバーに対する管理者のパスワードを設定します。
    • デフォルトのコントロール・プレーン管理ユーザー・パスワードを入力します(パスワードは表示されません): ブロックチェーン・プラットフォーム・マネージャ管理者のパスワードを設定します。
    • StorageClassrunme-input.yamlファイルに指定されていない場合は、デフォルトのストレージ・クラスが設定されているかどうかがチェックされ、そのクラスを使用するかどうかが尋ねられます。
    • Istioイングレス・ゲートウェイ・サービスのhttpsポートを確認します。LoadBalancerサービス・タイプのデフォルトは443です。
    • レジスタ<registry name>パスワードを入力します。これは、イメージをダウンロードするためのコンテナ・イメージ・レジストリ(runme-input.yamlで指定)への接続に使用されます。
  5. 別の端末ウィンドウで、次のコマンドを実行します。
    export KUBECONFIG=/<path_to>/.kube/minikube
  6. Blockchain Platform Managerおよびインスタンスにアクセスするためにminikubeトンネルがアクティブであることを確認します:
    minikube tunnel --bind-address 0.0.0.0
  7. このスクリプトは、obp-cpネームスペースの下に次のサービスをインストールします。
    • control-plane
    • openldap
    • obp-auth-server
    • obp-operator
    • hlf-operator
  8. このスクリプトでは、コントロール・プレーンUIへのアクセスに使用できるブロックチェーン・プラットフォーム・マネージャURLが表示されます。

ブロックチェーン・プラットフォーム・マネージャへのアクセス

インストール後に、生成されたBlockchain Platform Managerのホスト名のホスト名解決を構成します。
  1. 次のコマンドを実行して、構成済ホスト名のリストを取得します:
    kubectl get virtualservice -n obp-cp -o json | jq -r '.items[].spec.hosts[0]'
  2. minikubeホストのIPv4アドレスを、生成されたホスト名のマッピングIPアドレスとして使用します。
  3. Blockchain Platform ManagerおよびOracle Blockchain Platformインスタンスにアクセスするには、minikubeトンネルがアクティブであることを確認します。