10.2. Manifestes de ressources personnalisées MTC
Migration Toolkit for Containers (MTC) utilise les manifestes de ressources personnalisées (CR) suivants pour faire migrer les applications.
10.2.1. DirectImageMigration Copier lienLien copié sur presse-papiers!
La CR DirectImageMigration copie directement les images du cluster source vers le cluster de destination.
apiVersion: migration.openshift.io/v1alpha1
kind: DirectImageMigration
metadata:
labels:
controller-tools.k8s.io: "1.0"
name: <direct_image_migration>
spec:
srcMigClusterRef:
name: <source_cluster>
namespace: openshift-migration
destMigClusterRef:
name: <destination_cluster>
namespace: openshift-migration
namespaces:
- <source_namespace_1>
- <source_namespace_2>:<destination_namespace_3>
10.2.2. DirectImageStreamMigration Copier lienLien copié sur presse-papiers!
La CR DirectImageStreamMigration copie directement les références de flux d’images du cluster source vers le cluster de destination.
apiVersion: migration.openshift.io/v1alpha1
kind: DirectImageStreamMigration
metadata:
labels:
controller-tools.k8s.io: "1.0"
name: <direct_image_stream_migration>
spec:
srcMigClusterRef:
name: <source_cluster>
namespace: openshift-migration
destMigClusterRef:
name: <destination_cluster>
namespace: openshift-migration
imageStreamRef:
name: <image_stream>
namespace: <source_image_stream_namespace>
destNamespace: <destination_image_stream_namespace>
10.2.3. DirectVolumeMigration Copier lienLien copié sur presse-papiers!
La CR DirectVolumeMigration copie directement les volumes persistants (PV) du cluster source vers le cluster de destination.
apiVersion: migration.openshift.io/v1alpha1
kind: DirectVolumeMigration
metadata:
name: <direct_volume_migration>
namespace: openshift-migration
spec:
createDestinationNamespaces: false
deleteProgressReportingCRs: false
destMigClusterRef:
name: <host_cluster>
namespace: openshift-migration
persistentVolumeClaims:
- name: <pvc>
namespace: <pvc_namespace>
srcMigClusterRef:
name: <source_cluster>
namespace: openshift-migration
- 1
- Défini sur
truepour créer des espaces de nommage pour les PV sur le cluster de destination. - 2
- Défini sur
truepour supprimer les CRDirectVolumeMigrationProgressaprès la migration. La valeur par défaut estfalseafin que les CRDirectVolumeMigrationProgresssoient conservés pour la résolution des problèmes. - 3
- Mettez à jour le nom du cluster si le cluster de destination n’est pas le cluster hôte.
- 4
- Indiquez une ou plusieurs PVC à migrer.
10.2.4. DirectVolumeMigrationProgress Copier lienLien copié sur presse-papiers!
La CR DirectVolumeMigrationProgress affiche la progression de la CR DirectVolumeMigration.
apiVersion: migration.openshift.io/v1alpha1
kind: DirectVolumeMigrationProgress
metadata:
labels:
controller-tools.k8s.io: "1.0"
name: <direct_volume_migration_progress>
spec:
clusterRef:
name: <source_cluster>
namespace: openshift-migration
podRef:
name: <rsync_pod>
namespace: openshift-migration
10.2.5. MigAnalytic Copier lienLien copié sur presse-papiers!
La CR MigAnalytic collecte le nombre d’images, les ressources Kubernetes et la capacité du volume persistant (PV) à partir d’une CR MigPlan associée.
Vous pouvez configurer les données qu’elle collecte.
apiVersion: migration.openshift.io/v1alpha1
kind: MigAnalytic
metadata:
annotations:
migplan: <migplan>
name: <miganalytic>
namespace: openshift-migration
labels:
migplan: <migplan>
spec:
analyzeImageCount: true
analyzeK8SResources: true
analyzePVCapacity: true
listImages: false
listImagesLimit: 50
migPlanRef:
name: <migplan>
namespace: openshift-migration
- 1
- Facultatif : renvoie le nombre d’images.
- 2
- Facultatif : renvoie le numéro, le type et la version de l’API des ressources Kubernetes.
- 3
- Facultatif : renvoie la capacité du volume persistant (PV).
- 4
- Renvoie une liste de noms d’images. La valeur par défaut est
falseafin que la sortie ne soit pas excessivement longue. - 5
- Facultatif : indiquez le nombre maximum de noms d’images à renvoyer si
listImagesest défini surtrue.
10.2.6. MigCluster Copier lienLien copié sur presse-papiers!
La CR MigCluster définit un cluster hôte, local ou distant.
apiVersion: migration.openshift.io/v1alpha1
kind: MigCluster
metadata:
labels:
controller-tools.k8s.io: "1.0"
name: <host_cluster>
namespace: openshift-migration
spec:
isHostCluster: true
# The 'azureResourceGroup' parameter is relevant only for Microsoft Azure.
azureResourceGroup: <azure_resource_group>
caBundle: <ca_bundle_base64>
insecure: false
refresh: false
# The 'restartRestic' parameter is relevant for a source cluster.
restartRestic: true
# The following parameters are relevant for a remote cluster.
exposedRegistryPath: <registry_route>
url: <destination_cluster_url>
serviceAccountSecretRef:
name: <source_secret>
namespace: openshift-config
- 1
- Mettez à jour le nom du cluster si le pod
migration-controllern’est pas en cours d’exécution sur ce cluster. - 2
- Le pod
migration-controllers’exécute sur ce cluster si la valeur est définie surtrue. - 3
- Microsoft Azure uniquement : indiquez le groupe de ressources.
- 4
- Facultatif : si vous avez créé un fichier de groupement de certificats pour les certificats CA auto-signés et si la valeur du paramètre
insecureestfalse, spécifiez le fichier de groupement de certificats codé en Base64. - 5
- Définissez la valeur sur
truepour désactiver la vérification SSL. - 6
- Définissez la valeur sur
truepour valider le cluster. - 7
- Définissez la valeur sur
truepour redémarrer les podsResticsur le cluster source après la création des podsStage. - 8
- Uniquement pour le cluster distant et la migration directe d’images : indiquez le chemin du registre sécurisé exposé.
- 9
- Cluster distant uniquement : indiquez l’URL.
- 10
- Cluster distant uniquement : indiquez le nom de l’objet
Secret.
10.2.7. MigHook Copier lienLien copié sur presse-papiers!
La ressource personnalisée (CR) MigHook définit un script de migration automatique qui exécute un code personnalisé à une étape spécifique de la migration. Vous pouvez créer jusqu’à quatre scripts de ce type. Chaque script automatique s’exécute au cours d’une phase différente de la migration.
Vous pouvez configurer le nom du script automatique, la durée d’exécution, une image personnalisée et le cluster où le script en question sera exécuté.
Les phases de migration et les espaces de nommage des scripts automatiques sont configurés dans la CR MigPlan.
apiVersion: migration.openshift.io/v1alpha1
kind: MigHook
metadata:
generateName: <hook_name_prefix>
name: <mighook>
namespace: openshift-migration
spec:
activeDeadlineSeconds: 1800
custom: false
image: <hook_image>
playbook: <ansible_playbook_base64>
targetCluster: source
- 1
- Facultatif : un hachage unique est ajouté à la valeur de ce paramètre afin que chaque script de migration automatique ait un nom unique. Il n’est pas nécessaire de spécifier la valeur du paramètre
name. - 2
- Indiquez le nom du script de migration automatique, à moins que vous ne spécifiiez la valeur du paramètre
generateName. - 3
- Facultatif : indiquez le nombre maximum de secondes pendant lesquelles un script automatique peut être exécuté. La valeur par défaut est
1800. - 4
- Le script automatique est une image personnalisée si la valeur est définie sur
true. L’image personnalisée peut inclure Ansible ou être écrite dans un autre langage de programmation. - 5
- Spécifiez l’image personnalisée ;
quay.io/konveyor/hook-runner:latest, par exemple. Requis si le paramètrecustomest défini surtrue. - 6
- Playbook Ansible codé en base64. Requis si le paramètre
customest défini surfalse. - 7
- Indiquez le cluster sur lequel le script automatique sera exécuté. La valeur valide est
sourceoudestination.
10.2.8. MigMigration Copier lienLien copié sur presse-papiers!
La CR MigMigration exécute une CR MigPlan.
Vous pouvez configurer une CR MigMigration pour exécuter une migration par étapes ou incrémentielle, pour annuler une migration en cours ou pour annuler une migration terminée.
apiVersion: migration.openshift.io/v1alpha1
kind: MigMigration
metadata:
labels:
controller-tools.k8s.io: "1.0"
name: <migmigration>
namespace: openshift-migration
spec:
canceled: false
rollback: false
stage: false
quiescePods: true
keepAnnotations: true
verify: false
migPlanRef:
name: <migplan>
namespace: openshift-migration
- 1
- Défini sur
truepour annuler une migration en cours. - 2
- Défini sur
truepour annuler une migration terminée. - 3
- Défini sur
truepour exécuter une migration par étapes. Les données sont copiées de manière incrémentielle et les pods du cluster source ne sont pas arrêtés. - 4
- Défini sur
truepour arrêter l’application pendant la migration. Les pods du cluster source sont mis à l’échelle sur0après l’étapeBackup. - 5
- Défini sur
truepour conserver les étiquettes et les annotations appliquées pendant la migration. - 6
- Défini sur
truepour s’assurer que l’état des pods migrés sur le cluster de destination est vérifié et pour renvoyer les noms des pods qui ne se trouvent pas dans l’étatRunning.
10.2.9. MigPlan Copier lienLien copié sur presse-papiers!
La CR MigPlan définit les paramètres d’un plan de migration.
Vous pouvez configurer des espaces de nommage de destination, des phases de script automatique et une migration directe ou indirecte.
Par défaut, l’espace de nommage de destination porte le même nom que l’espace de nommage source. Si vous configurez un espace de nommage de destination différent, vous devez vous assurer que les espaces de nommage ne sont pas dupliqués sur les clusters source ou de destination, car les plages UID et GID sont copiées pendant la migration.
apiVersion: migration.openshift.io/v1alpha1
kind: MigPlan
metadata:
labels:
controller-tools.k8s.io: "1.0"
name: <migplan>
namespace: openshift-migration
spec:
closed: false
srcMigClusterRef:
name: <source_cluster>
namespace: openshift-migration
destMigClusterRef:
name: <destination_cluster>
namespace: openshift-migration
hooks:
- executionNamespace: <namespace>
phase: <migration_phase>
reference:
name: <hook>
namespace: <hook_namespace>
serviceAccount: <service_account>
indirectImageMigration: true
indirectVolumeMigration: false
migStorageRef:
name: <migstorage>
namespace: openshift-migration
namespaces:
- <source_namespace_1>
- <source_namespace_2>
- <source_namespace_3>:<destination_namespace_4>
refresh: false
- 1
- La migration est terminée si le paramètre est défini sur
true. Vous ne pouvez pas créer une autre CRMigMigrationpour cette CRMigPlan. - 2
- Facultatif : vous pouvez spécifier jusqu’à quatre scripts de migration automatiques. Chaque script automatique doit être exécuté pendant une phase différente de la migration.
- 3
- Facultatif : indiquez l’espace de nommage dans lequel le script automatique sera exécuté.
- 4
- Facultatif : indiquez la phase de migration au cours de laquelle un script automatique s’exécute. Un script automatique peut être affecté à une seule phase. Les valeurs valides sont
PreBackup,PostBackup,PreRestoreetPostRestore. - 5
- Facultatif : indiquez le nom de la CR
MigHook. - 6
- Facultatif : indiquez l’espace de nommage de la CR
MigHook. - 7
- Facultatif : indiquez un compte de service avec les privilèges
cluster-admin. - 8
- La migration directe des images est désactivée si le paramètre est défini sur
true. Les images sont copiées du cluster source vers le référentiel de réplication et du référentiel de réplication vers le cluster de destination. - 9
- La migration directe des volumes est désactivée si le paramètre est défini sur
true. Les volumes persistants (PV) sont copiés du cluster source vers le référentiel de réplication et du référentiel de réplication vers le cluster de destination. - 10
- Indiquez un ou plusieurs espaces de nommage sources. Si vous ne spécifiez que l’espace de nommage source, l’espace de nommage de destination est le même.
- 11
- Indiquez l’espace de nommage de destination s’il est différent de l’espace source.
- 12
- La CR
MigPlanest validée si le paramètre est défini surtrue.
10.2.10. MigStorage Copier lienLien copié sur presse-papiers!
La CR MigStorage décrit le stockage d’objets pour le référentiel de réplication.
Amazon Web Services (AWS), Microsoft Azure, Google Cloud Storage, Multi-Cloud Object Gateway et le stockage cloud générique compatible S3 sont pris en charge.
AWS et la méthode de copie de cliché ont des paramètres supplémentaires.
apiVersion: migration.openshift.io/v1alpha1
kind: MigStorage
metadata:
labels:
controller-tools.k8s.io: "1.0"
name: <migstorage>
namespace: openshift-migration
spec:
backupStorageProvider: <backup_storage_provider>
volumeSnapshotProvider: <snapshot_storage_provider>
backupStorageConfig:
awsBucketName: <bucket>
awsRegion: <region>
credsSecretRef:
namespace: openshift-config
name: <storage_secret>
awsKmsKeyId: <key_id>
awsPublicUrl: <public_url>
awsSignatureVersion: <signature_version>
volumeSnapshotConfig:
awsRegion: <region>
credsSecretRef:
namespace: openshift-config
name: <storage_secret>
refresh: false
- 1
- Indiquez le fournisseur de stockage.
- 2
- Méthode de copie de cliché uniquement : indiquez le fournisseur de stockage.
- 3
- AWS uniquement : indiquez le nom du compartiment.
- 4
- AWS uniquement : indiquez la région du compartiment ;
us-east-1, par exemple. - 5
- Indiquez le nom de l’objet
Secretque vous avez créé pour le stockage. - 6
- AWS uniquement : si vous utilisez AWS Key Management Service (AWS KMS), indiquez l’identifiant unique de la clé.
- 7
- AWS uniquement : si vous avez accordé un accès public au compartiment AWS, indiquez son URL.
- 8
- AWS uniquement : indiquez la version de la signature AWS pour l’authentification des demandes adressées au compartiment ;
4, par exemple. - 9
- Méthode de copie de cliché uniquement : indiquez la région géographique des clusters.
- 10
- Méthode de copie de cliché uniquement : indiquez le nom de l’objet
Secretque vous avez créé pour le stockage. - 11
- Définissez la valeur sur
truepour valider le cluster.