4.3. Stockage persistant à l'aide d'Azure File
OpenShift Container Platform prend en charge les volumes de fichiers Microsoft Azure. Vous pouvez approvisionner votre cluster OpenShift Container Platform avec un stockage persistant en utilisant Azure. Une certaine familiarité avec Kubernetes et Azure est supposée.
Le cadre de volume persistant Kubernetes permet aux administrateurs de provisionner un cluster avec un stockage persistant et donne aux utilisateurs un moyen de demander ces ressources sans avoir aucune connaissance de l'infrastructure sous-jacente. Vous pouvez approvisionner les volumes Azure File de manière dynamique.
Les volumes persistants ne sont pas liés à un seul projet ou espace de noms, et vous pouvez les partager à travers le cluster OpenShift Container Platform. Les revendications de volumes persistants sont spécifiques à un projet ou à un espace de noms, et peuvent être demandées par les utilisateurs pour être utilisées dans des applications.
La haute disponibilité du stockage dans l'infrastructure est laissée au fournisseur de stockage sous-jacent.
Les volumes Azure File utilisent le bloc de messages du serveur.
Dans les prochaines versions d'OpenShift Container Platform, les volumes provisionnés à l'aide des plugins in-tree existants sont prévus pour une migration vers leur pilote CSI équivalent. La migration automatique CSI devrait être transparente. La migration ne modifie pas la façon dont vous utilisez tous les objets API existants, tels que les volumes persistants, les réclamations de volumes persistants et les classes de stockage. Pour plus d'informations sur la migration, voir Migration automatique CSI.
Après la migration complète, les plugins in-tree seront éventuellement supprimés dans les futures versions d'OpenShift Container Platform.
Ressources supplémentaires
4.3.1. Créer la demande de volume persistant de partage de fichiers Azure
Pour créer la revendication de volume persistant, vous devez d'abord définir un objet Secret
qui contient le compte et la clé Azure. Ce secret est utilisé dans la définition de PersistentVolume
et sera référencé par la revendication de volume persistant pour être utilisé dans les applications.
Conditions préalables
- Un partage de fichiers Azure existe.
- Les informations d'identification permettant d'accéder à ce partage, en particulier le compte de stockage et la clé, sont disponibles.
Procédure
Créez un objet
Secret
qui contient les informations d'identification d'Azure File :$ oc create secret generic <secret-name> --from-literal=azurestorageaccountname=<storage-account> \ 1 --from-literal=azurestorageaccountkey=<storage-account-key> 2
Créez un objet
PersistentVolume
qui fait référence à l'objetSecret
que vous avez créé :apiVersion: "v1" kind: "PersistentVolume" metadata: name: "pv0001" 1 spec: capacity: storage: "5Gi" 2 accessModes: - "ReadWriteOnce" storageClassName: azure-file-sc azureFile: secretName: <secret-name> 3 shareName: share-1 4 readOnly: false
Créez un objet
PersistentVolumeClaim
qui correspond au volume persistant que vous avez créé :apiVersion: "v1" kind: "PersistentVolumeClaim" metadata: name: "claim1" 1 spec: accessModes: - "ReadWriteOnce" resources: requests: storage: "5Gi" 2 storageClassName: azure-file-sc 3 volumeName: "pv0001" 4
- 1
- Le nom de la demande de volume persistant.
- 2
- La taille de cette demande de volume persistant.
- 3
- Nom de la classe de stockage utilisée pour approvisionner le volume persistant. Spécifiez la classe de stockage utilisée dans la définition de
PersistentVolume
. - 4
- Le nom de l'objet
PersistentVolume
existant qui fait référence au partage de fichiers Azure.
4.3.2. Monter le partage de fichiers Azure dans un pod
Une fois que la demande de volume persistant a été créée, elle peut être utilisée à l'intérieur par une application. L'exemple suivant montre le montage de ce partage à l'intérieur d'un pod.
Conditions préalables
- Il existe une revendication de volume persistant qui est mappée au partage de fichiers Azure sous-jacent.
Procédure
Créer un pod qui monte la revendication de volume persistant existante :
apiVersion: v1 kind: Pod metadata: name: pod-name 1 spec: containers: ... volumeMounts: - mountPath: "/data" 2 name: azure-file-share volumes: - name: azure-file-share persistentVolumeClaim: claimName: claim1 3
- 1
- Le nom du pod.
- 2
- Le chemin pour monter le partage de fichiers Azure à l'intérieur du module. Ne montez pas à la racine du conteneur,
/
, ou tout autre chemin qui est le même dans l'hôte et le conteneur. Cela peut corrompre votre système hôte si le conteneur est suffisamment privilégié, comme l'hôte/dev/pts
files. Vous pouvez monter l'hôte en toute sécurité en utilisant/host
. - 3
- Le nom de l'objet
PersistentVolumeClaim
qui a été créé précédemment.