Distribuire Oracle Blockchain Platform Enterprise Edition su Red Hat OpenShift Locale

È possibile installare Oracle Blockchain Platform Enterprise Edition su Red Hat OpenShift Local a scopo di test e sviluppo interno. Non è supportato per gli ambienti di produzione.

Red Hat OpenShift Local è progettato per essere eseguito su un computer locale per semplificare la configurazione e il test e per emulare l'ambiente di sviluppo cloud a livello locale con tutti gli strumenti necessari per sviluppare applicazioni basate su container. In precedenza era noto come Red Hat CodeReady Containers.

Per informazioni dettagliate su Red Hat OpenShift Local, vedere Red Hat OpenShift Local.

Prerequisiti:
  • CPU: 12 o più
  • Memoria: 30 GB o superiore
  • Dimensione disco: 150 GB o superiore
  • RedHat OpenShift Locale - Embedded OpenShift versione 4.15.3, CRC (Code Ready Container) versione 2.34.1
  • Sistema operativo: CentOS 8

Questa sezione fornisce un esempio di procedura dettagliata per installare le versioni testate dei prerequisiti. Per ulteriori informazioni ed eventuali modifiche necessarie alle istruzioni di installazione, consultare la documentazione di ciascun prodotto. La seguente procedura guidata è stata testata utilizzando CentOS 8 come sistema operativo. È possibile utilizzare anche altre distribuzioni di Linux, come Oracle Linux o Red Hat Enterprise Linux.

Nota

Quando si installa Istio nell'ambito delle attività di installazione di software prerequisito, installare la versione 1.22.1, non l'ultima.

Installare Red Hat OpenShift locale

Completa i seguenti passaggi per scaricare e installare Red Hat OpenShift Local. Per ulteriori informazioni, vedere Installazione di contenitori CodeReady.

  1. Passare a Red Hat OpenShift Local e fare clic su Installa OpenShift sul laptop. Si viene reindirizzati a una pagina di login in cui è possibile immettere le credenziali Red Hat o creare un account se non ne si dispone già.
  2. Dopo aver eseguito il login, fare clic su Cluster, quindi fare clic sulla scheda Locale.
  3. Nella pagina Locale fare clic su Scarica OpenShift locale, quindi su Scarica segreto pull.
  4. Copiare il pacchetto crc e il segreto pull scaricato nel passo precedente nella VM. Ad esempio:
    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. Nella VM creare una directory denominata crc e copiare il pacchetto crc e il segreto pull in tale directory.
  6. Installare OpenShift eseguendo il seguente comando:
    sudo dnf install NetworkManager
    Se si verifica un errore durante l'avvio con Failed loading plugin "osmsplugin": non viene visualizzato alcun modulo denominato 'librepo', eseguire i comandi seguenti e quindi eseguire di nuovo il comando di installazione.
    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. Per estrarre il file di archivio, eseguire i comandi indicati di seguito.
    cd ~/crc
    tar xvf crc-linux-amd64.tar.xz
  8. Eseguire i comandi seguenti per spostare il file binario nella directory /bin e aggiornare il percorso:
    mkdir -p ~/bin
    cp ~/crc/crc-linux-*-amd64/crc ~/bin
    export PATH=$PATH:$HOME/bin
    echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

Aumentare lo spazio su disco nella partizione root

Se lo spazio della partizione radice della VM è inferiore a 150 GB, effettuare le operazioni riportate di seguito.

  1. Verificare che il disco di boot, il file system root o il Logical Volume Manager (LVM) dispongano di almeno 150 GB di spazio libero.
  2. Utilizzare fdisk per creare una partizione del file system Linux di almeno 100 GB (in questo esempio, la nuova partizione è /dev/sda4).
    sudo fdisk /dev/sda
  3. Usare il comando seguente per aggiungere il volume fisico a un gruppo di volumi.
    sudo vgextend centosvolume /dev/sda4
  4. Utilizzare il comando seguente per aumentare le dimensioni del volume logico.
    sudo lvextend -L+99G /dev/mapper/centosvolume-root
  5. Usare il comando seguente per aumentare le dimensioni del file system.
    sudo xfs_growfs /dev/centosvolume/root
    Il comando equivalente su Oracle Enterprise Linux è oci_growfs.

