Distribuisci Oracle Blockchain Platform Enterprise Edition su Oracle Kubernetes Engine
Prima di distribuire Oracle Blockchain Platform Enterprise Edition, è necessario disporre di un cluster Kubernetes in esecuzione e installare diversi prerequisiti.
Per informazioni dettagliate su Oracle Kubernetes Engine, consulta Oracle Cloud Infrastructure Container Engine for Kubernetes
Crea un cluster di motori Oracle Kubernetes su OCI
| Sviluppo | Produzione con alta disponibilità | |
|---|---|---|
| Versione minima | Versione 1.29.1 | Versione 1.29.1 |
| Tipo nodo | Gestita | Gestita |
| Immagine nodo | Oracle Linux 8 | Oracle Linux 8 |
| CPU nodo | 2 OCPU o versioni successive | 4 OCPU o versioni successive |
| Memoria nodo | 24 GB o superiore | 32 GB o superiore |
| Conteggio nodi | 1 o successiva | 3 o successiva |
| Dimensione del volume di avvio | 100 GB o versione successiva. Il volume di avvio predefinito di 50 GB potrebbe non essere sufficiente per contenere le immagini dei container Oracle Blockchain Platform Enterprise Edition e i dati temporanei per i pod del codice concatenato a causa di uno storage effimero limitato. | 100 GB o versione successiva. Il volume di avvio predefinito di 50 GB potrebbe non essere sufficiente per contenere le immagini dei container Oracle Blockchain Platform Enterprise Edition e i dati temporanei per i pod del codice concatenato a causa di uno storage effimero limitato. |
- Per una maggiore sicurezza, selezionare
Private workersper i nodi di lavoro Kubernetes. - Assicurarsi che i nodi di lavoro dispongano dell'accesso a Internet, necessario per installare i codici concatenati nelle istanze di Oracle Blockchain Platform.
In questa sezione viene illustrato come creare un motore Oracle Kubernetes di esempio su OCI. Per ulteriori opzioni e dettagli, vedere Creazione di cluster Kubernetes mediante i workflow della console
- Eseguire il login alla tenancy OCI selezionando l'area e il compartimento.
- Aprire il menu di navigazione e fare clic su Servizi per sviluppatori. In Container e artifact, fare clic su Cluster Kubernetes (OKE).
- Nella pagina Elenco cluster fare clic su Crea cluster.
- Nella finestra di dialogo Crea cluster, selezionare Creazione rapida e fare clic su Sottometti.
- Nella pagina Crea cluster, accettare i dettagli di configurazione predefiniti per il nuovo cluster oppure specificare alternative come indicato di seguito.
- Nome: il nome del nuovo cluster. Accettare o immettere il nome predefinito desiderato.
- Compartimento: compartimento in cui creare il nuovo cluster e le risorse di rete associate.
- Versione Kubernetes: la versione di Kubernetes da eseguire sui nodi del piano di controllo e sui nodi di lavoro del cluster. La versione v1.29.1 è stata testata con Oracle Blockchain Platform Enterprise Edition.
-
Endpoint API Kubernetes: tipo di accesso all'endpoint API Kubernetes del cluster. Selezionare Pubblico (accessibile direttamente da Internet). Viene creata una subnet regionale pubblica e l'endpoint API Kubernetes viene ospitato in tale subnet. All'endpoint API Kubernetes viene assegnato un indirizzo IP pubblico e un indirizzo IP privato.
- Tipo di nodo: specificare il tipo di nodi di lavoro nel primo pool di nodi del cluster. Selezionare Gestito. Si dispone della responsabilità di gestire i nodi di lavoro nel pool di nodi. I nodi gestiti vengono eseguiti sulle istanze di computazione (bare metal o virtual machine) nella tenancy. Poiché sei responsabile della gestione dei nodi gestiti, hai la flessibilità di configurarli per soddisfare i tuoi requisiti specifici. Sei responsabile dell'upgrade di Kubernetes sui nodi gestiti e della gestione della capacità del cluster.
- Kubernetes: il tipo di accesso ai nodi di lavoro del cluster. Selezionare Privato (accessibile tramite altre subnet VCN). Viene creata una subnet regionale privata per ospitare i nodi di lavoro. Ai nodi di lavoro viene assegnato un indirizzo IP privato.
- Forma del nodo: la forma da utilizzare per ogni nodo nel pool di nodi. La forma determina il numero di CPU e la quantità di memoria allocata a ciascun nodo. La lista mostra solo le forme disponibili nella tenancy supportate da Container Engine for Kubernetes. Oracle Blockchain Platform Enterprise Edition è stato testato con VM.Standard.E3. Flex e VM.Standard.E4. Forme flessibili.
- Immagine: l'immagine da utilizzare sui nodi di lavoro nel pool di nodi gestiti. Un'immagine è un modello di unità fissa virtuale che determina il sistema operativo e un altro software per il pool di nodi gestiti. Oracle Blockchain Platform Enterprise Edition è stato testato con Oracle Linux 8.
- Conteggio nodi: il numero di nodi di lavoro da creare nel pool di nodi, posizionati nella subnet regionale creata per il cluster. Selezionare almeno tre opzioni.
- Volume di avvio: configurare le opzioni di dimensione e cifratura per il volume di avvio del nodo di lavoro. Il volume di avvio predefinito di 50 GB potrebbe non essere sufficiente per contenere le immagini Oracle Blockchain Platform Enterprise Edition e i dati temporanei per i pod del codice concatenato a causa di una memoria effimera limitata. Se si prevede di distribuire più codici concatenati (più di cinque), aumentare il volume di avvio a circa 100 GB.
- Rivedere le opzioni selezionate e fare clic su Crea cluster.
- Assicurarsi che i nodi di lavoro e i pool di nodi siano in esecuzione:
- In Risorse, selezionare Nodi. Per ogni nodo di lavoro, assicurarsi che il nodo sia pronto, attivo e corrisponda alla versione del cluster Kubernetes.
- In Risorse selezionare Pool di nodi. Per il pool di nodi, assicurarsi che il pool sia attivo e corrisponda alla versione del cluster Kubernetes.
Installare l'interfaccia della riga di comando OCI
In questa sezione viene fornita una panoramica di esempio sull'installazione dell'interfaccia della riga di comando OCI. Oracle Blockchain Platform Enterprise Edition è stato testato con la versione 3.42.0. Per ulteriori informazioni, consultare OCI Command Line Interface.
# 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.1Crea sistema responsabile avvio installazione
Impostare l'accesso locale per il cluster
Per ulteriori informazioni, vedere: Impostazione dell'accesso locale ai cluster.
- Copiare la chiave RSA nel sistema Oracle Linux o macOS su cui sono stati installati i prerequisiti. Le chiavi sono disponibili nella console OCI: . Proteggere la chiave:
chmod 400 your_rsa.keySe necessario, è possibile creare una chiave. Fare riferimento alla sezione Come generare una Chiave di Firma API
- Nella console OCI, andare al cluster e aprire la pagina Dettagli cluster.
- Selezionare Cluster di accesso, quindi Accesso locale.
- Creare una directory in cui collocare il file
kubeconfig:mkdir -p $HOME/.kube - Copiare il comando Per accedere alla kubeconfig per il cluster in uso tramite l'endpoint pubblico nativo VCN.
- Eseguire il comando sul sistema Linux o macOS. Poiché il file di configurazione non esiste ancora, verrà richiesto quanto segue:
- Creare un nuovo file di configurazione? [Y/n]: y
- Creare il file di configurazione eseguendo il login tramite un browser? [Y/n]: n
- Immettere una posizione per la configurazione [/home/opc/.oci/config]: selezionare una posizione
- Immettere un OCID utente: è possibile trovare in OCI Console
- Immettere un OCID tenancy: è possibile trovare in OCI Console
- Immettere un'area in base all'indice o al nome: immettere il numero corrispondente all'area della tenancy, ad esempio 12
- Generare una nuova coppia di chiavi RSA per la firma API? Se rifiuti, ti verrà chiesto di fornire il percorso di una chiave esistente. [Y/n]: n
- Immettere la posizione del file di chiavi private di firma API: posizione del file di chiavi RSA creato in precedenza
- Quando viene creato il file di configurazione OCI, è necessario rieseguire il comando copiato Per accedere alla kubeconfig per il cluster tramite il comando endpoint pubblico VCN nativo. Utilizzerà il file di configurazione appena creato.
- Creare una directory in cui collocare il file
- Verificare di poter raggiungere il cluster di Oracle Kubernetes Engine:
kubectl get nodes. Se l'impostazione è corretta, il comando mostrerà tutti i nodi di lavoro nel cluster. - Limitare l'accesso al file di configurazione:
chmod 600 $HOME/.kube/config - Impostare la variabile di ambiente
KUBECONFIGsul file per questo cluster:export KUBECONFIG=$HOME/.kube/config
Nota
Verificare se il file di configurazione OCI dispone di più profili simili al testo seguente:[OCI_PROFILE_A]
fingerprint = .............
key_file = .............
tenancy = .............
region = .............
user = .............
[OCI_PROFILE_B]
fingerprint = .............
key_file = .............
tenancy = .............
region = .............
user = ............. In tal caso, sarà necessario personalizzare il file kubeconfig oppure si verificherà un errore di autorizzazione quando si tenta di installare Oracle Blockchain Platform Enterprise Edition. Nella sezione Utenti del file kubeconfig, aggiungere una riga per specificare l'utente da utilizzare nel file di configurazione OCI. Ad esempio: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: falsedove <OCI_PROFILE_NAME> sarebbe OCI_PROFILE_ACompletare l'installazione Istio
Oracle Blockchain Platform Enterprise Edition supporta la versione 1.20.2 e successive. Prima di eseguire i seguenti comandi, è necessario aver completato la procedura descritta in Installa istio.
# 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)Impostare un token di autenticazione per l'utente
Creare un token di autenticazione per l'utente amministrativo in modo da poter estrarre le immagini dal registro OCI: Generazione di un token di autenticazione per abilitare il login a Oracle Cloud Infrastructure Registry.
Installare Oracle Blockchain Platform Enterprise Edition
- Nella pagina Oracle Blockchain Platform Enterprise Edition fare clic su Scarica e seguire la procedura per scaricare il package Oracle Blockchain Platform Enterprise Edition. Estrarre il pacchetto dal file
.zip, quindi estrarre il pacchetto dal file di archivio scaricato.tar -xzf <distribution-package-file> # example tar -xzf obpee_package_24.1.3-20240723083137.tgz - Aggiornare il file
runme-input.yamlcon i valori richiesti. Il seguente esempio di filerunme-input.yamlpuò essere utilizzato come riferimento:
Nell'esempio precedente, le variabili sono definite come illustrato nell'elenco seguente: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: 1800imageRegistryConfiguration.registry: server del registro contenitore da utilizzare. Esempio:iad.ocir.ioimageRegistryConfiguration.imageTagPrefix: percorso del repository di base del contenitore con il registro, in cui verrà eseguito il push e il pull delle immagini. Esempio:iad.ocir.io/obpee/bcsimageRegistryConfiguration.username: nome utente di login al registro contenitoreimageReleaseVersion- Versione della release Oracle Blockchain Platform Enterprise EditioncontrolPlaneStorage.storageClassName: classe di storage Kubernetes da utilizzare per il PVC (PersistentVolumeClaim). Se vuoto, viene utilizzato il valore predefinitostorageClasscontrolPlaneStorage.size: dimensioni del PVC per i servizi Blockchain Platform Manager (piano di controllo)parentDomainName: nome di dominio da utilizzare per i servizi Blockchain Platform Manager. Esempio:example.comimagePullTimeout: timeout di attesa pull delle immagini in secondi durante l'installazione di Oracle Blockchain Platform Enterprise Edition. L'impostazione predefinita è 1800 secondi.
- Eseguire lo script
runme_oke.sh [--publish-images]seguendo i prompt.Nota
Il comando--publish-imagesfacoltativo carica i contenitori in un registro delle immagini del contenitore, ad esempio Oracle Cloud Infrastructure Registry, utilizzando i dettagli specificati nel filerunme-input.yaml.- Immettere la password predefinita dell'amministratore LDAP (la password non verrà visualizzata): imposta la password dell'amministratore per il server di autenticazione LDAP incorporato.
- Immettere la password utente amministratore del piano di controllo predefinito (la password non verrà visualizzata): imposta la password dell'amministratore di Blockchain Platform Manager.
- Se
StorageClassnon è stato fornito nel filerunme-input.yaml, il sistema controlla se la classe di memorizzazione predefinita è impostata e chiede se si desidera utilizzarla. - Confermare il tipo di servizio gateway in entrata Istio:
LoadBalancerè l'impostazione predefinita. È supportato ancheNodePort. Tenere presente che l'accesso aNodePortsrichiede che il cluster Kubernetes sia stato creato con nodi di lavoro pubblici. Vedere Install Istio. - Confermare la porta https del servizio gateway in entrata Istio: il valore predefinito è 443 per il tipo di servizio
LoadBalancer. - Immettere la password del registro <nome registro>: questa password viene utilizzata per connettersi al registro delle immagini del contenitore (come specificato nel file
runme-input.yaml) per scaricare le immagini.
- Lo script elenca l'URL
Istio-ingressgatewaycome parte dell'output. Registrare l'indirizzo IP indicato. - Lo script installa i seguenti servizi nello spazio di nomi
obp-cp:control-planeopenldapobp-auth-serverobp-operatorhlf-operator
Accedi a Blockchain Platform Manager
- Eseguire il comando seguente per ottenere l'elenco dei nomi host configurati:
kubectl get virtualservice -n obp-cp -o json | jq -r '.items[].spec.hosts[0]' - In base al tipo di servizio scelto per
istio-ingressgateway, questi nomi host generati devono essere risolti in un indirizzo IPv4 in base ai seguenti requisiti:LoadBalancer: consente di risolvere l'indirizzo IP esterno generato per il servizioistio-ingressgateway. Eseguire il comando seguente per ottenere l'indirizzo IP.
Aggiungere la riga seguente al filekubectl get svc/istio-ingressgateway -n istio-system/etc/hosts(Linux, macOS) o al fileC:\Windows\system32\drivers\etc\hosts(Microsoft Windows) sull'host utilizzato per connettersi alla console Blockchain Platform Manager.<public_svc_ip> controlplane.<parentDomainName> openldap.<parentDomainName> auth.<parentDomainName>NodePort: consente di risolvere gli indirizzi IP dei nodi di lavoro.