Despliegue Oracle Blockchain Platform Enterprise Edition en Red Hat OpenShift Local

Puede instalar Oracle Blockchain Platform Enterprise Edition en Red Hat OpenShift Local con fines de prueba y desarrollo interno. No está soportado para entornos de producción.

Red Hat OpenShift Local está diseñado para ejecutarse en una computadora local para simplificar la configuración y las pruebas, y para emular el entorno de desarrollo en la nube localmente con todas las herramientas necesarias para desarrollar aplicaciones basadas en contenedores. Anteriormente se conocía como Red Hat CodeReady Containers.

Para obtener información detallada sobre Red Hat OpenShift Local, consulte Red Hat OpenShift Local.

Requisitos:
  • CPU: 12 o más
  • Memoria: 30 GB o superior
  • Tamaño de disco: 150 GB o superior
  • RedHat OpenShift Local: OpenShift versión 4.15.3 incrustada, CRC (Code Ready Container) versión 2.34.1
  • Sistema operativo: CentOS 8

En esta sección, se proporciona un ejemplo de recorrido virtual por la instalación de las versiones probadas de los requisitos previos. Consulte la documentación de cada producto para obtener información adicional y las modificaciones necesarias en las instrucciones de instalación. El siguiente recorrido virtual se probó con CentOS 8 como sistema operativo. También se pueden utilizar otras distribuciones de Linux, como Oracle Linux o Red Hat Enterprise Linux.

Note:

Al instalar Istio como parte de las tareas de Instalación de software requerido, instale la versión 1.22.1, no la versión más reciente.

Instalación de Red Hat OpenShift Local

Complete los siguientes pasos para descargar e instalar Red Hat OpenShift Local. Para obtener más información, consulte Installing CodeReady Containers.

  1. Vaya a Red Hat OpenShift Local y haga clic en Instalar OpenShift en el portátil. Se le redirige a una página de inicio de sesión donde puede introducir sus credenciales de Red Hat o crear una cuenta si aún no tiene una.
  2. Después de conectarse, haga clic en Clusters y, a continuación, haga clic en el separador Local.
  3. En la página Local, haga clic en Descargar OpenShift Local y, a continuación, en Descargar secreto de extracción.
  4. Copie el paquete crc y el secreto de extracción que descargó en el paso anterior en la máquina virtual. Por ejemplo:
    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. En la máquina virtual, cree un directorio denominado crc y copie el paquete crc y el secreto de extracción en ese directorio.
  6. Instale OpenShift mediante la ejecución del siguiente comando:
    sudo dnf install NetworkManager
    Si se produce un error que comienza con Failed load plugin "osmsplugin": no se muestra ningún módulo denominado 'librepo', ejecute los siguientes comandos y, a continuación, vuelva a ejecutar el comando de instalación.
    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. Ejecute los siguientes comandos para extraer el archivo de almacenamiento:
    cd ~/crc
    tar xvf crc-linux-amd64.tar.xz
  8. Ejecute los siguientes comandos para mover el archivo binario al directorio /bin y actualizar la ruta de acceso:
    mkdir -p ~/bin
    cp ~/crc/crc-linux-*-amd64/crc ~/bin
    export PATH=$PATH:$HOME/bin
    echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

Aumento del espacio en disco en la partición raíz

Si el espacio de partición raíz de VM es inferior a 150 GB, complete los pasos siguientes.

  1. Asegúrese de que el disco de inicio, el sistema de archivos raíz o el gestor de volúmenes lógicos (LVM) tengan al menos 150 GB de espacio libre.
  2. Utilice fdisk para crear una partición del sistema de archivos Linux de al menos 100 GB (en este ejemplo, la nueva partición es /dev/sda4).
    sudo fdisk /dev/sda
  3. Utilice el siguiente comando para agregar el volumen físico a un grupo de volúmenes.
    sudo vgextend centosvolume /dev/sda4
  4. Utilice el siguiente comando para aumentar el tamaño del volumen lógico.
    sudo lvextend -L+99G /dev/mapper/centosvolume-root
  5. Utilice el siguiente comando para aumentar el tamaño del sistema de archivos.
    sudo xfs_growfs /dev/centosvolume/root
    El comando equivalente en Oracle Enterprise Linux es oci_growfs.

