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.