Configurare i parametri locali OpenShift

Eseguire i comandi seguenti per configurare OpenShift Local in modo che utilizzi 12 memorie centrali CPU, 30 GB di memoria e 100 GB di spazio su disco.

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

Scarica e installa il client OpenShift

Eseguire i comandi seguenti per scaricare e installare oc, il software client 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

Avvia cluster

Eseguire i comandi seguenti per impostare, avviare e controllare lo stato del cluster. Utilizzare il segreto pull scaricato durante il download di Red Hat OpenShift Local.

crc setup 
crc start -p ~/crc/pull-secret.txt
crc status
Una volta completata l'installazione, verranno visualizzate informazioni simili alle seguenti:
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

Installa Oracle Blockchain Platform Enterprise Edition

  1. Completare i seguenti passaggi per garantire che Red Hat OpenShift Local sia attivo e in esecuzione.
    1. Eseguire il login alla console.
      oc login -u kubeadmin -p <password> https://api.crc.testing:6443
    2. Verificare che Red Hat OpenShift Local sia raggiungibile.
      oc get nodes
  2. Eseguire il comando seguente per impostare il profilo Istio. Prima di eseguire i seguenti comandi, è necessario aver completato la procedura descritta in Installa 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. Nella pagina Oracle Blockchain Platform Enterprise Edition, fare clic su Scarica e quindi eseguire i passi per scaricare il package Oracle Blockchain Platform Enterprise Edition, ovvero circa 6,5 GB.
  4. Estrarre il file di archivio scaricato.
    La struttura delle cartelle estratte include script runme per varie piattaforme, tra cui OpenShift.
  5. Aggiornare il file runme-input.yaml con i valori richiesti. Inoltre, rendere eseguibili i file runme-input.yaml e runme.sh. Assicurarsi di poter eseguire il login al registro dall'account utente specificato nel file runme-input.yaml. Il file runme-input.yaml di esempio seguente può essere utilizzato come riferimento:
    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
    Le variabili nell'esempio hanno i valori seguenti:
    • imageRegistryConfiguration.registry è il server del registro contenitore da utilizzare. Esempio: iad.ocir.io
    • imageRegistryConfiguration.imageTagPrefix è il percorso del repository di base del contenitore con il registro, in cui le immagini verranno inviate o estratte. Esempio: iad.ocir.io/obpee/bcs
    • imageRegistryConfiguration.username è il nome utente di login del registro contenitore.
    • imageReleaseVersion è la versione della release di Oracle Blockchain Platform Enterprise Edition.
    • controlPlaneStorage.storageClassName è la classe di storage Kubernetes da utilizzare per il PVC (PersistentVolumeClaim). Se vuoto, viene utilizzato il valore predefinito storageClass.
    • controlPlaneStorage.size è la dimensione del PVC per i servizi Blockchain Platform Manager (piano di controllo).
    • parentDomainName è il nome di dominio da utilizzare per i servizi Blockchain Platform Manager. Esempio: example.com.
    • imagePullTimeout indica il timeout di attesa dell'estrazione dell'immagine in secondi durante l'installazione di Oracle Blockchain Platform Enterprise Edition. L'impostazione predefinita è 1800 secondi.
  6. Aprire una nuova finestra di terminale e andare alla directory del pacchetto di distribuzione. Attenersi alla procedura richiesta dall'output dello script.
    1. Eseguire il comando seguente per rendere eseguibile lo script.
      chmod +x runme_openshift.sh
    2. Eseguire lo script seguente per eseguire il push dei contenitori nel file di archivio nel repository specificato, quindi installare il prodotto.
      ./runme_openshift.sh --publish-images
      Se le immagini del contenitore sono già state caricate in un repository, è possibile estrarle dal repository e installarle utilizzando il comando seguente.
      ./runme_openshift.sh
    • Immettere la password amministratore LDAP predefinita (la password non verrà visualizzata): viene utilizzata per impostare la password dell'utente amministratore per il server di autenticazione LDAP incorporato.
    • Immettere la password utente amministratore del piano di controllo predefinito (la password non verrà visualizzata): viene utilizzata per impostare la password dell'utente amministratore di Blockchain Platform Manager.
    • Immettere la password del registro <nome registro>: viene utilizzata per connettersi al registro delle immagini del contenitore (come specificato in runme-input.yaml) per scaricare le immagini.
    Lo script installa i seguenti servizi nello spazio di nomi obp-cp:
    • control-plane
    • openldap
    • obp-auth-server
    • obp-operator
    • hlf-operator
  7. Aggiungere la riga seguente al file /etc/hosts nella VM crc.
    <CRC_IP_address> controlplane.<parentDomainName> openldap.<parentDomainName> auth.<parentDomainName>
    Nell'esempio, <CRC_IP_address> è l'output del comando crc ip.
  8. Aggiungere la riga seguente al file /etc/hosts del computer utilizzato per connettersi alla console di Blockchain Platform Manager.
    <public_vm_ip> controlplane.<parentDomainName> openldap.<parentDomainName> auth.<parentDomainName>
    Nell'esempio, <public_vm_ip> è l'indirizzo IP pubblico della VM.
  9. Completare la procedura riportata di seguito per accedere a Blockchain Platform Manager da un computer client. La procedura riportata di seguito utilizza firewalld per consentire il traffico in entrata al server e HAProxy per inoltrare il traffico all'istanza locale OpenShift.
    1. Accertarsi che la voce seguente si trovi nel file di configurazione /etc/NetworkManager/conf.d/crc-nm-dnsmasq.conf.
      [main]
              dns=dnsmasq
      Il file di configurazione dell'istanza dnsmasq, /etc/NetworkManager/dnsmasq.d/crc.conf, potrebbe avere un aspetto simile al seguente:
      server=/crc.testing/198.x.x.x
      server=/apps-crc.testing/198.x.x.x
      198.x.x.x è l'output del comando crc ip. L'istanza dnsmasq di NetworkManager inoltra le richieste per crc.testing e apps-crc.testing al server DNS 198.x.x.x.
    2. Inserire il comando seguente per installare le dipendenze richieste.
      sudo dnf -y install haproxy policycoreutils-python-utils
    3. Immettere i comandi riportati di seguito per configurare il firewall.
      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. Prima di configurare HAProxy, è necessario conoscere l'indirizzo IP del server e l'indirizzo IP della VM locale Red Hat OpenShift. Eseguire i comandi indicati di seguito.
      export SERVER_IP=$(hostname --ip-address)
      export CRC_IP=$(crc ip)
      cd /etc/haproxy;sudo cp haproxy.cfg haproxy.cfg.orig
    5. Sostituire il contenuto del file haproxy.cfg con il testo seguente.
      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. Eseguire i comandi seguenti per sostituire gli indirizzi IP nella configurazione HAproxy, quindi avviare 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

Accedi a Blockchain Platform Manager

Dopo l'installazione, configurare la risoluzione dei nomi host per i nomi host Blockchain Platform Manager generati.
  1. Eseguire il comando seguente per ottenere la lista dei nomi host configurati:
    kubectl get virtualservice -n obp-cp -o json | jq -r .items[].spec.hosts[0]
  2. Configurare la risoluzione dei nomi host per questi nomi host generati all'indirizzo IP del cluster Red Hat OpenShift in esecuzione aggiungendo la voce seguente al file /etc/hosts nella VM.
    <IP_Address> controlplane.<parentDomainName> openldap.<parentDomainName> auth.<parentDomainName>
    Nell'esempio, <IP_address> è l'output del comando crc ip.
  3. Assicurarsi che la lista di sicurezza VM crc consenta le porte 443, 6443 e 80 dal computer host client.

È ora possibile accedere a Blockchain Platform Manager (strumento di gestione del piano di controllo) per creare un'istanza.

Dopo aver creato l'istanza, è necessario configurare l'inoltro DNS come descritto in Postiquisiti di provisioning.