Aller au contenu principal

Administration Guides

Migrate a model using Rancher Apps Catalog​

Connectez-vous à Rancher → Déploiement d'applications et sélectionnez le chart « mlflow-migrate-model ».

To use this chart, you need to gather the following information:

  • _persistentvolume_enabled (true ou false) : Activez cette option si le modèle est volumineux. Les volumes emptyDir de Kubernetes ont une capacitĂ© de stockage limitĂ©e.
  • _size: La taille maximale du modèle que vous souhaitez copier.
  • _namespace_mlflow_src: Le namespace de l’instance MLflow source depuis laquelle le modèle sera copiĂ©.
  • _namespace_mlflow_dst: Le namespace de l’instance MLflow de destination vers laquelle le modèle sera copiĂ©.
  • _model_name: Le nom du modèle Ă  copier.
  • _model_version: La version du modèle Ă  copier (sous forme de chaĂ®ne de caractères).
  • _dst_model_name: Le nom du modèle dans l’instance MLflow de destination (la version sera incrĂ©mentĂ©e automatiquement).
  • _src_username: Un utilisateur Keycloak qui a accès Ă  l’interface MLflow source et qui s’est connectĂ© au moins une fois.
  • _src_password: L’identifiant interne Keycloak de l’utilisateur source. Vous pouvez le trouver dans la section "User Details" de l’interface d’administration Keycloak. Exemple : 58c1a349-a727-42a0-8674-4890209e71d8
  • _dst_username: Un utilisateur Keycloak qui a accès Ă  l’interface MLflow de destination et qui s’est connectĂ© au moins une fois.
  • _dst_password: L’identifiant interne Keycloak de l’utilisateur de destination. Vous pouvez le trouver dans la section "User Details" de l’interface d’administration Keycloak. Exemple : 58c1a349-a727-42a0-8674-4890209e71d8

Une fois toutes ces valeurs collectées, installez le chart en remplissant la configuration avec vos informations.

containerSecurityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
runAsGroup: 1000
runAsNonRoot: true
runAsUser: 1000
seccompProfile:
type: RuntimeDefault
dst:
modelName: `_dst_model_name`
password: `_dst_password`
timeout: 300
timeouthttp: 30
uri: http://mlflow.`_namespace_mlflow_dst`.svc.cluster.local:5000
username: `_dst_username`
image:
pullPolicy: IfNotPresent
repository: hosted-registry.corp.athea/mlflow
tag: 3.1.1-1
job:
backoffLimit: 0
restartPolicy: Never
labels:
extra: {}
namespaceOverride: ""
networkPolicy:
enabled: false
persistentVolume:
enabled: `_persistentvolume_enabled`
existingClaim: ""
annotations: {}
accessModes:
- ReadWriteOnce
storageClass: lvm-provisioner
size: `_size`
src:
modelName: `_model_name`
modelVersion: `'_model_version'`
password: `_src_password`
timeout: 300
timeouthttp: 30
uri: http://mlflow.`_namespace_mlflow_src`.svc.cluster.local:5000
username: `_src_username`

Notes importantes

  • Si vous rencontrez des problèmes lors de la copie de modèles volumineux, il peut ĂŞtre nĂ©cessaire d’augmenter les valeurs de src.timeout et src.timeouthttp.

  • Lorsque vous utilisez l’option persistentVolume.enabled, les valeurs recommandĂ©es sont :

    • src.timeout: 3600
    • src.timeouthttp: 900 au lieu des valeurs par dĂ©faut 300 et 30.

    Pour les modèles très volumineux (ex. : LLM), des valeurs encore plus élevées peuvent être nécessaires.

  • Si vous obtenez une erreur d’autorisation d’API, assurez-vous que l’utilisateur s’est connectĂ© au moins une fois Ă  l’interface MLflow.


Pour vérifier que la copie a réussi, suivez le Job Kubernetes. Une fois qu’il est terminé avec succès, le modèle devrait être visible dans l’interface MLflow de destination.