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 di diversi prerequisiti installati.
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 di 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 superiore. Il volume di avvio predefinito di 50 GB potrebbe non essere sufficiente per contenere le immagini del contenitore Oracle Blockchain Platform Enterprise Edition e i dati temporanei per i pod del codice concatenato a causa dello storage effimero limitato. | 100 GB o superiore. Il volume di avvio predefinito di 50 GB potrebbe non essere sufficiente per contenere le immagini del contenitore Oracle Blockchain Platform Enterprise Edition e i dati temporanei per i pod del codice concatenato a causa dello storage effimero limitato. |
- Per aumentare la sicurezza, abbiamo consigliato di utilizzare
Private workers
per i nodi di lavoro Kubernetes - Assicurarsi che i nodi di lavoro abbiano accesso a Internet, necessario per l'installazione dei codici concatenati nelle istanze di Oracle Blockchain Platform.
In questa sezione verrà illustrata la creazione di 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 solo i dettagli di configurazione predefiniti per il nuovo cluster oppure specificare le 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, posizionato nella subnet regionale creata per il cluster. Selezionare 3 o più.
- Volume di boot: configurare le opzioni di dimensione e cifratura per il volume di boot del nodo di lavoro. Il volume di avvio predefinito di 50 GB potrebbe non essere sufficiente per contenere le immagini di Oracle Blockchain Platform Enterprise Edition e i dati temporanei per i pod del codice concatenato a causa dello storage effimero limitato. Se prevedi di distribuire diversi codici concatenati (più di 5), ti suggeriamo di 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 corrispondente 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.1
Crea 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 computer Oracle Linux o macOS in cui sono stati installati i prerequisiti. Le chiavi sono disponibili nella console OCI:
chmod 400 your_rsa.key
Se necessario, è possibile creare una nuova chiave. Vedere How to Generate a API Signing Key
. Proteggere la chiave: - Nella console OCI, andare al cluster e aprire la pagina Dettagli cluster.
- Selezionare Cluster di accesso, quindi Accesso locale.
- Creare una directory che contenga 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 computer Linux o macOS. Poiché il file di configurazione non esiste ancora, verrà richiesto di eseguire le operazioni riportate di seguito.
- 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 Per accedere alla kubeconfig per il cluster tramite l'endpoint pubblico nativo VCN copiato. Verrà utilizzato il file di configurazione appena creato.
- Creare una directory che contenga il file kubeconfig:
- Verificare che sia possibile raggiungere il cluster di Oracle Kubernetes Engine:
kubectl get nodes
. Se l'impostazione è corretta, il comando restituirà tutti i nodi di lavoro nel cluster. - Limitare l'accesso al file di configurazione:
chmod 600 $HOME/.kube/config
- Impostare la variabile di ambiente KUBECONFIG sul file per questo cluster:
export KUBECONFIG=$HOME/.kube/config
Nota
Se il file di configurazione OCI ha più profili simili ai seguenti:[OCI_PROFILE_A]
fingerprint = .............
key_file = .............
tenancy = .............
region = .............
user = .............
[OCI_PROFILE_B]
fingerprint = .............
key_file = .............
tenancy = .............
region = .............
user = .............
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: false
dove <OCI_PROFILE_NAME>
sarebbe OCI_PROFILE_A
Completare l'installazione Istio
Oracle Blockchain Platform Enterprise Edition supporta la versione 1.20.2 e successive. È necessario aver completato la procedura descritta in Installa Istio prima di completare quanto segue.
# 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 i passi per scaricare il pacchetto Oracle Blockchain Platform Enterprise Edition. Decomprimere il pacchetto, quindi estrarlo dal file di archivio scaricato.
tar -xzf <distribution-package-file> # example tar -xzf obpee_package_24.1.3-20240723083137.tgz
- Aggiornare
runme-input.yaml
con i valori richiesti. Questo è un esempio dirunme-input.yaml
che può essere utilizzato come riferimento:
dove: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
imageRegistryConfiguration.registry
: server del registro contenitore da utilizzare. Esempio:iad.ocir.io
imageRegistryConfiguration.imageTagPrefix
: percorso del repository di base contenitore con il registro, in cui le immagini devono essere sottoposte a push (pulled) in (from). Esempio:iad.ocir.io/obpee/bcs
imageRegistryConfiguration.username
: nome utente login 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 predefinitostorageClass
controlPlaneStorage.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.com
imagePullTimeout
: timeout di attesa pull delle immagini in secondi durante l'installazione di Oracle Blockchain Platform Enterprise Edition. L'impostazione predefinita è 1800 secondi.
- Eseguire
runme_oke.sh [--publish-images]
, seguendo i prompt.Nota
Il comando--publish-images
facoltativo carica i contenitori in un registro di immagini del contenitore, ad esempio Oracle Cloud Infrastructure Registry, utilizzando i dettagli specificati inrunme-input.yaml
.- Immettere la password predefinita dell'amministratore LDAP (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.
- Se
StorageClass
non è stato fornito inrunme-input.yaml
, il sistema controllerà se la classe di memorizzazione predefinita è impostata e chiederà se si desidera utilizzarla. - Confermare il tipo di servizio del gateway in entrata Istio: LoadBalancer è l'impostazione predefinita e NodePort è supportato. Tenere presente che l'accesso a NodePorts richiede che il cluster Kubernetes venga creato con nodi di lavoro pubblici. Vedere Installa Istio.
- Confermare la porta https del servizio gateway in entrata Istio: l'impostazione predefinita è 443 per il tipo di servizio LoadBalancer.
- Immettere la password <registry name> del registro: viene utilizzata per connettersi al registro delle immagini del contenitore (come specificato in
runme-input.yaml
) per scaricare le immagini.
- Come parte dell'output dello script, verrà elencato l'URL
Istio-ingressgateway
. Registrare l'indirizzo IP elencato. - Lo script di installazione continuerà a installare i seguenti servizi nello spazio di nomi
obp-cp
:control-plane
openldap
obp-auth-server
obp-operator
hlf-operator
Accedi a Blockchain Platform Manager
- Eseguire questo comando per ottenere la lista 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 criteri:- LoadBalancer: consente di risolvere l'indirizzo IP esterno generato per il servizio
istio-ingressgateway
. - NodePort: consente di risolvere gli indirizzi IP dei nodi di lavoro
- LoadBalancer: consente di risolvere l'indirizzo IP esterno generato per il servizio