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 Copier lienLien copié sur presse-papiers!
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
4.8.2. Appliquer les quotas de disque Copier lienLien copié sur presse-papiers!
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 Copier lienLien copié sur presse-papiers!
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) Copier lienLien copié sur presse-papiers!
En option, OpenShift Container Platform peut utiliser CHAP pour s'authentifier auprès des cibles iSCSI :
- 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 Copier lienLien copié sur presse-papiers!
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 :
- 1
- Ajoutez des portails cibles supplémentaires en utilisant le champ
portals
.
4.8.5. initiateur personnalisé iSCSI IQN Copier lienLien copié sur presse-papiers!
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
.
- 1
- Indiquez le nom de l'initiateur.