前提条件

このトピックでは、Oracle Blockchain Platform Enterprise Editionをインストールするためのハードウェアおよびソフトウェアの前提条件について説明します。

Kubernetesプラットフォーム

次のプラットフォームがサポートされています。
  • Oracle Cloud Infrastructure Container Engine for Kubernetes (OKE) v1.29.1以上
  • minikube v1.33.1以降- テスト環境のみ、本番用ではありません

DNSサーバーで解決できるドメイン名が必要です。

その他の前提条件ソフトウェア

また、Kubernetesプラットフォームの管理およびOracle Blockchain Platformコンテナのインストールを支援する次のツールが必要です:
  • kubectlバージョン1.29.3以降- Kubernetesのコマンドライン・ツール
  • Helmバージョン3.12.3以降- Kubernetesパッケージ・マネージャ
  • コンテナおよびポッドを管理するツール- 次のいずれかを選択します:
    • Podmanバージョン4.9.4-rhel以上
    • Dockerバージョン24.0.6以降
  • yqバージョン4.42.1 - コマンドラインYAMLプロセッサ
  • jq v1.7.1以上- コマンドラインJSONプロセッサ
  • Istioバージョン1.20.2以降とistioctl - デプロイメント用のセキュリティおよびトラフィック管理ツール、およびそのコマンドライン・ツール

Webブラウザ

Oracle Blockchain Platformに組み込まれているすべての管理ツールにアクセスするには、次のブラウザを使用します:
  • Mozilla Firefox
  • Microsoft Edge
  • Google Chrome
  • Apple Safari

必要なソフトウェアのインストール

この項では、前提条件のテスト済バージョンのインストールの例を示します。インストール手順の追加情報および必要な変更については、各製品のドキュメントを参照してください。

kubectlのインストール

kubectlバージョンは、常にクラスタの1つのマイナー・バージョン差異内にある必要があります。たとえば、Oracle Kubernetes Engineクラスタ・バージョンがv1.29.1の場合、kubectl v1.29.3を使用できます。詳細は、「Kubernetesインストール・ツール」を参照してください。

# Download:
    curl -LO https://dl.k8s.io/release/v1.29.3/bin/linux/amd64/kubectl
 
# Setup:
    # Make binary file executable:
    chmod +x ./kubectl
    # Move the downloaded binary to /usr/local/bin or /usr/bin and make "root" as the owner of this binary
    sudo mv ./kubectl /usr/bin/kubectl
    sudo chown root: /usr/bin/kubectl
 
# Verify:
    $ kubectl version --client --output=yaml
    clientVersion:
        buildDate: "2024-03-15T00:08:19Z"
        compiler: gc
        gitCommit: 6813625b7cd706db5bc7388921be03071e1a492d
        gitTreeState: clean
        gitVersion: v1.29.3
        goVersion: go1.21.8
        major: "1"
        minor: "29"
        platform: linux/amd64
    kustomizeVersion: v5.0.4-0.20230601165947-6ce0bf390ce3

Helmをインストールします

Oracle Blockchain Platform Enterprise Editionは、Helm v3.12.3でテストされました。詳細は、Helmのインストールを参照してください。

#Download install script:
    curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
 
# Provide execute permission and execute:
    chmod +x get_helm.sh
    ./get_helm.sh
 
# Verify:"
    $ helm version
    version.BuildInfo{Version:"v3.12.3", GitCommit:"3a31588ad33fe3b89af5a2a54ee1d25bfe6eaa5e", GitTreeState:"clean", GoVersion:"go1.20.7"}

Podmanのインストール

Oracle Blockchain Platform Enterprise Editionは、Podman v4.9.4-rhelでテストされました。詳細は、Podmanのインストール手順を参照してください。

# Update the package list:
    sudo yum update
 
# Install podman:
    sudo yum install podman -y
 
# create docker alias to run podman commands
    sudo yum install -y podman-docker
 
#Verify:
    $ podman --version
        podman version 4.9.4-rhel
    $ docker --version
        podman version 4.9.4-rhel

yqのインストール

Oracle Blockchain Platform Enterprise Editionは、yq v4.42.1でテストされました。詳細は、yq READMEを参照してください。

# Download:
    wget https://github.com/mikefarah/yq/releases/download/v4.42.1/yq_linux_amd64.tar.gz -O - | tar xz
 
# Setup:
    sudo mv yq_linux_amd64 /usr/bin/yq
    sudo chmod +x /usr/bin/yq
 
# Verify:
    yq --version

jqのインストール

Oracle Blockchain Platform Enterprise Editionは、jq v1.7.1でテストされました。詳細は、jqのダウンロードを参照してください。

# Install:
    sudo dnf install jq

# Verify:
   jq --version
   jq-1.7.1

kubectlのインストール

kubectlバージョンは、常にクラスタの1つのマイナー・バージョン差異内にある必要があります。たとえば、Oracle Kubernetes Engineクラスタ・バージョンがv1.29.1の場合、kubectl v1.29.3を使用できます。詳細は、「Kubernetesインストール・ツール」を参照してください。

curl -LO https://dl.k8s.io/release/v1.29.3/bin/darwin/amd64/kubectl

# Setup:
    # Make binary file executable:
    chmod +x ./kubectl
    # Move the downloaded binary to /usr/local/bin and make "root" as the owner of this binary
    sudo mv ./kubectl /usr/local/bin/kubectl
    sudo chown root: /usr/local/bin/kubectl
 
