在 minikube 上部署 Oracle Blockchain Platform Enterprise Edition

minikube 可用于测试和内部开发目的。不建议用于生产环境。

先决条件:
  • CPU:8 个或更高
  • 内存:16GB
  • 可用磁盘空间:50GB 或更高
  • 具有超级用户权限的非 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 程序包。解压缩该软件包,然后从下载的归档文件中提取该软件包。
    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-image]

    注意:

    可选的 --publish-image 命令可将容器上载到容器映像注册表,例如 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,从中可以访问控制平面 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 实例。