在 minikube 上部署 Oracle Blockchain Platform Enterprise Edition

您可以使用 minikube 进行测试和内部开发。请勿将 minikube 用于生产环境。

先决条件:
  • CPU:8 个或更高
  • 内存:16 GB
  • 可用磁盘空间:50 GB 或更高
  • 具有超级用户权限的非 root 用户
  • 确保 minikube 节点可以访问 Internet,这是在 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 版及更高版本。在运行以下命令之前,必须完成 Install 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

在您的 minikube 实例上下载并安装 Oracle Blockchain Platform Enterprise Edition

  1. Oracle Blockchain Platform Enterprise Edition 页面上,单击下载并按照步骤下载 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:容器注册表登录用户名
    • imageReleaseVersionOracle Blockchain Platform Enterprise Edition 版本
    • controlPlaneStorage.storageClassName:要用于 PVC 的 Kubernetes 存储类 (PersistentVolumeClaim )。如果为空,则使用缺省 storageClass
    • controlPlaneStorage.size :Blockchain Platform Manager (control plane) 服务的 PVC 大小
    • parentDomainName:用于区块链平台管理器服务的域名。示例: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 验证服务器的管理员密码。
    • 输入默认控制层管理员用户密码(将不显示密码):设置 Blockchain Platform Manager 管理员的密码。
    • 如果未在 runme-input.yaml 文件中提供 StorageClass,系统将检查是否设置了默认存储类,并询问您是否要使用它。
    • 确认 Istio 入站网关服务 https 端口:LoadBalancer 服务类型的默认值为 443。
    • 输入注册表 <registry name> 密码:此密码用于连接到容器映像注册表(如 runme-input.yaml 文件中所指定)以下载映像。
  5. 在其他终端窗口中,运行以下命令:
    export KUBECONFIG=/<path_to>/.kube/minikube
  6. 确保 minikube 隧道处于活动状态,可用于访问区块链平台管理器和实例:
    minikube tunnel --bind-address 0.0.0.0
  7. 该脚本将以下服务安装在 obp-cp 名称空间下:
    • control-plane
    • openldap
    • obp-auth-server
    • obp-operator
    • hlf-operator
  8. 该脚本显示区块链平台管理器 URL,您可以使用该 URL 访问控制层 UI。

访问区块链平台管理器

安装后,为生成的 Blockchain Platform Manager 主机名配置主机名解析。
  1. 运行以下命令可获取已配置主机名的列表:
    kubectl get virtualservice -n obp-cp -o json | jq -r '.items[].spec.hosts[0]'
  2. 使用 minikube 主机的 IPv4 地址作为所生成主机名的映射 IP 地址。
  3. 确保 minikube 隧道处于活动状态,可以访问 Blockchain Platform Manager 和 Oracle Blockchain Platform 实例。