在 Red Hat OpenShift 本機部署 Oracle Blockchain Platform Enterprise Edition

您可以在 Red Hat OpenShift Local 上安裝 Oracle Blockchain Platform Enterprise Edition ,以進行測試和內部開發。生產環境不支援此功能。

Red Hat OpenShift 本機旨在在本機電腦上執行,以簡化設定和測試,並使用開發容器型應用程式所需的所有工具在本機模擬雲端開發環境。先前稱為 Red Hat CodeReady Containers。

如需 Red Hat OpenShift 本機的詳細資訊,請參閱 Red Hat OpenShift 本機

必備條件:
  • CPU:12 個以上
  • 記憶體:30GB 以上
  • 磁碟大小:150GB 以上
  • RedHat OpenShift 本機 - 內嵌 OpenShift 版本 4.15.3、CRC (Code Ready Container) 版本 2.34.1
  • 作業系統:CentOS 8

本節提供安裝已測試版本的先決條件的逐步解說範例。請參閱每項產品的文件,以取得其他資訊以及安裝指示的任何必要修改。下列逐步解說是使用 CentOS 8 作為作業系統進行測試。也可以使用其他 Linux 發行套件,例如 Oracle Linux 或 Red Hat Enterprise Linux。

附註:

安裝先決條件軟體作業中安裝 Istio 時,請安裝版本 1.22.1,而不是最新版本。

安裝 Red Hat OpenShift 本機

完成下列步驟以下載並安裝 Red Hat OpenShift Local。如需其他資訊,請參閱安裝 CodeReady 容器

  1. 導覽至 Red Hat OpenShift 本機,然後按一下在筆記型電腦上安裝 OpenShift 。系統會將您重新導向至登入頁面,您可以在其中輸入您的 Red Hat 認證或建立帳戶 (如果您還沒有認證)。
  2. 登入之後,按一下叢集,然後按一下本機頁籤。
  3. 在「本機」頁面上,按一下下載 OpenShift 本機,然後按一下下載提取加密密碼
  4. 將您在上一個步驟中下載的 crc 套裝程式和提取加密密碼複製到您的 VM。舉例而言:
    scp -r -i ~/.ssh/id_rsa ~/Downloads/crc-linux-amd64.tar.xz <username>@<ip-address>:/tmp
    scp -r -i ~/.ssh/id_rsa ~/Downloads/pull-secret.txt <username>@<ip-address>:/tmp
    cd
  5. 在 VM 上,建立一個名為 crc 的目錄,然後將 crc 套裝軟體和提取密碼複製到該目錄中。
  6. 執行下列指令來安裝 OpenShift:
    sudo dnf install NetworkManager
    如果以載入 Plugin "osmsplugin" 失敗:未顯示名稱為 'librepo' 的模組,請執行下列命令,然後再次執行安裝命令。
    sudo sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
    sudo sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
    
  7. 執行下列指令以擷取歸檔檔案:
    cd ~/crc
    tar xvf crc-linux-amd64.tar.xz
  8. 執行下列命令,將二進位檔案移至 /bin 目錄並更新路徑:
    mkdir -p ~/bin
    cp ~/crc/crc-linux-*-amd64/crc ~/bin
    export PATH=$PATH:$HOME/bin
    echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

增加根分割區中的磁碟空間

如果 VM 根分割區空間小於 150 GB,請完成下列步驟。

  1. 確定開機磁碟、根檔案系統或邏輯磁碟區管理程式 (LVM) 至少有 150 GB 的可用空間。
  2. 使用 fdisk 建立至少 100GB 的 Linux 檔案系統分割區 (在此範例中,新分割區為 /dev/sda4)。
    sudo fdisk /dev/sda
  3. 使用下列命令將實體磁碟區新增至磁碟區群組。
    sudo vgextend centosvolume /dev/sda4
  4. 使用以下指令增加邏輯磁碟區的大小。
    sudo lvextend -L+99G /dev/mapper/centosvolume-root
  5. 使用下列指令增加檔案系統的大小。
    sudo xfs_growfs /dev/centosvolume/root
    Oracle Enterprise Linux 上等效的指令為 oci_growfs

設定 OpenShift 本機參數

執行下列命令,將 OpenShift 本機設定為使用 12 個 CPU 核心、30 GB 記憶體和 100 GB 磁碟空間。

crc config set cpus 12 
crc config set memory 30720 
crc config set disk-size 100

下載並安裝 OpenShift 用戶端

執行下列指令,以下載並安裝 oc (OpenShift 用戶端軟體)。

