Requisitos previos para desplegar HCL Commerce en un clúster de Kubernetes
Hay varios requisitos previos de configuración de software y entorno y despliegue necesarios para desplegar HCL Commerce en Kubernetes.HCL Commerce proporciona un alto grado de flexibilidad, y cada opción disponible debe considerarse para viabilidad en su despliegue de producción resultante.
La modalidad de configuración predeterminada utilizada por el Gráfico de Helm proporcionado es el modo de configuración de Vault. Vault es también el modo de configuración recomendado para HCL Commerce, ya que Vault está diseñado para almacenar los datos de configuración de forma segura. Además de almacenar datos de configuración, Vault también se utiliza a través de HCL Commerce como entidad certificadora para emitir certificados a cada aplicación, de manera que se comuniquen entre ellas de forma segura.
Para entornos que no son de producción, puede considerar el uso del gráfico de Helm de hcl-commerce-vaultconsul-helmchart para implementar e inicializar Vault para HCL Commerce. Sin embargo, este gráfico ejecuta Vault en modo de desarrollo, no en modo de alta disponibilidad (HA). Tampoco maneja el token Vault de forma segura. Por lo tanto, no debe utilizarse para entornos de producción. Consulte los Conceptos de Vault en la documentación de Vault para conocer otras consideraciones que conviene tener en cuenta para ejecutar Vault en un entorno de producción.
Procedure
-
Obtenga los gráficos de Helm de HCL Commerce.
A partir de HCL Commerce 9.1.7.0, se incluye una versión para Power Linux del Helm Chart para su uso en esa plataforma. Asegúrese de que está utilizando la versión correcta de Helm Chart para la plataforma en la que está realizando el despliegue.
-
Vault es un componente obligatorio que se utiliza de forma predeterminada como agente de certificados para emitir certificados automáticamente.
También se utiliza como centro de configuración para el despliegue para almacenar datos relacionados con el entorno. Para obtener más información e instrucciones sobre el despliegue de Vault para utilizar con HCL Commerce, consulte Desplegar el almacén de Vault para HCL Commerce en Kubernetes.
Note: Consul y todas las configuraciones relacionadas se han eliminado de HCL Commerce 9.1.9.0 y posteriores. No obstante, el nombre de archivo del gráfico Helm de Vault proporcionado sigue siendo el mismo.
-
Necesita un clúster de Kubernetes para desplegar HCL Commerce.
Se recomienda utilizar las versiones de Kubernetes de la 1.25 a la 1.27.
Puede estar en una nube privada o pública, o incluso en un clúster de Kubernetes que esté configurado con kubeadm. Para obtener más información sobre el uso de kubeadm, consulte Creación de un único clúster maestro con kubeadm.
De forma predeterminada, cuando se utiliza el gráfico de Helm proporcionado para desplegar HCL Commerce Version 9, empiece con el siguiente número de Pods y recursos necesarios:
Component Réplica Solicitud de CPU Límite de CPU Solicitud de memoria Límite de memoria ts-app 1 500m 2 4096 Mi 5120 Mi ts-db 1 2000m 2 4096 Mi 6144 Mi ts-web 1 500m 2 2048 Mi 4096 Mi search-app-master 1 500m 2 2048 Mi 4096 Mi search-app-repeater (live) 1 500m 2 2048 Mi 4096 Mi search-app-slave (live) 1 500m 2 2048 Mi 4096 Mi crs-app 1 500m 2 2048 Mi 4096 Mi xc-app 1 500m 2 2048 Mi 4096 Mi tooling-web 1 500m 2 1024 Mi 2048 Mi store-web 1 500m 2 1024 Mi 2048 Mi nifi-app 1 500m 2 6144 Mi 10240 Mi registry-app 1 500m 2 1024 Mi 2048 Mi Ingest-app 1 500m 2 2048 Mi 4096 Mi query-app 1 500m 2 2048 Mi 4096 Mi mustgather-app
1 500m 1 2048 Mi 4096 Mi ts-utils
1 500m 2 2048 Mi 4096 Mi graphql-app
1 500m 2 2048 Mi 2048 Mi approval-app
1 500m 2 2048 Mi 2048 Mi nextjs-app
1 500m 2 2048 Mi 2048 Mi Asegúrese de que el clúster tenga suficientes recursos para el despliegue. Los requisitos que se describen a continuación son solo una estimación. Se basan en un despliegue de entorno completo (grupos auth, live y shared) con una sola instancia (conjunto de réplicas) para cada aplicación. Estos números también incluyen las 10 vCPU y 12 GB de requisito de sobrecarga de memoria que se utilizan en un escenario de actualización continua. Durante una actualización, varias instancias de una aplicación pueden estar activas al mismo tiempo.
Los recursos esperados que son necesarios se basan en la solución de búsqueda que se utiliza en el despliegue:Solución de búsqueda vCPUs Memoria Solución de búsqueda basada en Solr 40 68 GB Solución de búsqueda basada en Elasticsearch 49 84 GB Note:- La función de procesamiento de lenguaje natural (NLP) de Elasticsearch puede consumir grandes cantidades de memoria en NiFi con varios idiomas habilitados. Por ejemplo, con dos idiomas habilitados, Nifi puede utilizar hasta 10 GB de memoria. Asegúrese de que se ha asignado la memoria adecuada a Nifi para sus necesidades de despliegue.
- Para obtener un desglose detallado de los requisitos mínimos de recursos de Kubernetes recomendados para diversas topologías de despliegue, consulte HCL Commerce Planificación de los recursos de despliegue de Kubernetes.
-
Necesita un controlador de entrada para acceder a HCL Commerce una vez se ha desplegado en Kubernetes.
El gráfico de Helm de HCL Commerce es compatible principalmente con el uso del controlador de entrada de Nginx. Para configurar el controlador de entrada de Nginx en el clúster de Kubernetes, consulte la Guía de instalación en la documentación de entrada de Nginx.
Hay disponible un soporte adicional para las entradas de controlador en el gráfico de Helm de HCL Commerce, con restricciones en función del despliegue y de la versión de HCL Commerce que se utilice:- La compatibilidad de uso de las entradas GCE está disponible al desplegar HCL Commerce en el motor Google Kubernetes (GKE).
- La Entrada de Ambassador Edge Stack es compatible con una versión de Kubernetes inferior a 1.22.Restriction: Con las versiones de Kubernets 1.22 o posteriores, la entrada de Ambassador no es compatible. En su lugar, se requiere Emissary. El controlador de entrada de Emissary también requiere una versión de HCL Commerce 9.1.12.0 o superior.
Soporte para las rutas de Red Hat OpenShift.
Soporte para Emissary 2.x (Emissary-ingress).
-
Necesita que Helm gestione la aplicación en Kubernetes.
Se recomienda utilizar Helm versión 3.10 o superior. Para descargar y configurar Helm, visite https://github.com/helm/helm/releases.
-
Debe almacenarse una señal de Vault como un objeto secreto.
Este valor también se encuentra en los valores del gráfico de Helm para permitir que la aplicación de HCL Commerce consuma el valor de la señal de Vault. Si utiliza hcl-commerce-vaultconsul-helmchart para desplegar Vault para el uso en desarrollo o no producción, tiene que haberse creado ya un secreto denominado
vault-token-secret
en el espacio de nombrescommerce
en el paso 2.d de Desplegar el almacén de Vault para HCL Commerce en Kubernetes. De lo contrario, realice los siguientes pasos para crear un secreto nuevo e importarlo a su entorno.- Obtenga la serie codificada en base64 de la señal Vault pasándola a través del programa de utilidad del sistema base64. En el indicador de mandatos, ejecute
echo -n vault_token | base64
: - Cree un archivo llamado vault-secret.yaml con el siguiente contenido: Reemplace <VAULT_TOKEN> por el valor obtenido y reemplace <NAME_SPACE> por
commerce
. Guarde el archivo.apiVersion: v1 kind: Secret metadata: name: vault-token-secret namespace: <NAME_SPACE> type: Opaque data: VAULT_TOKEN: <VAULT_TOKEN>
- Ejecute
kubectl apply -f vault-secret.yaml
para crear el secreto dentro del espacio de nombrescommerce
.
- Obtenga la serie codificada en base64 de la señal Vault pasándola a través del programa de utilidad del sistema base64. En el indicador de mandatos, ejecute
-
Todas las imágenes de Docker necesarias para el despliegue de HCL Commerce deben cargarse en un registro de Docker donde el clúster de Kubernetes pueda acceder a ellas.
Puede obtener el HCL Commerce en HCL License and Delivery portal. Para obtener información sobre la publicación actualizada, consulte HCL Commerce eAssemblies.
Las etiquetas que se utilizan en su Registro Docker deben ser las mismas que las utilizadas en sus Helm Charts.
-
Se necesitan una o más bases de datos.
Para realizar una prueba rápida o con fines de exploración, puede utilizar la imagen de Docker de la base de datos DB2 de ejemplo de HCL Commerce, que tiene los datos de rutina de carga de ejemplo y el esquema predeterminado cargados para explorar las características y funciones de HCL Commerce. Sin embargo, se recomienda encarecidamente que configure la base de datos en su propio servidor dedicado para que pueda persistir y ajustar el rendimiento. Los requisitos de dimensionamiento de la base de datos variarán según el proveedor y la configuración. Consulte Configuración de los requisitos previos para un entorno de producción de HCL Commerce para obtener más información sobre los requisitos de un entorno de producción de HCL Commerce.
Con la introducción del servicio de aprobación para su uso en Marketplace, también es necesario desplegar una base de datos PostgreSQL.
-
El control de acceso basado en roles (RBAC) debe crearse de antemano y solo una vez en el espacio de nombres de destino.
En los pasos restantes de este despliegue se presupone que HCL Commerce se ha desplegado en el espacio de nombres
commerce
. Realice los siguientes pasos como administrador de clúster.- Si todavía no ha creado el espacio de nombres
commerce
, como en los requisitos previos de Desplegar el almacén de Vault para HCL Commerce en Kubernetes, créelo ahora ejecutando el siguiente mandato:kubectl create namespace commerce
. - Modifique el archivo rbac.yaml sustituyendo
<namespace>
porcommerce
. - Ejecute el siguiente mandato para aplicar el RBAC:
kubectl apply -f rbac.yaml
.
Important: Algunas plataformas de nube, como IBM Cloud, requieren unaPodSecurityPolicy
(PSP) para enlazarse con el espacio de nombres de destino antes de la instalación. Elija una PSP predefinida o haga que el administrador de clúster configure una PSP personalizada. Para IBM Cloud, elija IBM-privileged-PSP para la política menos restrictiva o consulte las Definiciones de IBM Cloud Pak PodSecurityPolicy Definitions para obtener más información.El administrador de clúster puede utilizar las definiciones PSP y ClusterRole anteriores en la pantalla Crear recurso de la interfaz de usuario, o ejecutar los dos mandatos siguientes:kubectl create -f <PSP_yaml_file>
kubectl create clusterrole commerce-psp-clusterrole --verb=use --resource=podsecuritypolicy --resource-name=commerce-psp
En IBM Cloud Private 3.1, debe crear el RoleBinding ejecutando el siguiente mandato:kubectl create rolebinding commerce-psp-rolebinding --clusterrole=commerce-psp-clusterrole --serviceaccount=commerce:default --namespace=commerce
En IBM Cloud Private 3.1.1+, debe crear el RoleBinding ejecutando el siguiente mandato:kubectl create rolebinding ibm-psp-rolebinding --clusterrole=ibm-privileged-clusterrole --serviceaccount=commerce:default --namespace=commerce
- Si todavía no ha creado el espacio de nombres
- Optional:
Habilite el .Assets tool
Si tiene previsto que se utilice la herramienta Elementos dentro del despliegue, debe implementar un almacenamiento persistente accesible.
Para implementar almacenamiento permanente, consulte Configuración de volúmenes de almacenamiento permanente para un despliegue de Kubernetes.
Para obtener más información sobre la herramienta Elementos, consulte Assets tool .
- Optional:
Inhabilite el análisis de herramientas.
Management Center for HCL Commerce en todas las versiones 9.1.12.0 y superiores ahora informan a HCL sobre el análisis del usuario de la empresa. Esta información ayuda a HCL a desarrollar nuevas características y a mejorar las herramientas existentes para el usuario de la empresa.
Para inhabilitar el análisis de herramientas deberá hacer lo siguiente:- Si utiliza Vault durante el despliegue, establezca el valor de clave de Vault allowTelemetry en no antes de llevar a cabo el despliegue.
- Establezca la variable de entorno del contenedor Tooling Web Docker containerALLOW_TELEMETRY en no durante el despliegue.