Déployez Oracle Blockchain Platform Enterprise Edition sur Oracle Kubernetes Engine

Avant de déployer Oracle Blockchain Platform Enterprise Edition, vous devez avoir une grappe Kubernetes en cours d'exécution et vous devez installer plusieurs préalables.

Pour des informations détaillées sur Oracle Kubernetes Engine, voir Oracle Cloud Infrastructure Container Engine for Kubernetes

Créer une grappe Oracle Kubernetes Engine sur OCI

Spécifications minimales recommandées pour votre grappe Oracle Kubernetes Engine :
  Développement Production avec haute disponibilité
Version minimale v1.29.1 v1.29.1
Type de noeud Gérée Gérée
Image de noeud Oracle Linux 8 Oracle Linux 8
UC du noeud 2 OCPU ou plus 4 OCPU ou plus
Mémoire du noeud 24 Go ou plus 32 Go ou plus
Nombre de noeuds 1 ou plus 3 ou plus
Taille du volume de démarrage 100 Go ou plus. Le volume de démarrage par défaut de 50 Go peut ne pas être suffisant pour contenir les images de conteneur Oracle Blockchain Platform Enterprise Edition et les données temporaires pour les pods de code de chaîne en raison d'un stockage éphémère limité. 100 Go ou plus. Le volume de démarrage par défaut de 50 Go peut ne pas être suffisant pour contenir les images de conteneur Oracle Blockchain Platform Enterprise Edition et les données temporaires pour les pods de code de chaîne en raison d'un stockage éphémère limité.
  • Pour une sécurité accrue, sélectionnez Private workers pour les noeuds de travail Kubernetes.
  • S'assurer que les nœuds de travail ont accès à Internet, ce qui est nécessaire pour installer des codes de chaîne sur vos instances Oracle Blockchain Platform.

Cette section décrit comment créer un exemple de moteur Oracle Kubernetes sur OCI. Pour plus d'options et de détails, voir Création de grappes Kubernetes à l'aide des flux de travail de la console

  1. Connectez-vous à votre location OCI et sélectionnez votre région et votre compartiment.
  2. Ouvrez le menu de navigation et cliquez sur Services de développement. Sous Conteneurs et artefacts, cliquez sur Clusters (Kubernetes).
  3. Dans la page Liste de grappes, cliquez sur Créer une grappe.
  4. Dans la boîte de dialogue Créer une grappe, sélectionnez Création rapide et cliquez sur Soumettre.
  5. Dans la page Créer une grappe, acceptez les détails de configuration par défaut pour la nouvelle grappe ou spécifiez-en d'autres comme suit :
    • Nom : Nom de la nouvelle grappe. Acceptez le nom par défaut ou entrez un nom de votre choix.
    • compartiment : compartiment dans lequel créer la grappe et les ressources de réseau associées.
    • Version de Kubernetes : Version de Kubernetes à exécuter sur les noeuds de plan de contrôle et les noeuds de travail de la grappe. La version v1.29.1 a été testée avec Oracle Blockchain Platform Enterprise Edition.
    • Point d'extrémité d'API Kubernetes : Type d'accès au point d'extrémité de la grappe. Sélectionnez Public (accessible directement à partir d'Internet). Un sous-réseau régional public est créé et le point d'extrémité de l'API Kubernetes est hébergé dans ce sous-réseau. Le point d'extrémité de l'API Kubernetes se voit affecter une adresse IP publique et une adresse IP privée.

    • Type de noeud : Spécifiez le type des noeuds de travail dans le premier groupe de noeuds de la grappe. Sélectionnez Géré. Vous êtes responsable de la gestion des noeuds de travail dans le groupe de noeuds. Les noeuds gérés s'exécutent sur des instances de calcul (sans système d'exploitation ou sur machine virtuelle) de votre location. Comme vous êtes responsable de la gestion des noeuds gérés, vous avez la possibilité de les configurer pour répondre à vos besoins spécifiques. Vous êtes responsable de la mise à niveau de Kubernetes sur les noeuds gérés et de la gestion de la capacité de la grappe.
    • Noeuds de travail Kubernetes : Type d'accès aux noeuds de travail de la grappe. Sélectionnez Privé (accessible au moyen d'autres sous-réseaux de VCN). Un sous-réseau régional privé est créé pour héberger les noeuds de travail. Une adresse IP privée est attribuée aux noeuds de travail.
    • Forme de noeud : forme à utiliser pour chaque noeud du groupe de noeuds. La forme détermine le nombre d'UC et la quantité de mémoire affectés à chaque noeud. La liste présente seulement les formes disponibles dans votre location qui sont prises en charge par Container Engine pour Kubernetes. Oracle Blockchain Platform Enterprise Edition a été testé avec VM.Standard.E3. Flex et VM.Standard.E4. Formes flexibles.
    • Image : Image à utiliser sur les noeuds de travail du groupe de noeuds gérés. Une image est un modèle de disque dur virtuel qui détermine le système d'exploitation et les autres logiciels du groupe de noeuds gérés. Oracle Blockchain Platform Enterprise Edition a été testé avec Oracle Linux 8.
    • Nombre de noeuds : Nombre de noeuds de travail à créer dans le groupe de noeuds, placés dans le sous-réseau régional créé pour la grappe. Sélectionnez trois ou plus.
    Sélectionnez les options avancées suivantes :
    • Volume de démarrage : Configurez la taille et les options de chiffrement pour le volume de démarrage du noeud de travail. Le volume de démarrage par défaut de 50 Go peut ne pas être suffisant pour contenir des images Oracle Blockchain Platform Enterprise Edition et des données temporaires pour les pods de chaîne en raison d'un stockage éphémère limité. Si vous prévoyez de déployer plusieurs codes de chaîne (plus de cinq), augmentez le volume de démarrage à environ 100 Go.
  6. Vérifiez les options que vous avez sélectionnées et cliquez sur Créer une grappe.
  7. Assurez-vous que vos noeuds de travail et groupes de noeuds sont en cours d'exécution :
    • Sous Ressources, sélectionnez Noeuds. Pour chaque noeud de travail, assurez-vous que le noeud est prêt, actif et correspond à la version de la grappe Kubernetes.
    • Sous Ressources, sélectionnez Groupes de noeuds. Pour votre groupe de noeuds, assurez-vous que le groupe est actif et correspond à la version de la grappe Kubernetes.