wget -O ~/crc/openshift-client-linux.tar.gz https://mirror.openshift.com/pub/openshift-v4/x86_64/clients/ocp/4.15.3/openshift-client-linux-4.15.3.tar.gz 
tar xvzf openshift-client-linux.tar.gz
sudo mv oc /usr/local/bin

啟動「叢集」

執行下列命令以設定、啟動及檢查叢集的狀態。使用下載 Red Hat OpenShift Local 時下載的提取密碼。

crc setup 
crc start -p ~/crc/pull-secret.txt
crc status
安裝完成後,將會顯示類似下列的資訊:
INFO Adding crc-admin and crc-developer contexts to kubeconfig... 
Started the OpenShift cluster.

The server is accessible via web console at:
  https://console-openshift-console.apps-crc.testing

Log in as administrator:
  Username: kubeadmin
  Password: password  (note this password)

Log in as user:
  Username: developer
  Password: developer

Use the 'oc' command line interface:
  $ eval $(crc oc-env)
  $ oc login -u developer https://api.crc.testing:6443

安裝 Oracle Blockchain Platform Enterprise Edition

  1. 請完成下列步驟,以確保 Red Hat OpenShift 本機已啟動並在執行中。
    1. 登入主控台。
      oc login -u kubeadmin -p <password> https://api.crc.testing:6443
    2. 確認可以連線 Red Hat OpenShift 本機。
      oc get nodes
  2. 執行下列命令以設定 Istio 設定檔。您必須先完成安裝 Istio 中的步驟,才能執行下列命令。
    istioctl install --set profile=openshift --set values.pilot.env.ENABLE_TLS_ON_SIDECAR_INGRESS=true --set components.cni.enabled=true --set values.cni.repair.deletePods="true"
  3. Oracle Blockchain Platform Enterprise Edition 頁面上,按一下下載,然後依照下載 Oracle Blockchain Platform Enterprise Edition 套件 (大約 6.5 GB) 的步驟進行。
  4. 擷取下載的存檔檔案。
    擷取的資料夾結構包含各種平台的 runme 命令檔,包括 OpenShift。
  5. 以所需的值更新 runme-input.yaml 檔案。同時,將 runme-input.yamlrunme.sh 檔案設為可執行。確定您可以從您在 runme-input.yaml 檔案中指定的使用者帳戶登入登錄。下列範例 runme-input.yaml 檔案可以用來作為參照:
    imageRegistryConfiguration:
      registry: <container_registry_name>
      imageTagPrefix: <container-image-repository-prefix>
      username: <container-registry-username>
     
    imageReleaseVersion: <obpee-release-version>
     
    # Set storageClassName to create a dynamic persistent volume. If empty, default storageClass is used.
     
    controlPlaneStorage:
      storageClassName: 
      # Example 500Mi, 5Gi
      size: 1Gi
    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 是區塊鏈平台管理員 (控制層) 服務的 PVC 大小。
    • parentDomainName 是用於 Blockchain Platform Manager 服務的網域名稱。範例:example.com
    • imagePullTimeoutOracle Blockchain Platform Enterprise Edition 安裝期間的影像提取等待逾時 (秒)。預設值為 1800 秒。
  6. 開啟新的終端機視窗,並移至發行套件目錄。依照命令檔輸出所提示的步驟進行。
    1. 執行下列指令,讓程序檔可執行。
      chmod +x runme_openshift.sh
    2. 執行下列指令碼,將封存檔案中的容器發送至指定的儲存庫,然後安裝產品。
      ./runme_openshift.sh --publish-images
      如果容器映像檔已經上傳至儲存區域,您可以從儲存區域提取,然後使用下列命令進行安裝。
      ./runme_openshift.sh
    • 輸入預設的 LDAP 管理員密碼 (不會顯示密碼):這是用來設定內建 LDAP 認證伺服器的管理員使用者密碼。
    • 輸入預設控制層管理員使用者密碼 (不會顯示密碼):這是用來設定區塊鏈平台管理程式管理員使用者的密碼。
    • 輸入登錄 < 登錄名稱 > 密碼:這是用來連線至您的容器映像檔登錄 (如 runme-input.yaml 中所指定) 以下載映像檔。
    此命令檔會在 obp-cp 命名空間底下安裝下列服務:
    • control-plane
    • openldap
    • obp-auth-server
    • obp-operator
    • hlf-operator
  7. 將下列行新增至 crc VM 上的 /etc/hosts 檔案。
    <CRC_IP_address> controlplane.<parentDomainName> openldap.<parentDomainName> auth.<parentDomainName>
    在範例中,<CRC_IP_address>crc ip 指令的輸出。
  8. 將下列行新增至電腦上用來連線至「區塊鏈平台管理程式」主控台的 /etc/hosts 檔案。
    <public_vm_ip> controlplane.<parentDomainName> openldap.<parentDomainName> auth.<parentDomainName>
    在範例中,<public_vm_ip> 是 VM 的公用 IP 位址。
  9. 完成以下步驟,從用戶端電腦存取 Blockchain Platform Manager。下列步驟使用 firewalld 允許將內送流量轉送至伺服器,使用 HAProxy 將流量轉送至「OpenShift 本機」執行處理。
    1. 確定 /etc/NetworkManager/conf.d/crc-nm-dnsmasq.conf 組態檔中有下列項目。
      [main]
              dns=dnsmasq
      dnsmasq 執行處理組態檔 /etc/NetworkManager/dnsmasq.d/crc.conf 可能與下列類似:
      server=/crc.testing/198.x.x.x
      server=/apps-crc.testing/198.x.x.x
      198.x.x.xcrc ip 指令的輸出。NetworkManagerdnsmasq 執行處理會將 crc.testingapps-crc.testing 的要求轉送至 198.x.x.x DNS 伺服器。
    2. 輸入下列命令以安裝必要的相依性。
      sudo dnf -y install haproxy policycoreutils-python-utils
    3. 輸入下列命令以設定防火牆。
      sudo systemctl start firewalld
      sudo firewall-cmd --add-port=80/tcp --permanent
      sudo firewall-cmd --add-port=6443/tcp --permanent
      sudo firewall-cmd --add-port=443/tcp --permanent
      sudo systemctl restart firewalld
      sudo semanage port -a -t http_port_t -p tcp 6443
      sudo semanage port -a -t http_port_t -p tcp 6443
    4. 在設定 HAProxy 之前,您必須先知道伺服器的 IP 位址和 Red Hat OpenShift 本機 VM 的 IP 位址。執行下列命令。
      export SERVER_IP=$(hostname --ip-address)
      export CRC_IP=$(crc ip)
      cd /etc/haproxy;sudo cp haproxy.cfg haproxy.cfg.orig
    5. 以下列文字取代 haproxy.cfg 檔案的內容。
      global
      debug
       
      defaults
      log global
      mode http
      timeout connect 0
      timeout client 0
      timeout server 0
       
      frontend apps
      bind SERVER_IP:80
      bind SERVER_IP:443
      option tcplog
      mode tcp
      default_backend apps
       
      backend apps
      mode tcp
      balance roundrobin
      option ssl-hello-chk
      server webserver1 CRC_IP:80 check
      server webserver2 CRC_IP:443 check
       
      frontend api
      bind SERVER_IP:6443
      option tcplog
      mode tcp
      default_backend api
       
      backend api
      mode tcp
      balance roundrobin
      option ssl-hello-chk
      server webserver1 CRC_IP:6443 check
      
    6. 執行下列指令以取代 HAproxy 配置中的 IP 位址,然後啟動 HAproxy
      export CRC_IP=$(crc ip)
      export SERVER_IP=$(hostname --ip-address)
      sudo sed -i "s/CRC_IP/$CRC_IP/g" haproxy.cfg
      sudo sed -i "s/SERVER_IP/$SERVER_IP/g" haproxy.cfg
      sudo systemctl start haproxy

存取區塊鏈平台管理程式

安裝之後,請為產生的「區塊鏈平台管理程式」主機名稱設定主機名稱解析。
  1. 執行下列命令以取得設定的主機名稱清單:
    kubectl get virtualservice -n obp-cp -o json | jq -r .items[].spec.hosts[0]
  2. 將下列項目新增至 VM 上的 /etc/hosts 檔案,以設定這些產生之主機名稱的主機名稱解析至執行中 Red Hat OpenShift 叢集的 IP 位址。
    <IP_Address> controlplane.<parentDomainName> openldap.<parentDomainName> auth.<parentDomainName>
    在範例中,<IP_address>crc ip 指令的輸出。
  3. 請確定 crc VM 安全清單允許來自用戶端主機電腦的連接埠 443、6443 和 80。

您現在可以登入區塊鏈平台管理員 (控制層管理工具) 來建立執行處理。

建立執行處理之後,您必須依照佈建先決條件中的說明設定 DNS 轉送。