![HCL Commerce Version 9.1.14.0 or later](../../base/images/91140plus.png)
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
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. ElfsGroup
está configurado en1000
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, elfsGroup
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
-
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.
-
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.
-
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.
- 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
.