Installer l'interface de ligne de commande d'OCI

Cette section fournit un exemple de présentation de l'installation de l'interface de ligne de commande OCI. Oracle Blockchain Platform Enterprise Edition a été testé avec la version 3.42.0. Pour plus d'informations, voir Interface de ligne de commande OCI.

# Install:
    sudo dnf -y install oraclelinux-developer-release-el8
    sudo dnf -y install python36-oci-cli
 
# Verify:
    $ oci --version
    3.42.0
# Install:

    brew update && brew install oci-cli

## If this fails with "Error: python@3.12: the bottle needs the Apple Command Line Tools to be installed.", run below command:

    xcode-select --install

# Verify:
   oci --version
   3.43.1

Créer un système d'initiateur d'installation

Configurer l'accès local pour la grappe

Pour plus d'informations, voir : Configuration de l'accès local aux grappes.

  1. Copiez votre clé RSA vers le système Oracle Linux ou macOS sur lequel vous avez installé les préalables. Vos clés se trouvent dans la console OCI : Identité, puis Domaines, puis Domaine OracleIdentityCloudService, puis Utilisateurs, puis Nom d'utilisateur, puis Clés d'API. Sécurisez la clé : chmod 400 your_rsa.key

    Vous pouvez créer une clé si nécessaire. Voir Comment générer une clé de signature d'API

  2. Dans la console OCI, allez à votre grappe et ouvrez la page Détails de la grappe.
  3. Sélectionnez Accéder à la grappe, puis Accès local.
    1. Créez un répertoire pour le fichier kubeconfig : mkdir -p $HOME/.kube
    2. Copiez Pour accéder au fichier kubeconfig pour votre grappe au moyen de la commande de point d'extrémité public natif du VCN.
    3. Exécutez la commande sur votre système Linux ou macOS. Comme le fichier de configuration n'existe pas encore, vous êtes invité à indiquer les informations suivantes :
      • Voulez-vous créer un nouveau fichier de configuration? [Y/n] : y
      • Voulez-vous créer votre fichier de configuration en vous connectant au moyen d'un navigateur? [Y/n] : n
      • Entrez un emplacement pour votre configuration [/home/opc/.oci/config] : sélectionnez un emplacement
      • Entrer l'OCID d'un utilisateur : se trouve dans la console OCI
      • Entrez l'OCID d'une location : se trouve dans la console OCI
      • Entrez une région par index ou nom : Entrez le numéro correspondant à la région de votre location, par exemple 12
      • Voulez-vous générer une nouvelle paire de clés RSA de signature d'API? Si vous refusez, il vous sera demandé de fournir le chemin d'une clé existante. [Y/n] : n
      • Entrez l'emplacement du fichier de clé privée de signature d'API : emplacement du fichier de clé RSA créé ci-dessus
      Cela crée un fichier de configuration qui donne à la machine virtuelle du plan de contrôle Kubernetes l'accès à la grappe hébergée sur OCI.
    4. Lorsque le fichier de configuration OCI est créé, vous devez réexécuter la copie Pour accéder au fichier kubeconfig pour votre grappe au moyen de la commande de point d'extrémité public natif du VCN. Il utilisera le fichier de configuration que vous venez de créer.
  4. Vérifiez que vous pouvez accéder à la grappe du moteur Oracle Kubernetes : kubectl get nodes. Si la configuration est correcte, la commande affiche tous les noeuds de travail de votre grappe.
  5. Restreindre l'accès au fichier de configuration : chmod 600 $HOME/.kube/config
  6. Réglez la variable d'environnement KUBECONFIG au fichier pour cette grappe : export KUBECONFIG=$HOME/.kube/config

