4.8. Stockage persistant à l'aide d'iSCSI
Vous pouvez provisionner votre cluster OpenShift Container Platform avec un stockage persistant en utilisant iSCSI. Une certaine familiarité avec Kubernetes et iSCSI est supposée.
Le cadre de volume persistant de 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.
La haute disponibilité du stockage dans l'infrastructure est laissée au fournisseur de stockage sous-jacent.
Lorsque vous utilisez iSCSI sur Amazon Web Services, vous devez mettre à jour la stratégie de sécurité par défaut afin d'inclure le trafic TCP entre les nœuds sur les ports iSCSI. Par défaut, il s'agit des ports 860
et 3260
.
Les utilisateurs doivent s'assurer que l'initiateur iSCSI est déjà configuré sur tous les nœuds d'OpenShift Container Platform en installant le package iscsi-initiator-utils
et en configurant leur nom d'initiateur dans /etc/iscsi/initiatorname.iscsi
. Le paquet iscsi-initiator-utils
est déjà installé sur les déploiements qui utilisent Red Hat Enterprise Linux CoreOS (RHCOS).
Pour plus d'informations, voir Gestion des périphériques de stockage.
4.8.1. Provisionnement
Vérifiez que le stockage existe dans l'infrastructure sous-jacente avant de le monter en tant que volume dans OpenShift Container Platform. Tout ce qui est nécessaire pour l'iSCSI est le portail cible iSCSI, un nom qualifié iSCSI (IQN) valide, un numéro LUN valide, le type de système de fichiers et l'API PersistentVolume
.
PersistentVolume
définition de l'objet
apiVersion: v1 kind: PersistentVolume metadata: name: iscsi-pv spec: capacity: storage: 1Gi accessModes: - ReadWriteOnce iscsi: targetPortal: 10.16.154.81:3260 iqn: iqn.2014-12.example.server:storage.target00 lun: 0 fsType: 'ext4'
4.8.2. Appliquer les quotas de disque
Utilisez les partitions LUN pour appliquer les quotas de disque et les contraintes de taille. Chaque LUN est un volume persistant. Kubernetes impose des noms uniques pour les volumes persistants.
L'application de quotas de cette manière permet à l'utilisateur final de demander un stockage persistant d'un montant spécifique (par exemple, 10Gi
) et d'obtenir un volume correspondant d'une capacité égale ou supérieure.
4.8.3. sécurité des volumes iSCSI
Les utilisateurs demandent du stockage avec un objet PersistentVolumeClaim
. Cette demande n'existe que dans l'espace de noms de l'utilisateur et ne peut être référencée que par un pod dans ce même espace de noms. Toute tentative d'accès à une demande de volume persistant à travers un espace de noms entraîne l'échec du module.
Chaque LUN iSCSI doit être accessible par tous les nœuds du cluster.
4.8.3.1. Configuration du protocole d'authentification Challenge Handshake (CHAP)
En option, OpenShift Container Platform peut utiliser CHAP pour s'authentifier auprès des cibles iSCSI :
apiVersion: v1 kind: PersistentVolume metadata: name: iscsi-pv spec: capacity: storage: 1Gi accessModes: - ReadWriteOnce iscsi: targetPortal: 10.0.0.1:3260 iqn: iqn.2016-04.test.com:storage.target00 lun: 0 fsType: ext4 chapAuthDiscovery: true 1 chapAuthSession: true 2 secretRef: name: chap-secret 3
- 1
- Activer l'authentification CHAP de la découverte iSCSI.
- 2
- Activer l'authentification CHAP de la session iSCSI.
- 3
- Spécifier le nom de l'objet Secrets avec le nom d'utilisateur et le mot de passe. Cet objet
Secret
doit être disponible dans tous les espaces de noms qui peuvent utiliser le volume référencé.
4.8.4. iSCSI multipathing
Pour le stockage basé sur iSCSI, vous pouvez configurer plusieurs chemins en utilisant le même IQN pour plusieurs adresses IP de portail cible. Les chemins multiples garantissent l'accès au volume persistant en cas de défaillance d'un ou de plusieurs composants d'un chemin.
Pour spécifier des chemins multiples dans la spécification du pod, utilisez le champ portals
. Par exemple :
apiVersion: v1
kind: PersistentVolume
metadata:
name: iscsi-pv
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
iscsi:
targetPortal: 10.0.0.1:3260
portals: ['10.0.2.16:3260', '10.0.2.17:3260', '10.0.2.18:3260'] 1
iqn: iqn.2016-04.test.com:storage.target00
lun: 0
fsType: ext4
readOnly: false
- 1
- Ajoutez des portails cibles supplémentaires en utilisant le champ
portals
.
4.8.5. initiateur personnalisé iSCSI IQN
Configurez le nom qualifié iSCSI (IQN) de l'initiateur personnalisé si les cibles iSCSI sont limitées à certains IQN, mais que les nœuds auxquels les PV iSCSI sont attachés ne sont pas garantis d'avoir ces IQN.
Pour spécifier un IQN d'initiateur personnalisé, utilisez le champ initiatorName
.
apiVersion: v1
kind: PersistentVolume
metadata:
name: iscsi-pv
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
iscsi:
targetPortal: 10.0.0.1:3260
portals: ['10.0.2.16:3260', '10.0.2.17:3260', '10.0.2.18:3260']
iqn: iqn.2016-04.test.com:storage.target00
lun: 0
initiatorName: iqn.2016-04.test.com:custom.iqn 1
fsType: ext4
readOnly: false
- 1
- Indiquez le nom de l'initiateur.