13.4. Configuration de pages volumineuses
Les nœuds doivent pré-allouer les pages volumineuses utilisées dans un cluster OpenShift Container Platform. Il existe deux façons de réserver des pages volumineuses : au démarrage et à l'exécution. La réservation au démarrage augmente les chances de succès car la mémoire n'a pas encore été fragmentée de manière significative. Le Node Tuning Operator prend actuellement en charge l'allocation de pages volumineuses au moment du démarrage sur des nœuds spécifiques.
13.4.1. Au moment du démarrage
Procédure
Pour minimiser les redémarrages de nœuds, l'ordre des étapes ci-dessous doit être respecté :
Étiqueter tous les nœuds qui ont besoin du même réglage de pages énormes par une étiquette.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc label node <node_using_hugepages> node-role.kubernetes.io/worker-hp= $ oc label node <node_using_hugepages> node-role.kubernetes.io/worker-hp=
oc label node <node_using_hugepages> node-role.kubernetes.io/worker-hp= $ oc label node <node_using_hugepages> node-role.kubernetes.io/worker-hp=
Créez un fichier avec le contenu suivant et nommez-le
hugepages-tuned-boottime.yaml
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow apiVersion: tuned.openshift.io/v1 kind: Tuned metadata: name: hugepages namespace: openshift-cluster-node-tuning-operator spec: profile: - data: | [main] summary=Boot time configuration for hugepages include=openshift-node [bootloader] cmdline_openshift_node_hugepages=hugepagesz=2M hugepages=50 name: openshift-node-hugepages recommend: - machineConfigLabels: machineconfiguration.openshift.io/role: "worker-hp" priority: 30 profile: openshift-node-hugepages
apiVersion: tuned.openshift.io/v1 kind: Tuned metadata: name: hugepages
1 namespace: openshift-cluster-node-tuning-operator spec: profile:
2 - data: | [main] summary=Boot time configuration for hugepages include=openshift-node [bootloader] cmdline_openshift_node_hugepages=hugepagesz=2M hugepages=50
3 name: openshift-node-hugepages recommend: - machineConfigLabels:
4 machineconfiguration.openshift.io/role: "worker-hp" priority: 30 profile: openshift-node-hugepages
- 1
- Réglez le site
name
de la ressource accordée surhugepages
. - 2
- Définir la section
profile
pour allouer des pages volumineuses. - 3
- L'ordre des paramètres est important, car certaines plates-formes prennent en charge des pages volumineuses de différentes tailles.
- 4
- Activer la correspondance basée sur le pool de configuration de la machine.
Créer l'objet Tuned
hugepages
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc create -f hugepages-tuned-boottime.yaml
$ oc create -f hugepages-tuned-boottime.yaml
Créez un fichier avec le contenu suivant et nommez-le
hugepages-mcp.yaml
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfigPool metadata: name: worker-hp labels: worker-hp: "" spec: machineConfigSelector: matchExpressions: - {key: machineconfiguration.openshift.io/role, operator: In, values: [worker,worker-hp]} nodeSelector: matchLabels: node-role.kubernetes.io/worker-hp: ""
apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfigPool metadata: name: worker-hp labels: worker-hp: "" spec: machineConfigSelector: matchExpressions: - {key: machineconfiguration.openshift.io/role, operator: In, values: [worker,worker-hp]} nodeSelector: matchLabels: node-role.kubernetes.io/worker-hp: ""
Créer le pool de configuration de la machine :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc create -f hugepages-mcp.yaml
$ oc create -f hugepages-mcp.yaml
Avec suffisamment de mémoire non fragmentée, tous les nœuds du pool de configuration de la machine worker-hp
devraient maintenant avoir 50 pages énormes de 2Mi allouées.
oc get node <node_using_hugepages> -o jsonpath="{.status.allocatable.hugepages-2Mi}"
$ oc get node <node_using_hugepages> -o jsonpath="{.status.allocatable.hugepages-2Mi}"
100Mi
Le plugin TuneD bootloader est actuellement pris en charge sur les nœuds de travail Red Hat Enterprise Linux CoreOS (RHCOS) 8.x. Pour les nœuds de travail Red Hat Enterprise Linux (RHEL) 7.x, le plugin de chargeur de démarrage TuneD n'est actuellement pas pris en charge.