Note :

Vérifiez si votre fichier de configuration OCI comporte plusieurs profils similaires au texte suivant :
[OCI_PROFILE_A]
fingerprint = .............
key_file = .............
tenancy = .............
region = .............
user = .............

[OCI_PROFILE_B] 
fingerprint = ............. 
key_file = .............
tenancy = .............
region = .............
user = ............. 
Si tel est le cas, vous devrez personnaliser le fichier kubeconfig ou vous obtiendrez une erreur d'autorisation lorsque vous tenterez d'installer Oracle Blockchain Platform Enterprise Edition. Dans la section Utilisateurs du fichier kubeconfig, ajoutez une ligne pour spécifier l'utilisateur à utiliser dans votre fichier de configuration OCI. Par exemple
users:
- name: user-c3xxxxxq
  user:
    exec:
      apiVersion: client.authentication.k8s.io/v1beta1
      args:
      - ce
      - cluster
      - generate-token
      - --cluster-id
      - ocid1.cluster.oc1.eu-frankfurt-1.aaaaaaxxxxxxxxxyyyyyy
      - --region
      - eu-frankfurt-1
      - --profile
      - <OCI_PROFILE_NAME>
      command: oci
      env: []
      interactiveMode: IfAvailable
      provideClusterInfo: false
<OCI_PROFILE_NAME> serait OCI_PROFILE_A

Terminer l'installation Istio

Oracle Blockchain Platform Enterprise Edition prend en charge les versions 1.20.2 et ultérieures. Vous devez avoir terminé les étapes sous Installer Istio avant d'exécuter les commandes suivantes.


# 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)

Configurer un jeton d'authentification pour votre utilisateur

Créez un jeton d'authentification pour votre administrateur afin de pouvoir extraire des images du registre OCI : Génération d'un jeton d'authentification pour activer la connexion à Oracle Cloud Infrastructure Registry.