# Verify:
    $ kubectl version --client --output=yaml

    clientVersion:
        buildDate: "2024-03-15T00:08:19Z"
        compiler: gc
        gitCommit: 6813625b7cd706db5bc7388921be03071e1a492d
        gitTreeState: clean
        gitVersion: v1.29.3
        goVersion: go1.21.8
        major: "1"
        minor: "29"
        platform: darwin/amd64
    kustomizeVersion: v5.0.4-0.20230601165947-6ce0bf390ce3

Helmをインストールします

Oracle Blockchain Platform Enterprise Editionは、Helm v3.12.3でテストされました。詳細は、Helmのインストールを参照してください。

#Download install script:
    curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
 
# Provide execute permission and execute:
    chmod +x get_helm.sh
    ./get_helm.sh
 
# Verify:"
    $ helm version
    version.BuildInfo{Version:"v3.12.3", GitCommit:"3a31588ad33fe3b89af5a2a54ee1d25bfe6eaa5e", GitTreeState:"clean", GoVersion:"go1.20.7"}

Podmanのインストール

Oracle Blockchain Platform Enterprise Editionは、Podman v4.9.4-rhelでテストされました。詳細は、Podmanのインストール手順を参照してください。

# Install:
     brew install podman

# After installing, you need to create and start your first Podman machine:

     podman machine init
     podman machine start

# Verify:
     podman info
     host: arch: amd64 buildahVersion: 1.36.0 cgroupControllers: - cpu - io - memory - pids cgroupManager: systemd

# Make docker commands available via podman by creating a symlink:
     sudo ln -s /usr/local/bin/podman /usr/local/bin/docker 

yqのインストール

Oracle Blockchain Platform Enterprise Editionは、yq v4.44.1でテストされました。詳細は、yq READMEを参照してください。

# Install:
    brew install yq

# Verify:
   yq--version
   yq (https://github.com/mikefarah/yq/) version v4.44.1

jqのインストール

Oracle Blockchain Platform Enterprise Editionは、jq v1.7.1でテストされました。詳細は、jqのダウンロードを参照してください。

# Install:
    brew install jq

# Verify:
   jq --version
   jq-1.7.1

Istioのインストール

Istioは、Kubernetesを拡張して、複雑なデプロイメントにトラフィック管理およびセキュリティを提供します。Oracle Blockchain Platform Enterprise Editionでは、Istioをイングレス・ゲートウェイ・サービスとして使用して、様々なサービスへの受信トラフィックを受け入れます。

Istioおよびistioctl(Istio構成コマンドライン・ユーティリティ)をインストールすることをお薦めします。Istioバージョン1.20.2以降がサポートされています。

Istioをダウンロードするには:

# Download istioctl tool
   curl -L https://istio.io/downloadIstio | sh -

# (optional) You can move the downloaded "istio-1.22.1" directory     
   mv ./istio-1.22.1 $HOME/istioctl

# Add the istioctl client to your path     
export PATH=$HOME/istioctl/bin:$PATH

ノート:

Istioのインストールは、Kubernetesクラスタの作成後に完了します。.kube/configファイルへの依存性があります。

Istioのingressgatewayサービスは、LoadBalancerまたはNodePortのいずれかのサービス・タイプで実行するようにKubernetesで構成できます。詳細は、Istioのドキュメントを参照してください: Istio Ingress Gateways

Load Balancer

Kubernetesクラスタが外部ロード・バランサをサポートしている場合は、デプロイメント時に使用するOracle Blockchain Platform Enterprise Edition runmeスクリプトを使用して、Istioイングレス・ゲートウェイ・サービスをロード・バランサとして構成することをお薦めします。Oracle Blockchain Platform Enterprise Editionでは、受信トラフィックを受け入れるために、Istioイングレス・ゲートウェイのhttpsポート(443)をパブリック・ポートとして使用します。このポート値は、runmeスクリプトを使用して、Oracle Blockchain Platform Enterprise Editionのインストール時にオプションでカスタマイズできます。

ノード・ポート

ロード・バランサ・サービス・タイプを使用できない場合、Istioイングレス・ゲートウェイ・サービスをノード・ポート・サービス・タイプで構成できます。Oracle Blockchain Platform Enterprise Editionでは、Istioイングレス・ゲートウェイのhttpsポートのnodePort値を使用して、外部トラフィックをKubernetesクラスタ内のOracle Blockchain Platform Enterprise Editionにルーティングします。httpsポートのnodePortの値は、runmeスクリプトを使用してOracle Blockchain Platform Enterprise Editionのインストール中に(許可されたnodePort範囲に基づいて)オプションでカスタマイズできます。デフォルトでは、Kubernetesクラスタで許可されるnodePort範囲は30000-32767です。

ノート:

Oracle Blockchain Platform Enterprise Editionのインストール後にhttps portまたはnodePortの値は、その機能に影響するため、更新しないでください。

Oracle Blockchain Platform Enterprise Editionサービスのホスト名解決

Oracle Blockchain Platform Enterprise Editionサービスでは、Istioゲートウェイ/仮想サービスで構成された一意に生成されたホスト名が使用されます。Kubernetesクラスタ内のOracle Blockchain Platform Enterprise Editionサービスと通信するには、ブラウザまたはアプリケーションからこれらの一意のホスト名を使用する必要があります。istio-ingressgatewayに対して選択したサービス・タイプに基づいて、次の方法でこれらのホスト名をIPv4アドレスに解決する必要があります。
  • LoadBalancerの場合、istio-ingressgatewayサービスに対して生成された外部IPアドレスに解決されます。
  • NodePortの場合、ワーカー・ノードのIPアドレスに解決されます。