Configurez GlusterFS quand vous installez votre cluster IBM® Cloud Private.
Procédez comme suit pour configurer GlusterFS :
Configurez un groupe d'hôtes avec les noeuds que vous utilisez pour configurer GlusterFS. Vous pouvez vous servir de noeuds dédiés pour GlusterFS ou configurer GlusterFS sur des noeuds qui sont aussi utilisés en tant que noeuds worker.
Si vous vous servez de noeuds dédiés pour configurer GlusterFS, procédez comme suit. Ces noeuds ne sont pas utilisés en tant que noeuds worker.
Configurez un groupe d'hôtes personnalisé avec les noeuds de stockage GlusterFS dédiés. Pour plus d'informations sur la façon d'ajouter un groupe d'hôtes, voir Définition de groupes d'hôtes personnalisés.
Une configuration exemple d'un groupe d'hôtes, avec des noeuds de stockage GlusterFS dédiés, est présentée ci-dessous. Vous ajoutez cette configuration dans le fichier /<installation_directory>/cluster/hosts.
Remarque : les noeuds worker et GlusterFS ne sont pas identiques.
[worker]
2.2.2.2
...
2.2.2.9
.
.
[hostgroup-glusterfs]
6.6.6.6
...
6.6.6.9
Si vous configurez GlusterFS sur des noeuds qui sont aussi utilisés en tant que noeuds worker, procédez comme suit.
/<installation_directory>/cluster/hosts, ajoutez les mêmes noeuds en tant que noeuds worker et groupe d'hôtes personnalisé. Dans le fichier /<installation_directory>/cluster/config.yaml, configurez le paramètre no_taint_group avec le nom de groupe d'hôtes personnalisé.
Une configuration exemple de noeuds de stockage partagés
est présentée ci-dessous. Vous ajoutez cette configuration dans le fichier /<installation_directory>/cluster/hosts.
[worker]
2.2.2.2
...
2.2.2.9
.
.
[hostgroup-glusterfs]
2.2.2.2
...
2.2.2.9
Une configuration exemple d'ajout du paramètre no_taint_group est présentée ci-dessous. Vous ajoutez cette configuration dans le fichier /<installation_directory>/cluster/config.yaml.
no_taint_group: ["hostgroup-glusterfs"]
Si un pare-feu est activé, ajoutez la liste des ports requis dans le fichier /<installation_directory>/cluster/config.yaml. Localisez la section firewall_enabled: true. Ajoutez les ports suivants pour le groupe d'hôtes
personnalisé que vous avez créé avec les noeuds de stockage GlusterFS dédiés.
Une configuration exemple du groupe d'hôtes personnalisé hostgroup-glusterfs est présentée ci-dessous :
firewall_open_ports:
hostgroup-glusterfs:
- 24007/tcp
- 24008/tcp
- 2222/tcp
- 49152-49251/tcp
Remarque : si vous utilisez des noeuds worker existants pour déployer GlusterFS, vous devez ouvrir manuellement tous les ports sur tous les noeuds.
Activez le stockage GlusterFS. Définissez storage-glusterfs: enabled sous la liste des services de gestion dans le fichier /<installation_directory>/cluster/config.yaml.
management_services:
istio: disabled
vulnerability-advisor: disabled
storage-glusterfs: enabled
storage-minio: disabled
Ajoutez l'élément de code suivant dans le fichier config.yaml :
## GlusterFS Storage Settings
storage-glusterfs:
nodes:
- ip: <worker_node_m_IP_address>
devices:
- <link path>/<symlink of device aaa>
- <link path>/<symlink of device bbb>
- ip: <worker_node_n_IP_address>
devices:
- <link path>/<symlink of device ccc>
- ip: <worker_node_o_IP_address>
devices:
- <link path>/<symlink of device ddd>
storageClass:
create: true
name: glusterfs
isDefault: false
volumeType: replicate:3
reclaimPolicy: Delete
volumeBindingMode: Immediate
volumeNamePrefix: icp
additionalProvisionerParams: {}
allowVolumeExpansion: true
gluster:
resources:
requests:
cpu: 500m
memory: 512Mi
limits:
cpu: 1000m
memory: 1Gi
heketi:
backupDbSecret: heketi-db-backup
authSecret: "heketi-secret"
maxInFlightOperations: "20"
dbSyncupDelay: "10"
tls:
generate: true
issuer: "icp-ca-issuer"
issuerKind: "ClusterIssuer"
secretName: ""
resources:
requests:
cpu: 500m
memory: 512Mi
limits:
cpu: 1000m
memory: 1Gi
nodeSelector:
key: hostgroup
value: glusterfs
prometheus:
enabled: true
path: "/metrics"
port: 8080
tolerations: []
podPriorityClass: "system-cluster-critical"
La description des paramètres est proposée ci-après. Pour une liste des paramètres disponibles, voir Configuration .
Remarque : si vous configurez les paramètres relatifs à la classe de stockage par défaut et au type de volume, prenez soin d'utiliser la syntaxe appropriée. Utilisez isDefault: <true or false> et volumeType: <volume type>.
ip est l'adresse IP du noeud sur lequel vous configurez GlusterFS.devices est le chemin d'accès complet au lien symbolique (ou lien symlink) de l'unité de stockage.
Remarque : N'ajoutez pas le nom d'unité. Ajoutez les liens symlink.
storageClass crée une classe de stockage pour GlusterFS.
create est l'option à utiliser pour configurer une classe de stockage. La valeur par défaut est true. Si vous ne voulez pas créer une classe de stockage, spécifiez false.name est le nom de la classe de stockage. La valeur par défaut est glusterfs. Le nom de la classe de stockage doit respecter la convention de dénomination Kubernetes : 253 caractères au maximum, et uniquement des caractères
alphanumériques minuscules, - et ..isDefault est l'option permettant de faire de la classe de stockage GlusterFS la classe de stockage par défaut. Valeur par défaut : false. Si vous souhaitez que cette classe de stockage soit la classe par défaut,
spécifiez true.volumeType est un paramètre de configuration pour le volume. Vous pouvez affecter la valeur replicate:3 à cette option, ce qui crée un volume de réplique de 3. Les valeurs de paramètre valides sont : none,
replicate:<replicate_count>, disperse:<data>:<redundancy_count>. La valeur par défaut est replicate:3.volumeType: none.reclaimPolicy est la politique de récupération de classe de stockage GlusterFS. La valeur par défaut est Delete.volumeBindingMode est le mode de liaison de volume de classe de stockage GlusterFS. La valeur par défaut est Immediate.volumeNamePrefix est le préfixe du nom de volume de classe de stockage GlusterFS. La valeur par défaut est icp.additionalProvisionerParams sont des paramètres de service de mise à disposition de classe de stockage supplémentaires.allowVolumeExpansion est utilisé pour définir si une extension de volume est autorisée. Valeur par défaut : true.
Remarque : Vous pourrez, à tout moment, créer d'autres classes de stockage pour utiliser le stockage GlusterFS. Voir Création d'une classe de stockage pour GlusterFS.
gluster définit les paramètres pour la configuration GlusterFS.
resources définit les valeurs maximum et minimum d'unité centrale et de mémoire requises.
requests
cpu est le montant minimal de CPU requis. La valeur par défaut est 500 millicpu (m).memory est le montant minimal de mémoire requis. La valeur par défaut est 512 Mi.limits
cpu est le montant maximal de CPU autorisé. La valeur par défaut est 1000 m.memory est le montant maximal de mémoire autorisé. La valeur par défaut est 1 Gi.heketi définit les paramètres pour la configuration Heketi.
backupDbSecret est la base de données Heketi à sauvegarder dans un secret kubernetes. La valeur par défaut est heketi-db-backup.authSecret est le secret qui contient le mot de passe chiffré de l'utilisateur admin Heketi.
Remarque : le secret est automatiquement créé en utilisant le mot de passe <default_admin_password> qui est ajouté dans le fichier /<installation_directory>/cluster/config.yaml.maxInFlightOperations est le nombre maximal de demandes simultanées pour un volume persistant. La valeur par défaut est 20. dbSyncupDelay est la durée en secondes nécessaire pour synchroniser les données de la base de données Heketi avec le secret de sauvegarde. La valeur par défaut est 10.tls définit les paramètres de configuration TLS (Transport Layer Security).
generate est un indicateur booléen. Lorsqu'il a pour valeur true, cet indicateur crée un certificat à l'aide de l'autorité de certification IBM Cloud Private. Si vous ne définissez pas cet indicateur,
vous devez créer un secret qui contient une clé privée, un certificat TLS et un certificat d'autorité de certification. Vous devez indiquer le nom du secret dans le paramètre heketi.tls.secretName.issuer est le nom de l'émetteur sur l'émetteur de certificat IBM Cloud Private.issuerKind est le type d'autorité de certification à partir duquel les certificats x509 signés sont obtenus. Les valeurs valides sont ClusterIssuer et Issuer. secretName est le certificat que vous indiquez en tant qu'objet secret. Le nom de la clé doit être tls.key et le nom du certificat doit être tls.crt. Vous devez définir ce paramètre lorsque vous affectez
à l'indicateur heketi.tls.generate la valeur false.resources correspond aux valeurs maximum et minimum d'unité centrale et de mémoire requises.
requests
cpu est le montant minimal de CPU requis. La valeur par défaut est 500 m.memory est le montant minimal de mémoire requis. La valeur par défaut est 512 Mio.limits
cpu est le montant maximal de CPU autorisé. La valeur par défaut est 1000 m.memory est le montant maximal de mémoire autorisé. La valeur par défaut est 1 Gi.prometheus définit l'option pour activer ou désactiver la surveillance Prometheus.enabled est le paramètre utilisé pour activer ou désactiver la surveillance Prometheus. Valeur par défaut : true.path est le chemin Heketi pour extraire les métriques. La valeur par défaut est /metrics.port est le port sur lequel le service Heketi est exposé. La valeur par défaut est 8080.nodeSelector définit le libellé de sélecteur de noeud pour les ressources de stockage. Utilisez le nom du groupe d'hôtes personnalisé que vous avez créé pour la configuration GlusterFS. Ainsi, le groupe d'hôtes personnalisé hostgroup-glusterfs crée des noeuds avec le libellé hostgroup=glusterfs.
key est la clé de libellé. La valeur par défaut est hostgroup.value est la valeur de libellé. La valeur par défaut est glusterfs.podPriorityClass est la préférence de classe de priorité pour les pods GlusterFS et Heketi. tolerations est la liste des tolérances que vous voulez spécifier pour indiquer si les noeuds de stockage disposent de tâches taint supplémentaires.
La configuration de GlusterFS est terminée. Passez à l'installation d'IBM Cloud Private.