Despliegue Oracle Blockchain Platform Enterprise Edition en Oracle Kubernetes Engine
Antes de desplegar Oracle Blockchain Platform Enterprise Edition, debe tener un cluster de Kubernetes que ejecute e instale varios requisitos.
Para obtener información detallada sobre Oracle Kubernetes Engine, consulte Oracle Cloud Infrastructure Container Engine for Kubernetes
Creación de un cluster de Oracle Kubernetes Engine en OCI
Desarrollo | Producción con alta disponibilidad | |
---|---|---|
Versión Mínima | v1.29.1 | v1.29.1 |
Tipo de nodo | Gestionada | Gestionada |
Imagen de nodo | Oracle Linux 8 | Oracle Linux 8 |
CPU de nodo | 2 OCPU o superior | 4 OCPU o superior |
Memoria de nodo | 24 GB o más | 32 GB o más |
Recuento de nodos | 1 o superior | 3 o superior |
Tamaño del volumen de inicio | 100 GB o más. Puede que el volumen de inicio por defecto de 50 GB no sea suficiente para contener imágenes de contenedor y datos temporales de Oracle Blockchain Platform Enterprise Edition para pods de código de cadena debido al almacenamiento efímero limitado. | 100 GB o más. Puede que el volumen de inicio por defecto de 50 GB no sea suficiente para contener imágenes de contenedor y datos temporales de Oracle Blockchain Platform Enterprise Edition para pods de código de cadena debido al almacenamiento efímero limitado. |
- Recomendamos utilizar
Private workers
para nodos de trabajador de Kubernetes para una mayor seguridad - Asegúrese de que los nodos de trabajador tengan acceso a Internet, que es necesario para la instalación de códigos de cadena en las instancias de Oracle Blockchain Platform.
Esta sección guiará por la creación de un ejemplo de Oracle Kubernetes Engine en OCI. Para obtener más información y opciones, consulte Creación de clusters de Kubernetes mediante flujos de trabajo de consola
- Conéctese a su arrendamiento de OCI y seleccione su región y compartimento.
- Abra el menú de navegación y haga clic en Servicios para desarrolladores. En Contenedores y artefactos, haga clic en Cluster de Kubernetes (OKE).
- En la página Lista de clusters, haga clic en Crear cluster.
- En el cuadro de diálogo Crear cluster, seleccione Creación rápida y haga clic en Enviar.
- En la página Crear cluster, acepte los detalles de configuración por defecto para el nuevo cluster o especifique alternativas de la siguiente forma:
- Nombre: el nombre del nuevo cluster. Acepte el nombre por defecto o introduzca un nombre de su elección.
- Compartimento: compartimento en el que desea crear el nuevo cluster y los recursos de red asociados.
- Versión de Kubernetes: la versión de Kubernetes que se va a ejecutar en los nodos de plano de control y en los nodos de trabajador del cluster. La versión v1.29.1 se probó con Oracle Blockchain Platform Enterprise Edition.
-
Punto final de API de Kubernetes: tipo de acceso al punto final de API de Kubernetes del cluster. Seleccione Público (al que se puede acceder directamente desde Internet). Se crea una subred regional pública y el punto final de API de Kubernetes se aloja en esa subred. El punto final de API de Kubernetes tiene asignada una dirección IP pública, así como una dirección IP privada.
- Tipo de nodo: especifique el tipo de nodos de trabajador en el primer pool de nodos del cluster. Seleccione Gestionado. Tiene la responsabilidad de gestionar los nodos de trabajador en el pool de nodos. Los nodos gestionados se ejecutan en las instancias de recursos informáticos (taller o máquina virtual) de su arrendamiento. Como responsable de gestionar los nodos gestionados, tiene la posibilidad de configurarlos para cumplir sus requisitos específicos. Usted se encarga de cambiar la versión de Kubernetes en los nodos gestionados y de gestionar la capacidad del cluster.
- Nodos de trabajador de Kubernetes: tipo de acceso a los nodos de trabajador del cluster. Seleccione Privado (se puede acceder a través de otras subredes de VCN). Se crea una subred regional privada para alojar nodos de trabajador. A los nodos de trabajador se les asigna una dirección IP privada.
- Unidad de computación de nodo: la unidad de computación que se va a utilizar para cada nodo del pool de nodos. La unidad de computación determina el número de CPU y la cantidad de memoria asignada a cada nodo. En la lista se muestran solo aquellas unidades de computación disponibles en el arrendamiento soportes de Container Engine for Kubernetes. Oracle Blockchain Platform Enterprise Edition se probó con VM.Standard.E3. Flex y VM.Standard.E4. Unidades flexibles.
- Imagen: la imagen que se va a utilizar en los nodos de trabajador del pool de nodos gestionados. Una imagen es una plantilla de una unidad de disco duro virtual que determina el sistema operativo y otro software para el pool de nodos gestionado. Oracle Blockchain Platform Enterprise Edition se probó con Oracle Linux 8.
- Recuento de nodos: el número de nodos de trabajador que crear en el pool de nodos, colocado en la subred regional creada para el cluster. Seleccione 3 o más.
- volumen de inicio: configure las opciones de tamaño y cifrado para el volumen de inicio del nodo de trabajador. Es posible que el volumen de inicio por defecto de 50 GB no sea suficiente para contener imágenes y datos temporales de Oracle Blockchain Platform Enterprise Edition para pods de código de cadena debido al almacenamiento efímero limitado. Si tiene previsto desplegar varios códigos de cadena (más de 5), le sugerimos que aumente el volumen de inicio a aproximadamente 100 GB.
- Revise las opciones seleccionadas y haga clic en Crear cluster.
- Asegúrese de que los nodos de trabajador y los pools de nodos se están ejecutando:
- En Recursos, seleccione Nodos. Para cada nodo de trabajador, asegúrese de que el nodo esté listo, activo y coincida con la versión del cluster de Kubernetes.
- En Recursos, seleccione Pools de nodos. Para el pool de nodos, asegúrese de que el pool está activo y coincide con la versión del cluster de Kubernetes.
Instalación de la interfaz de la línea de comandos de OCI
En esta sección se proporciona un ejemplo de cómo instalar la interfaz de línea de comandos de OCI. Oracle Blockchain Platform Enterprise Edition se probó con la versión 3.42.0. Para obtener más información, consulte Interfaz de línea de comandos de 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
Crear sistema de iniciador de instalación
Configurar el acceso local para el cluster
Consulte lo siguiente para obtener información adicional: Configuración del acceso local a los clusters.
- Copie la clave RSA en la máquina Oracle Linux o macOS en la que instaló los requisitos. Las claves se pueden encontrar en la consola de OCI:
chmod 400 your_rsa.key
Puede crear una nueva clave si es necesario. Consulte Generación de una clave de firma de API
. Proteja la clave: - En la consola de OCI, vaya al cluster y abra la página Detalles de cluster.
- Seleccione Acceder a cluster y, a continuación, Acceso local.
- Cree un directorio que contenga el archivo kubeconfig:
mkdir -p $HOME/.kube
- Copie Para acceder a kubeconfig para su cluster a través del comando VCN-Native public endpoint.
- Ejecute el comando en la máquina Linux o macOS. Debido a que el archivo de configuración aún no existe, se le solicitará lo siguiente:
- ¿Desea crear un nuevo archivo de configuración? [Y/n]: y
- ¿Desea crear el archivo de configuración iniciando sesión a través de un explorador? [Y/n]: n
- Introduzca una ubicación para la configuración [/home/opc/.oci/config]: seleccione una ubicación
- Introduzca un OCID de usuario: se puede encontrar en la consola de OCI
- Introduzca un OCID de arrendamiento: se puede encontrar en la consola de OCI
- Introduzca una región por índice o nombre: introduzca el número correspondiente a la región de su arrendamiento, por ejemplo, 12
- ¿Desea generar un nuevo par de claves RSA de firma de API? Si se rechaza, se le pedirá que proporcione la ruta a una clave existente. [Y/n]: n
- Introduzca la ubicación del archivo de clave privada de firma de API: ubicación del archivo de clave RSA creado anteriormente
- Cuando se crea el archivo de configuración de OCI, debe volver a ejecutar el comando Para acceder a kubeconfig para el cluster mediante el comando de punto final público nativo de VCN. Utilizará el archivo de configuración que acaba de crear.
- Cree un directorio que contenga el archivo kubeconfig:
- Verifique que puede acceder al cluster de Oracle Kubernetes Engine:
kubectl get nodes
. Si la configuración es correcta, el comando mostrará todos los nodos de trabajador del cluster. - Restrinja el acceso al archivo de configuración:
chmod 600 $HOME/.kube/config
- Defina la variable de entorno KUBECONFIG en el archivo para este cluster:
export KUBECONFIG=$HOME/.kube/config
Note:
Si el archivo de configuración de OCI tiene varios perfiles similares a:[OCI_PROFILE_A]
fingerprint = .............
key_file = .............
tenancy = .............
region = .............
user = .............
[OCI_PROFILE_B]
fingerprint = .............
key_file = .............
tenancy = .............
region = .............
user = .............
Tendrá que personalizar el archivo kubeconfig
o recibirá un error de autorización cuando intente instalar Oracle Blockchain Platform Enterprise Edition. En la sección Usuarios del archivo kubeconfig
, agregue una línea para especificar qué usuario utilizar en el archivo de configuración de OCI. Por ejemplo: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
donde <OCI_PROFILE_NAME>
sería OCI_PROFILE_A
Completar la instalación de Istio
Oracle Blockchain Platform Enterprise Edition soporta la versión 1.20.2 y posteriores. Debe haber completado los pasos de Install Istio antes de completar lo siguiente.
# 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)
Configuración de un token de autenticación para el usuario
Cree un token de autenticación para el usuario administrativo para que pueda extraer imágenes del registro de OCI: Generación de un token de autenticación para activar la conexión a Oracle Cloud Infrastructure Registry.
Instalación de Oracle Blockchain Platform Enterprise Edition
- En la página Oracle Blockchain Platform Enterprise Edition, haga clic en Descargar y siga los pasos para descargar el paquete Oracle Blockchain Platform Enterprise Edition. Descomprima el paquete y, a continuación, extraiga el paquete del archivo de almacenamiento descargado.
tar -xzf <distribution-package-file> # example tar -xzf obpee_package_24.1.3-20240723083137.tgz
- Actualice
runme-input.yaml
con los valores necesarios. Este es un ejemplo derunme-input.yaml
que se puede utilizar como referencia:
donde: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
: servidor de registro de contenedor que se va a utilizar. Ejemplo:iad.ocir.io
imageRegistryConfiguration.imageTagPrefix
: ruta de repositorio de base de contenedor con el registro, donde las imágenes se transferirán (tirarán) a (desde). Ejemplo:iad.ocir.io/obpee/bcs
imageRegistryConfiguration.username
: nombre de usuario de conexión del registro de contenedorimageReleaseVersion
- Versión de la versión Oracle Blockchain Platform Enterprise EditioncontrolPlaneStorage.storageClassName
: clase de almacenamiento de Kubernetes que se utilizará para PVC (PersistentVolumeClaim). Si está vacío, se utiliza el valor por defectostorageClass
controlPlaneStorage.size
: tamaño de PVC para servicios de Blockchain Platform Manager (plano de control)parentDomainName
: nombre de dominio que se utilizará para los servicios de Blockchain Platform Manager. Ejemplo:example.com
imagePullTimeout
: timeout de espera de extracción de imágenes en segundos durante la instalación de Oracle Blockchain Platform Enterprise Edition. El valor por defecto es 1800 segundos.
- Ejecute
runme_oke.sh [--publish-images]
, siguiendo las peticiones de datos.Note:
El comando--publish-images
opcional carga los contenedores en un registro de imágenes de contenedor, como Oracle Cloud Infrastructure Registry, mediante los detalles especificados enrunme-input.yaml
.- Introduzca la contraseña del 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 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.
- Si no se ha proporcionado
StorageClass
enrunme-input.yaml
, el sistema comprobará si la clase de almacenamiento por defecto está definida y le preguntará si desea utilizarla. - Confirme el tipo de servicio de gateway de entrada de Istio: LoadBalancer es el valor por defecto y NodePort también está soportado. Tenga en cuenta que para acceder a NodePorts es necesario que el cluster de Kubernetes se cree con nodos de trabajador públicos. Consulte Install Istio.
- Confirme el puerto https del servicio de gateway de entrada de Istio: el valor por defecto es 443 para el tipo de servicio LoadBalancer.
- Introduzca la contraseña del registro <registry name>: se utiliza para conectarse al registro de imágenes de contenedor (como se especifica en
runme-input.yaml
) para descargar imágenes.
- Como parte de la salida del script, mostrará la URL
Istio-ingressgateway
. Registre la dirección IP mostrada. - La secuencia de comandos de instalación seguirá instalando los siguientes servicios en el espacio de nombres
obp-cp
:control-plane
openldap
obp-auth-server
obp-operator
hlf-operator
Acceso a Blockchain Platform Manager
- Ejecute este comando para obtener la lista de nombres de host configurados:
kubectl get virtualservice -n obp-cp -o json | jq -r .items[].spec.hosts[0]
- Según el tipo de servicio elegido para
istio-ingressgateway
, estos nombres de host generados deben resolverse en una dirección IPv4 de acuerdo con lo siguiente:- LoadBalancer: se resuelve en la dirección IP externa generada para el servicio
istio-ingressgateway
- NodePort: resuelva en las direcciones IP de los nodos de trabajador
- LoadBalancer: se resuelve en la dirección IP externa generada para el servicio