Installer Oracle Blockchain Platform Enterprise Edition

  1. Dans la page Oracle Blockchain Platform Enterprise Edition, cliquez sur Télécharger et suivez les étapes pour télécharger l'ensemble Oracle Blockchain Platform Enterprise Edition. Extrayez l'ensemble à partir du fichier .zip, puis extrayez l'ensemble à partir du fichier d'archives téléchargé.
    tar -xzf <distribution-package-file>
    # example tar -xzf obpee_package_24.1.3-20240723083137.tgz
  2. 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
     
    # 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
    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. Exemple : iad.ocir.io
    • imageRegistryConfiguration.imageTagPrefix : Chemin du référentiel de base de conteneur avec le registre, où les images seront poussées et extraites. Exemple : iad.ocir.io/obpee/bcs
    • imageRegistryConfiguration.username : Nom d'utilisateur de connexion au registre de conteneurs
    • imageReleaseVersion - Version d'Oracle Blockchain Platform Enterprise Edition
    • controlPlaneStorage.storageClassName : Classe de stockage Kubernetes à utiliser pour la revendication de volume persistant (PersistentVolumeClaim). Si vide, la valeur par défaut storageClass est utilisée
    • controlPlaneStorage.size : Taille de revendication de volume persistant pour les services de gestionnaire de plate-forme de chaîne de blocs (plan de contrôle)
    • parentDomainName : Nom de domaine à utiliser pour les services Blockchain Platform Manager. Exemple : example.com
    • imagePullTimeout : Temporisation d'attente d'extraction d'image en quelques secondes lors de l'installation d'Oracle Blockchain Platform Enterprise Edition. La valeur par défaut est 1800 secondes.
  3. Exécutez le script runme_oke.sh [--publish-images], en suivant les invites.

    Note :

    La commande facultative --publish-images charge les conteneurs dans un registre d'images de conteneur tel qu'Oracle Cloud Infrastructure Registry à l'aide des détails spécifiés dans le fichier runme-input.yaml.
    • Entrez le mot de passe par défaut de l'administrateur LDAP (le mot de passe ne sera pas affiché) : définit le mot de passe de l'administrateur pour le serveur d'authentification LDAP intégré.
    • Entrez le mot de passe par défaut de l'administrateur du plan de contrôle (le mot de passe ne sera pas affiché) : définit le mot de passe de l'administrateur de Blockchain Platform Manager.
    • Si StorageClass n'a pas été fourni dans le fichier runme-input.yaml, le système vérifie si la classe de stockage par défaut est définie et vous demande si vous voulez l'utiliser.
    • Confirmez le type de service de passerelle de trafic entrant Istio : LoadBalancer est la valeur par défaut. NodePort est également pris en charge. Notez que l'accès à NodePorts nécessite que la grappe Kubernetes ait été créée avec des noeuds de travail publics. Voir Installer Istio.
    • Confirmez le port https du service de passerelle entrante Istio : la valeur par défaut est 443 pour le type de service LoadBalancer.
    • Entrez le mot de passe du registre <registry name> : Ce mot de passe est utilisé pour se connecter à votre registre d'images de conteneur (tel que spécifié dans le fichier runme-input.yaml) afin de télécharger des images.
  4. Le script répertorie l'URL Istio-ingressgateway dans la sortie. Enregistrez l'adresse IP indiquée.
  5. Le script installe les services suivants sous l'espace de noms obp-cp :
    • control-plane
    • openldap
    • obp-auth-server
    • obp-operator
    • hlf-operator

Accéder au gestionnaire de plate-forme de chaîne de blocs

Après l'installation, configurez la résolution du nom d'hôte pour les noms d'hôte Blockchain Platform Manager générés.
  1. Exécutez la commande suivante pour obtenir la liste des noms d'hôte configurés :
    kubectl get virtualservice -n obp-cp -o json | jq -r '.items[].spec.hosts[0]'
  2. En fonction du type de service sélectionné pour istio-ingressgateway, ces noms d'hôte générés doivent être résolus en une adresse IPv4 selon les exigences suivantes :
    • LoadBalancer : Effectuez la résolution à l'adresse IP externe générée pour le service istio-ingressgateway. Exécutez la commande suivante pour obtenir l'adresse IP .
      kubectl get svc/istio-ingressgateway -n istio-system
      Ajoutez la ligne suivante au fichier /etc/hosts (Linux, macOS) ou C:\Windows\system32\drivers\etc\hosts (Microsoft Windows) sur l'hôte utilisé pour la connexion à la console Blockchain Platform Manager.
      <public_svc_ip> controlplane.<parentDomainName> openldap.<parentDomainName> auth.<parentDomainName>
    • NodePort : Effectuez une résolution vers les adresses IP des noeuds de travail.