Déploiement d'Oracle Blockchain Platform Enterprise Edition sur un cluster sur site Red Hat OpenShift

Avant de déployer Oracle Blockchain Platform Enterprise Edition, vous devez disposer d'un cluster Red Hat OpenShift Enterprise en cours d'exécution et installer plusieurs prérequis.

Les instructions de cette rubrique indiquent comment déployer Oracle Blockchain Platform Enterprise Edition sur Red Hat OpenShift sur site. Avant d'essayer, en particulier pour les environnements de production, vous devez vous familiariser avec la documentation Red Hat OpenShift qui remplace toutes les informations de cette rubrique.

Créer un cluster Red Hat OpenShift

Votre cluster doit répondre aux exigences décrites dans la documentation Red Hat OpenShift décrite ici : OpenShift Container Platform Prerequisites

Spécifications minimales recommandées pour vos noeuds de processus actif de cluster :

  Production avec haute disponibilité
UC de noeud 4 CPU ou plus
Mémoire de noeud 32 Go ou plus
Nombre de noeuds 3 ou supérieur
Taille de volume d'initialisation 100 Go ou plus

Installez l'interface de ligne de commande OpenShift (oc) afin de pouvoir accéder au cluster. Reportez-vous à OpenShift CLI.

Vérifiez que vous êtes connecté à OpenShift.
oc get nodes
Cette commande doit renvoyer la liste des noeuds maître et de processus actif et leur statut.

Installer Oracle Blockchain Platform Enterprise Edition

  1. Définissez le profil istio. Vous devez avoir terminé les étapes de l'installation d'Istio avant d'exécuter les commandes suivantes.
    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"
  2. Téléchargez Oracle Blockchain Platform : Oracle Blockchain Platform.
  3. Extrayez le package ZIP et recherchez le script runme pour OpenShift.
  4. Mettez à jour le fichier runme-input.yaml avec les valeurs requises. L'exemple de fichier runme-input.yaml suivant peut être utilisé comme référence :
    imageRegistryConfiguration:
      registry: <container_registry_name>
      imageTagPrefix: <container-image-repository-prefix>
      username: <container-registry-username>
     
    imageReleaseVersion: 24.1.3-20240723083137
     
    controlPlaneStorage:
      storageClassName: 
      size: 10Gi
      
    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

    Remarques :

    Nous vous recommandons de configurer le registre de conteneurs dans votre environnement afin que les extractions d'image soient plus rapides. Si vous utilisez votre propre registre de conteneurs, utilisez la valeur imageReleaseVersion de 24.1.3-20240723083137.
    Dans l'exemple précédent, les variables sont définies comme indiqué dans la liste suivante :
    • imageRegistryConfiguration.registry : serveur de registre de conteneur à utiliser.
    • imageRegistryConfiguration.imageTagPrefix : chemin du référentiel de base de conteneur avec le registre, à partir duquel les images seront propagées et extraites. Exemple : registryname.rhoscr.io/obpee/bcs
    • imageRegistryConfiguration.username : nom utilisateur de connexion au registre de conteneur.
    • imageReleaseVersion - Version d'Oracle Blockchain Platform Enterprise Edition
    • controlPlaneStorage.storageClassName : classe de stockage Kubernetes à utiliser pour la demande de volume persistant (PersistentVolumeClaim). Si vide, storageClass par défaut est utilisé
    • controlPlaneStorage.size : taille de PVC pour les services Blockchain Platform Manager (plan de contrôle)
    • parentDomainName : nom de domaine à utiliser pour les services Blockchain Platform Manager. Exemple : example.com. Les URL Blockchain Platform Manager et de console de service contiendront ce nom de domaine.
    • imagePullTimeout : délai d'attente d'extraction d'image en secondes lors de l'installation d'Oracle Blockchain Platform Enterprise Edition. La valeur par défaut est 1800 seconde.
  5. Ouvrez runme_openshift.sh dans un éditeur et mettez en commentaire les deux lignes suivantes :
    • openshift_status_check
    • check_software_exists "crc"
  6. Exécutez runme_openshift.sh et suivez les étapes indiquées ci-après :
    chmod +x runme_openshift.sh
    
    ./runme_openshift.sh --publish-images
    # The publish-images option uploads the containers to the container image registry specified in runme-input.yaml
    # Running the script without this option pulls images you've already pre-uploaded from the repository specified in runme-input.yaml
    Les invites que vous rencontrerez :
    • Entrez le mot de passe d'administrateur OpenLDAP. Il sera utilisé par Blockchain Platform Manager et les utilisateurs seront créés sur ce serveur OpenLDAP.
    • Entrez le mot de passe de l'administrateur de plan de contrôle. Ce mot de passe sera destiné à l'administrateur Oracle Blockchain Platform et sera utilisé pour la première connexion à la console Blockhain Platform Manager.
    • Entrez le mot de passe de connexion au registre pour l'utilisateur indiqué dans run-input.yaml : utilisé pour la connexion au référentiel de conteneurs.
    • Le script installe les services suivants sous l'espace de noms obp-cp :
      • control-plane
      • openldap
      • obp-auth-server
      • obp-operator
      • hlf-operator
  7. Obtenez l'adresse IP externe du service de passerelle entrante Istio :
    kubectl get svc/istio-ingressgateway -n istio-system
  8. Ajoutez la ligne suivante à l'un des fichiers suivants sur l'hôte utilisé pour la connexion à la console Blockchain Platform Manager :
    • Linux ou macOS : /etc/hosts
    • Windows : C:\Windows\system32\drivers\etc\hosts
    <public_svc_ip> controlplane.<parentDomainName> openldap.<parentDomainName> auth.<parentDomainName>
    <public_svc_ip> est l'adresse IP externe publique de l'étape précédente.

Postrequis

Vous êtes maintenant prêt à vous connecter à Oracle Blockchain Platform pour la première fois et à provisionner une instance.