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

  1. Obtenga los gráficos de Helm de HCL Commerce.

    HCL Commerce Version 9.1.7.0 or later 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.

    1. Revise Descarga del software de HCL Commerce y La lista de los últimos paquetes de descarga disponibles para asegurarse de que obtiene la versión más actualizada del software de HCL Commerce.
    2. Descargue y extraiga la última versión del paquete de Git del gráfico de Helm HCL Commerce (HCL_Commerce_Helm_Charts_9.1.x.x.bundle).
    3. Clone el repositorio.
      git clone bundleNameprojectName
      Donde:
      bundleName
      El nombre de archivo del paquete que está clonando.
      projectName
      El nombre del proyecto de Git que está creando.
      Por ejemplo:
      git clone HCL_Commerce_Helm_Charts_9.1.x.x.bundleHCL_Commerce_Helm_charts
  2. 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.
    HCL Commerce Version 9.1.9.0 or laterNote: 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.
  3. 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:

    ComponentRéplicaSolicitud de CPU Límite de CPU Solicitud de memoria Límite de memoria
    ts-app1500m24096 Mi 5120 Mi
    ts-db12000m24096 Mi6144 Mi
    ts-web1500m22048 Mi4096 Mi
    search-app-master1500m22048 Mi4096 Mi
    search-app-repeater (live) 1500m22048 Mi4096 Mi
    search-app-slave (live) 1500m22048 Mi4096 Mi
    crs-app1500m22048 Mi4096 Mi
    xc-app1500m22048 Mi4096 Mi
    tooling-web1500m21024 Mi2048 Mi
    store-web1500m21024 Mi2048 Mi
    nifi-app1500m26144 Mi10240 Mi
    registry-app1500m21024 Mi2048 Mi
    Ingest-app1500m22048 Mi4096 Mi
    query-app1500m22048 Mi4096 Mi
    HCL Commerce Version 9.1.6.0 or latermustgather-app 1500m12048 Mi 4096 Mi
    HCL Commerce Version 9.1.7.0 or laterts-utils1500m22048 Mi4096 Mi
    HCL Commerce Version 9.1.9.0 or latergraphql-app1500m22048 Mi2048 Mi
    HCL Commerce Version 9.1.12.0 or laterapproval-app1500m22048 Mi2048 Mi
    HCL Commerce Version 9.1.13.0 or laternextjs-app1500m22048 Mi2048 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úsquedavCPUsMemoria
    Solución de búsqueda basada en Solr4068 GB
    Solución de búsqueda basada en Elasticsearch4984 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.
  4. 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.
    • HCL Commerce Version 9.1.7.0 or laterSoporte para las rutas de Red Hat OpenShift.
    • HCL Commerce Version 9.1.12.0 or laterSoporte para Emissary 2.x (Emissary-ingress).
  5. 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.
  6. 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 nombres commerce 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.
    1. 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:
    2. 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>
    3. Ejecute kubectl apply -f vault-secret.yaml para crear el secreto dentro del espacio de nombres commerce.
  7. 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.

  8. 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.

    HCL Commerce Version 9.1.12.0 or laterCon la introducción del servicio de aprobación para su uso en Marketplace, también es necesario desplegar una base de datos PostgreSQL.

  9. 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.
    1. 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.
      HCL Commerce Version 9.1.7.0 or laterNote: Los pasos siguientes, 9.b y 9.c, se pueden omitir a partir de la versión HCL Commerce 9.1.7.0. Esto se debe a que a partir de este punto Helm Chart HCL Commerce crea las reglas RBAC automáticamente durante el despliegue.
    2. Modifique el archivo rbac.yaml sustituyendo <namespace> por commerce .
    3. Ejecute el siguiente mandato para aplicar el RBAC: kubectl apply -f rbac.yaml.
    Important: Algunas plataformas de nube, como IBM Cloud, requieren una PodSecurityPolicy (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
  10. Optional: HCL Commerce Version 9.1.8.0 or later 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 .

  11. Optional: HCL Commerce Version 9.1.12.0 or later 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.

Results

Su entorno está preparado. Ahora puede desplegar HCL Commerce. Continúe con Despliegue HCL Commerce en un clúster de Kubernetes.