Mise à jour des autorisations de fichiers PVC pour la mise à niveau d'un déploiement Kubernetes des images d'utilisateur root vers les images utilisateur non root
readWriteMany existant.Before you begin
- Découvrez les avantages, limites, considérations et conditions préalables à l'exécution de vos images Docker en tant qu'utilisateur non root avant de procéder à une mise à niveau vers HCL Commerce 9.1.14.0 ou une version ultérieure. Pour plus d'informations, voir HCL Commerce utilisateurs et privilèges liés aux conteneurs. Une fois que vous êtes certain d'avoir pris en considération chaque aspect, poursuivez la mise à niveau du PVC de votre outil Assets pour une utilisation avec les images utilisateur non root.
- Assurez-vous que le paramètre runAsNonRoot.enabled est défini sur true dans le fichier de configuration values.yaml du chart Helm HCL Commerce. Il s'agit de la valeur par défaut.
About this task
Dans les déploiements Kubernetes, un PVC est utilisé pour conserver les fichiers utilisés par l'outil Assets dans Management Center for HCL Commerce. La mise à niveau vers un conteneur d'utilisateur non root présente un problème potentiel en fonction du type de PVC initialement provisionné :
- Un stockage ayant pour mode d'accès
readWriteOncene présente aucun problème lors de cette mise à niveau.Généralement, le stockage PVC est provisionné par la classe de stockage cloud en tant que PVC à mode d'accès
readWriteOnceet est monté avec l'utilisateur root comme propriétaire. LefsGroupest défini sur1000dans le chart Helm HCL Commerce, garantissant que l'utilisateur non root conservera toujours un accès complet en lecture et en écriture à tous les fichiers et répertoires préexistants dans le volume monté. -
Un stockage ayant pour mode d'accès
readWriteManyprésente une exigence de mise à jour des autorisations lors de cette mise à niveau.Un type de PVC
readWriteMany, qui peut être provisionné par un autre fournisseur, tel que NFS Provisioner, présente un obstacle avec les autorisations utilisateur lors de cette mise à niveau. Dans ce cas, lefsGroupspécifié dans le chart Helm HCL Commerce n'aura aucune influence sur les fichiers existants dans le volume. Ainsi, les autorisations de fichiers au sein de votre PVC doivent être modifiées de manière à ce qu'elles restent accessibles par l'utilisateur non root.
La première fois que vous redéploierez vos images d'application HCL Commerce pour qu'elles utilisent l'utilisateur non root, vous devrez modifier votre déploiement Kubernetes afin de mettre à jour la propriété des fichiers et des répertoires stockés dans le PVC de votre outil Assets. Vous n'aurez besoin de le faire qu'une fois.
Procedure
-
Mettez à jour votre fichier de configuration de chart Helm values.yaml et définissez le paramètre runAsNonRoot.migrateAssetsPvcFromRootToNonroot sur true.
Sauvegardez le fichier. Cette option déclenchera une tâche de pré-mise à niveau lors du déploiement, laquelle mettra à jour la propriété des fichiers dans le PVC de votre outil Assets.
-
Exécutez la mise à jour du déploiement.
Pour plus d'informations, consultez Mise à jour d'un déploiement dans la documentation de Déploiement de HCL Commerce sur un cluster Kubernetes.Le redéploiement mettra à jour les autorisations de fichiers du PVC de votre outil Assets de manière à ce qu'il reste entièrement accessible par l'utilisateur non root.
-
Désactivez le paramètre runAsNonRoot.migrateAssetsPvcFromRootToNonroot en le redéfinissant sur false et en enregistrant votre configuration de chart Helm pour tout déploiement futur.
Vous n'aurez besoin d'exécuter ce processus qu'une seule fois.
- Optional:
Exécutez manuellement la tâche de migration des autorisations du PVC.
Si votre PVC est en cours d'utilisation lors de la migration des autorisations, le pod d'utilisateur root pourra créer certains fichiers pendant le processus helm upgrade. Si vous n'êtes pas certain de la nécessité d'une migration complète des autorisations, vous pouvez réexécuter la tâche manuellement à tout moment.
L'exemple de fichier de travail nonroot-ownership-update.yaml se trouve dans le dossier de mise à niveau sous stable/hcl-commerce/. Veillez à mettre à jour le fichier en conséquence en renseignant les champs d'espace de noms, de nom et de nom de revendication de volume persistant adéquats avant de le démarrer avec
kubectl apply -f nonroot-ownership-update.yaml.