Configurar parámetros locales de OpenShift

Ejecute los siguientes comandos para configurar OpenShift Local para que utilice 12 núcleos de CPU, 30 GB de memoria y 100 GB de espacio en disco.

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

Descargar e instalar el cliente OpenShift

Ejecute los siguientes comandos para descargar e instalar oc, el software de cliente 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

Iniciar el Cluster

Ejecute los siguientes comandos para configurar, iniciar y comprobar el estado del cluster. Utilice el secreto de extracción que descargó al descargar Red Hat OpenShift Local.

crc setup 
crc start -p ~/crc/pull-secret.txt
crc status
Una vez finalizada la instalación, se mostrará información similar a la siguiente:
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

Instalación de Oracle Blockchain Platform Enterprise Edition

  1. Complete los siguientes pasos para asegurarse de que Red Hat OpenShift Local esté activo y en ejecución.
    1. Conéctese a la consola.
      oc login -u kubeadmin -p <password> https://api.crc.testing:6443
    2. Verifique que se pueda acceder a Red Hat OpenShift Local.
      oc get nodes
  2. Ejecute el siguiente comando para definir el perfil de Istio. Debe haber completado los pasos de Instalar Istio antes de ejecutar los siguientes comandos.
    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. En la página Oracle Blockchain Platform Enterprise Edition, haga clic en Descargar y, a continuación, siga los pasos para descargar el paquete de Oracle Blockchain Platform Enterprise Edition, que es de aproximadamente 6,5 GB.
  4. Extraiga el archivo de almacenamiento descargado.
    La estructura de carpetas extraída incluye scripts runme para varias plataformas, incluido OpenShift.
  5. Actualice el archivo runme-input.yaml con los valores necesarios. Además, convierta los archivos runme-input.yaml y runme.sh en ejecutables. Asegúrese de que puede conectarse al registro desde la cuenta de usuario que especifique en el archivo runme-input.yaml. El siguiente archivo runme-input.yaml de ejemplo se puede utilizar como referencia:
    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
    Las variables del ejemplo tienen los siguientes valores:
    • imageRegistryConfiguration.registry es el servidor de registro de contenedores que se va a utilizar. Ejemplo: iad.ocir.io
    • imageRegistryConfiguration.imageTagPrefix es la ruta de acceso del repositorio base de contenedor con el registro, donde se transferirán o extraerán las imágenes. Ejemplo: iad.ocir.io/obpee/bcs
    • imageRegistryConfiguration.username es el nombre de usuario de conexión al registro de contenedor.
    • imageReleaseVersion es la versión de Oracle Blockchain Platform Enterprise Edition.
    • controlPlaneStorage.storageClassName es la clase de almacenamiento de Kubernetes que se utilizará para la PVC (PersistentVolumeClaim). Si está vacío, se utiliza el valor por defecto storageClass.
    • controlPlaneStorage.size es el tamaño de PVC para los servicios de Blockchain Platform Manager (plano de control).
    • parentDomainName es el nombre de dominio que se utilizará para los servicios de Blockchain Platform Manager. Ejemplo: example.com.
    • imagePullTimeout es el timeout de espera de recuperación de imagen en segundos durante la instalación de Oracle Blockchain Platform Enterprise Edition. El valor por defecto es de 1800 segundos.
  6. Abra una nueva ventana de terminal y vaya al directorio del paquete de distribución. Siga los pasos indicados en la salida del script.
    1. Ejecute el siguiente comando para que la secuencia de comandos sea ejecutable.
      chmod +x runme_openshift.sh
    2. Ejecute la siguiente secuencia de comandos para transferir los contenedores del archivo de almacenamiento al repositorio especificado y, a continuación, instale el producto.
      ./runme_openshift.sh --publish-images
      Si las imágenes de contenedor ya se han cargado en un repositorio, puede extraerlas del repositorio e instalarlas mediante el siguiente comando.
      ./runme_openshift.sh
    • Introduzca la contraseña de administrador de LDAP por defecto (la contraseña no se mostrará): se utiliza para definir la contraseña del usuario administrador para el servidor de autenticación de LDAP incorporado.
    • Introduzca la contraseña de usuario administrador del plano de control por defecto (la contraseña no se mostrará): se utiliza para definir la contraseña del usuario administrador de Blockchain Platform Manager.
    • Introduzca la contraseña del registro <nombre de registro>: se utiliza para conectarse al registro de imágenes de contenedor (como se especifica en runme-input.yaml) para descargar imágenes.
    La secuencia de comandos instala los siguientes servicios en el espacio de nombres obp-cp:
    • control-plane
    • openldap
    • obp-auth-server
    • obp-operator
    • hlf-operator
  7. Agregue la siguiente línea al archivo /etc/hosts en la máquina virtual crc.
    <CRC_IP_address> controlplane.<parentDomainName> openldap.<parentDomainName> auth.<parentDomainName>
    En el ejemplo, <CRC_IP_address> es la salida del comando crc ip.
  8. Agregue la siguiente línea al archivo /etc/hosts en el equipo que utiliza para conectarse a la consola de Blockchain Platform Manager.
    <public_vm_ip> controlplane.<parentDomainName> openldap.<parentDomainName> auth.<parentDomainName>
    En el ejemplo, <public_vm_ip> es la dirección IP pública de la máquina virtual.
  9. Complete los siguientes pasos para acceder a Blockchain Platform Manager desde una computadora cliente. Los siguientes pasos utilizan firewalld para permitir el tráfico entrante al servidor y HAProxy para reenviar el tráfico a la instancia local OpenShift.
    1. Asegúrese de que la siguiente entrada esté en el archivo de configuración /etc/NetworkManager/conf.d/crc-nm-dnsmasq.conf.
      [main]
              dns=dnsmasq
      El archivo de configuración de instancia dnsmasq, /etc/NetworkManager/dnsmasq.d/crc.conf, puede tener un aspecto similar al siguiente:
      server=/crc.testing/198.x.x.x
      server=/apps-crc.testing/198.x.x.x
      198.x.x.x es la salida del comando crc ip. La instancia dnsmasq de NetworkManager reenvía las solicitudes de crc.testing y apps-crc.testing al servidor DNS 198.x.x.x.
    2. Introduzca el siguiente comando para instalar las dependencias necesarias.
      sudo dnf -y install haproxy policycoreutils-python-utils
    3. Introduzca los siguientes comandos para configurar el 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. Antes de configurar HAProxy, debe conocer la dirección IP del servidor y la dirección IP de la máquina virtual local OpenShift de Red Hat. Ejecute los siguientes comandos.
      export SERVER_IP=$(hostname --ip-address)
      export CRC_IP=$(crc ip)
      cd /etc/haproxy;sudo cp haproxy.cfg haproxy.cfg.orig
    5. Sustituya el contenido del archivo haproxy.cfg por el siguiente texto.
      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. Ejecute los siguientes comandos para sustituir las direcciones IP en la configuración de HAproxy y, a continuación, inicie 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

Acceder a Blockchain Platform Manager

Después de la instalación, configure la resolución de nombre de host para los nombres de host generados de Blockchain Platform Manager.
  1. Ejecute el siguiente comando para obtener la lista de nombres de host configurados:
    kubectl get virtualservice -n obp-cp -o json | jq -r .items[].spec.hosts[0]
  2. Configure la resolución de nombres de host para estos nombres de host generados en la dirección IP del cluster OpenShift de Red Hat en ejecución agregando la siguiente entrada al archivo /etc/hosts en la máquina virtual.
    <IP_Address> controlplane.<parentDomainName> openldap.<parentDomainName> auth.<parentDomainName>
    En el ejemplo, <IP_address> es la salida del comando crc ip.
  3. Asegúrese de que la lista de seguridad de VM crc permita los puertos 443, 6443 y 80 desde el equipo host del cliente.

Ahora puede conectarse a Blockchain Platform Manager (la herramienta de gestión de plano de control) para crear una instancia.

Una vez creada la instancia, debe configurar el reenvío de DNS como se describe en Requisitos posteriores al aprovisionamiento.