HCL Commerce Version 9.1.14.0 or later

Actualización de permisos de archivos PVC para actualizar un despliegue de Kuberetes desde imágenes de usuario raíz a imágenes de usuario no raíz

En versiones anteriores de HCL Commerce, las imágenes de Docker se han ejecutado con privilegios raíz de forma predeterminada. Esta configuración predeterminada ha cambiado en HCL Commerce 9.1.14.0 para asegurarse de que se deniega el acceso total a la imagen y a su contenido. Este cambio mejora la seguridad general del despliegue, pero tiene implicaciones importantes para los despliegues existentes. Para actualizar su despliegue de Kubernetes de usar el usuario raíz a usar el usuario no raíz, debe actualizar su contenedor de volumen persistente (PVC) para tener en cuenta los diferentes permisos de archivos. Esta actualización de permisos solo es necesaria si utiliza la herramienta Elementos y tiene un PVC readWriteMany existente.

Before you begin

  • Conozca las ventajas, limitaciones, consideraciones y requisitos para ejecutar sus imágenes de Docker como usuario no raíz antes de actualizar a HCL Commerce 9.1.14.0 o superior. Para obtener más información, consulte HCL Commerce : usuarios y privilegios de contenedores. Una vez que esté seguro de haber tenido en cuenta cada una de las consideraciones, puede continuar actualizando su PVC de la herramienta Elementos para usarlo con las imágenes de usuario no raíz.
  • Asegúrese de que el parámetro runAsNonRoot.enabled esté establecido en true en el archivo de configuración values.yaml del gráfico Helm de HCL Commerce. Este es el valor predeterminado.

About this task

En los despliegues de Kubernetes, se utiliza un PVC para conservar los archivos que utiliza la herramienta Elementos de Management Center for HCL Commerce. La actualización a un contenedor de usuarios no raíz supone un posible problema según el tipo de PVC que se haya aprovisionado inicialmente:

  • Un almacenamiento en modo de acceso readWriteOnce no supone ningún problema durante esta actualización.

    Normalmente, el almacenamiento de PVC lo aprovisiona la clase de almacenamiento en la nube como un PVC de modo de acceso readWriteOnce y se monta con el usuario raíz como propietario. El fsGroup está configurado en 1000 en el Helm Chart de HCL Commerce, lo que garantiza que el usuario no raíz siga conservando el acceso completo de lectura y escritura a todos y cada uno de los archivos y directorios preexistentes en el volumen montado.

  • Un almacenamiento en modo de acceso readWriteMany incluye un requisito de actualización de permisos durante esta actualización.

    Un tipo de PVC readWriteMany, que puede aprovisionarse con otro proveedor, como NFS Provisioner, supone un obstáculo con los permisos de usuario durante esta actualización. En este caso, el fsGroup especificado en el Helm Chart de HCL Commerce no tendrá ningún efecto en los archivos existentes del volumen. Por lo tanto, los permisos de archivos de su PVC deben cambiarse para que pueda seguir accediendo a ellos el usuario no raíz.

La primera vez que vuelva a desplegar las imágenes de su aplicación HCL Commerce para utilizar el usuario no raíz, debe modificar el despliegue de Kubernetes para actualizar la propiedad de los archivos y directorios que están almacenados en su PVC de la herramienta Elementos. Esto solo debe hacerse una vez.

Procedure

  1. Actualice su archivo de configuración values.yaml de Helm Chart y establezca el parámetro runAsNonRoot.migrateAssetsPvcFromRootToNonroot en true.
    Guarde el archivo. Esta opción activará un trabajo previo a la actualización en el despliegue para actualizar la propiedad de los archivos dentro de su PVC de la herramienta Elementos.
  2. Ejecute la actualización de despliegue.
    Para obtener más información, consulte Actualizar un despliegue en la documentación de Despliegue HCL Commerce en un clúster de Kubernetes.
    El nuevo despliegue actualizará los permisos del archivo PVC de la herramienta Elementos para que el usuario no raíz pueda seguir accediendo totalmente.
  3. Inhabilite el parámetro runAsNonRoot.migrateAssetsPvcFromRootToNonroot volviéndolo a establecer en false y guardando la configuración de Helm Chart para futuros despliegues.
    Solo es necesario ejecutar este proceso una vez.
  4. Optional: Ejecute manualmente el trabajo de migración de permisos de PVC.
    Si su PVC está en uso durante la migración de permisos, el pod de usuario raíz puede crear algunos archivos durante el proceso helm upgrade. Si no está seguro acerca de la migración completa de permisos, puede volver a ejecutar el trabajo manualmente en cualquier momento.

    El archivo de trabajo de ejemplo nonroot-ownership-update.yaml se puede encontrar en la carpeta de actualización en stable/hcl-commerce/. Asegúrese de actualizar el archivo en consecuencia con los campos correctos de espacio de nombres, nombre y nombre de reclamación de volumen persistente antes de iniciarlo con kubectl apply -f nonroot-ownership-update.yaml .

Results

El contenido de PVC de la herramienta Elementos se actualiza con los permisos correctos para poderse utilizar con el usuario no raíz. El uso de la herramienta Elementos en Management Center y los futuros despliegues de actualizaciones seguirán funcionando como se esperaba sin problemas de permisos de archivos PVC.