Prerequisites
This topic contains the hardware and software prerequisites for installing Oracle Blockchain Platform Enterprise Edition.
Kubernetes Platforms
- Oracle Cloud Infrastructure Container Engine for Kubernetes (OKE) v1.29.1 or later
- minikube v1.33.1 or later - test environment only, not for production
You must have a domain name that can be resolved by a DNS server.
Other Prerequisite Software
- kubectl version 1.29.3 or later - Kubernetes' command line tool
- Helm version 3.12.3 or later - a Kubernetes package manager
- Tools to manage your containers and pods - choose one of the following:
- Podman version 4.9.4-rhel or later
- Docker version 24.0.6 or later
- yq version 4.42.1 - a command line YAML processor
- jq v1.7.1 or later - a command line JSON processor
- Istio version 1.20.2 or later and istioctl - security and traffic management tool for deployments, and its command line tool
Web Browsers
- Mozilla Firefox
- Microsoft Edge
- Google Chrome
- Apple Safari
Install Prerequisite Software
This section provides an example walkthrough of installing the tested versions of the prerequisites. Refer to each product's documentation for additional information and any required modifications to the install instructions.
Install kubectl
The kubectl version should always be within one minor version difference of your cluster. For example if your Oracle Kubernetes Engine cluster version is v1.29.1, you can use kubectl v1.29.3. For additional information, see Kubernetes Install Tools.
# 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
Install Helm
Oracle Blockchain Platform Enterprise Edition was tested with Helm v3.12.3. For additional information, see Installing 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"}
Install Podman
Oracle Blockchain Platform Enterprise Edition was tested with Podman v4.9.4-rhel. For additional information, see Podman Installation Instructions.
# 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
Install yq
Oracle Blockchain Platform Enterprise Edition was tested with yq v4.42.1. For additional information, see 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
Install jq
Oracle Blockchain Platform Enterprise Edition was tested with jq v1.7.1. For additional information, see Download jq.
# Install:
sudo dnf install jq
# Verify:
jq --version
jq-1.7.1
Install kubectl
The kubectl version should always be within one minor version difference of your cluster. For example if your Oracle Kubernetes Engine cluster version is v1.29.1, you can use kubectl v1.29.3. For additional information, see Kubernetes Install Tools.
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
Install Helm
Oracle Blockchain Platform Enterprise Edition was tested with Helm v3.12.3. For additional information, see Installing 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"}
Install Podman
Oracle Blockchain Platform Enterprise Edition was tested with Podman v4.9.4-rhel. For additional information, see Podman Installation Instructions.
# 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
Install yq
Oracle Blockchain Platform Enterprise Edition was tested with yq v4.44.1. For additional information, see yq README.
# Install:
brew install yq
# Verify:
yq--version
yq (https://github.com/mikefarah/yq/) version v4.44.1
Install jq
Oracle Blockchain Platform Enterprise Edition was tested with jq v1.7.1. For additional information, see Download jq.
# Install:
brew install jq
# Verify:
jq --version
jq-1.7.1
Install Istio
Istio extends Kubernetes to provide traffic management and security to complex deployments. Oracle Blockchain Platform Enterprise Edition uses Istio as the ingress gateway service to accept incoming traffic into various services.
We recommend installing Istio and istioctl (Istio configuration command line utility). Istio version 1.20.2 and later is supported.
To download 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
Note:
Istio installation will be completed after your Kubernetes cluster has been created. It has a dependency on the.kube/config
file.
Istio's ingressgateway
service can be configured in Kubernetes to run with either LoadBalancer
or NodePort
service types. See the Istio documentation for details: Istio Ingress Gateways
- Load Balancer
-
If your Kubernetes cluster supports an external load balancer, it's recommended to configure the Istio ingress gateway service as a load balancer using the Oracle Blockchain Platform Enterprise Edition
runme
script that you'll use during deployment. Oracle Blockchain Platform Enterprise Edition will use Istio ingress gateway's https port (443) as the public port to accept the incoming traffic. This port value can be optionally customized during installation of Oracle Blockchain Platform Enterprise Edition using therunme
script. - Node Port
-
In cases where the load balancer service type cannot be used, the Istio ingress gateway service can be configured with node port service type. Oracle Blockchain Platform Enterprise Edition will use the
nodePort
value of the https port in the Istio ingress gateway to route external traffic to Oracle Blockchain Platform Enterprise Edition inside the Kubernetes cluster. The value of thenodePort
for the https port can be optionally customized (based on the allowednodePort
range) during installation of Oracle Blockchain Platform Enterprise Edition using therunme
script. By default, the allowednodePort
range in Kubernetes cluster is 30000-32767.Note:
Do not update the value of the httpsport
ornodePort
after installation of Oracle Blockchain Platform Enterprise Edition as it will affect its function.
Hostname Resolution for Oracle Blockchain Platform Enterprise Edition Services
istio-ingressgateway
, these hostnames are required to be resolved to an IPv4 address in the following way:
- If
LoadBalancer
, they resolve to the external IP address generated for theistio-ingressgateway
service - If
NodePort
, they resolve to the worker nodes' IP addresses