21.6. Configuration recommandée d'un cluster OpenShift à nœud unique pour les charges de travail des applications vDU
Utilisez les informations de référence suivantes pour comprendre les configurations OpenShift à nœud unique requises pour déployer des applications d'unités distribuées virtuelles (vDU) dans le cluster. Les configurations comprennent les optimisations de cluster pour les charges de travail à haute performance, l'activation du partitionnement de la charge de travail et la minimisation du nombre de redémarrages requis après l'installation.
21.6.1. Exécuter des applications à faible latence sur OpenShift Container Platform Copier lienLien copié sur presse-papiers!
OpenShift Container Platform permet un traitement à faible latence pour les applications exécutées sur du matériel commercial (COTS) en utilisant plusieurs technologies et dispositifs matériels spécialisés :
- Noyau temps réel pour RHCOS
- Veille à ce que les charges de travail soient traitées avec un degré élevé de déterminisme des processus.
- Isolation de l'unité centrale
- Évite les retards dans la programmation de l'unité centrale et garantit la disponibilité constante de la capacité de l'unité centrale.
- Gestion de la topologie en fonction des NUMA
- Alignement de la mémoire et des pages volumineuses sur les périphériques CPU et PCI afin d'épingler la mémoire garantie du conteneur et les pages volumineuses sur le nœud d'accès non uniforme à la mémoire (NUMA). Les ressources pod pour toutes les classes de qualité de service (QoS) restent sur le même nœud NUMA. Cela permet de réduire la latence et d'améliorer les performances du nœud.
- Gestion de la mémoire des pages volumineuses
- L'utilisation de pages de grande taille améliore les performances du système en réduisant la quantité de ressources système nécessaires pour accéder aux tables de pages.
- Synchronisation de précision à l'aide du protocole PTP
- Permet la synchronisation entre les nœuds du réseau avec une précision inférieure à la microseconde.
21.6.2. Configuration recommandée pour les charges de travail des applications vDU Copier lienLien copié sur presse-papiers!
L'exécution des charges de travail des applications vDU nécessite un hôte bare-metal disposant de ressources suffisantes pour exécuter les services OpenShift Container Platform et les charges de travail de production.
Profile | vCPU | Mémoire | Stockage |
---|---|---|---|
Minimum | 4 à 8 cœurs vCPU | 32 Go de RAM | 120GB |
Une vCPU équivaut à un cœur physique lorsque le multithreading simultané (SMT), ou Hyper-Threading, n'est pas activé. Lorsqu'il est activé, utilisez la formule suivante pour calculer le ratio correspondant :
- (threads per core × cores) × sockets = vCPUs
The server must have a Baseboard Management Controller (BMC) when booting with virtual media.
21.6.3. Configuration du micrologiciel hôte pour une faible latence et des performances élevées Copier lienLien copié sur presse-papiers!
Les hôtes bare-metal nécessitent la configuration du firmware avant que l'hôte puisse être provisionné. La configuration du micrologiciel dépend du matériel spécifique et des exigences particulières de votre installation.
Procédure
-
Réglez le site UEFI/BIOS Boot Mode sur
UEFI
. - Dans l'ordre de démarrage de l'hôte, définir Hard drive first.
Appliquez la configuration de micrologiciel spécifique à votre matériel. Le tableau suivant décrit une configuration représentative du micrologiciel pour un serveur Intel Xeon Skylake ou Intel Cascade Lake, basée sur la conception de référence Intel FlexRAN 4G et 5G baseband PHY.
ImportantLa configuration exacte du micrologiciel dépend de vos exigences spécifiques en matière de matériel et de réseau. L'exemple de configuration suivant n'est donné qu'à titre d'illustration.
Expand Tableau 21.6. Exemple de configuration du micrologiciel pour un serveur Intel Xeon Skylake ou Cascade Lake Réglage du micrologiciel Configuration Politique de puissance et de performance de l'unité centrale
Performances
Mise à l'échelle de la fréquence Uncore
Handicapés
Performance Limite P
Handicapés
Technologie Intel SpeedStep ® améliorée
Activé
TDP configurable par Intel
Activé
Niveau TDP configurable
Niveau 2
Technologie Intel® Turbo Boost
Activé
Turbo à haut rendement énergétique
Handicapés
Matériel P-States
Handicapés
Paquet C-State
État C0/C1
C1E
Handicapés
Processeur C6
Handicapés
Activer les paramètres SR-IOV et VT-d globaux dans le micrologiciel de l'hôte. Ces paramètres sont pertinents pour les environnements bare-metal.
21.6.4. Conditions préalables de connectivité pour les réseaux de clusters gérés Copier lienLien copié sur presse-papiers!
Avant d'installer et de provisionner un cluster géré avec le pipeline GitOps Zero Touch Provisioning (ZTP), l'hôte du cluster géré doit remplir les conditions préalables suivantes en matière de réseau :
- Il doit y avoir une connectivité bidirectionnelle entre le conteneur ZTP GitOps dans le cluster hub et le contrôleur de gestion de carte de base (BMC) de l'hôte bare-metal cible.
Le cluster géré doit pouvoir résoudre et atteindre le nom d'hôte API du hub et le nom d'hôte
*.apps
. Voici un exemple du nom d'hôte API du concentrateur et du nom d'hôte*.apps
:-
api.hub-cluster.internal.domain.com
-
console-openshift-console.apps.hub-cluster.internal.domain.com
-
Le cluster hub doit pouvoir résoudre et atteindre l'API et le nom d'hôte
*.apps
du cluster géré. Voici un exemple du nom d'hôte API du cluster géré et du nom d'hôte*.apps
:-
api.sno-managed-cluster-1.internal.domain.com
-
console-openshift-console.apps.sno-managed-cluster-1.internal.domain.com
-
21.6.5. Partitionnement de la charge de travail dans OpenShift à nœud unique avec GitOps ZTP Copier lienLien copié sur presse-papiers!
Le partitionnement des charges de travail configure les services OpenShift Container Platform, les charges de travail de gestion de cluster et les pods d'infrastructure pour qu'ils s'exécutent sur un nombre réservé de CPU hôtes.
Pour configurer le partitionnement de la charge de travail avec GitOps ZTP, vous spécifiez les ressources CPU de gestion de cluster avec le champ cpuset
de la ressource personnalisée (CR) SiteConfig
et le champ reserved
de la CR de groupe PolicyGenTemplate
. Le pipeline GitOps ZTP utilise ces valeurs pour remplir les champs requis dans le partitionnement de la charge de travail MachineConfig
CR (cpuset
) et PerformanceProfile
CR (reserved
) qui configurent le cluster OpenShift à nœud unique.
Pour des performances optimales, assurez-vous que les ensembles de CPU reserved
et isolated
ne partagent pas les cœurs de CPU dans les zones NUMA.
-
Le partitionnement de la charge de travail
MachineConfig
CR relie les pods de l'infrastructure OpenShift Container Platform à une configurationcpuset
définie. -
L'adresse
PerformanceProfile
CR relie les services systemd aux unités centrales réservées.
La valeur du champ reserved
spécifiée dans le CR PerformanceProfile
doit correspondre au champ cpuset
dans le CR MachineConfig
de partitionnement de la charge de travail.
21.6.6. Configurations de clusters recommandées lors de l'installation Copier lienLien copié sur presse-papiers!
Le pipeline ZTP applique les ressources personnalisées (CR) suivantes lors de l'installation du cluster. Ces CR de configuration garantissent que le cluster répond aux exigences de fonctionnalité et de performance nécessaires à l'exécution d'une application vDU.
Lors de l'utilisation du plugin ZTP GitOps et des CRs SiteConfig
pour le déploiement en cluster, les CRs MachineConfig
suivants sont inclus par défaut.
Utilisez le filtre SiteConfig
extraManifests
pour modifier les CR inclus par défaut. Pour plus d'informations, voir Configuration avancée des clusters gérés avec les CR SiteConfig.
21.6.6.1. Répartition de la charge de travail Copier lienLien copié sur presse-papiers!
Les clusters OpenShift à nœud unique qui exécutent des charges de travail DU nécessitent un partitionnement de la charge de travail. Cela limite les cœurs autorisés à exécuter les services de la plateforme, maximisant ainsi le cœur du CPU pour les charges utiles de l'application.
Le partitionnement de la charge de travail ne peut être activé que lors de l'installation du cluster. Vous ne pouvez pas désactiver le partitionnement de la charge de travail après l'installation. Cependant, vous pouvez reconfigurer le partitionnement de la charge de travail en mettant à jour la valeur cpu
que vous définissez dans le profil de performance et dans la ressource personnalisée (CR) MachineConfig
correspondante.
Le CR codé en base64 qui permet le partitionnement de la charge de travail contient l'ensemble de CPU auquel les charges de travail de gestion sont limitées. Encodez les valeurs spécifiques à l'hôte pour
crio.conf
etkubelet.conf
en base64. Ajustez le contenu pour qu'il corresponde à l'ensemble de CPU spécifié dans le profil de performance de la grappe. Il doit correspondre au nombre de cœurs de l'hôte de la grappe.Configuration recommandée pour le partitionnement de la charge de travail
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Une fois configuré dans l'hôte du cluster, le contenu de
/etc/crio/crio.conf.d/01-workload-partitioning
doit ressembler à ceci :[crio.runtime.workloads.management] activation_annotation = "target.workload.openshift.io/management" annotation_prefix = "resources.workload.openshift.io" resources = { "cpushares" = 0, "cpuset" = "0-1,52-53" }
[crio.runtime.workloads.management] activation_annotation = "target.workload.openshift.io/management" annotation_prefix = "resources.workload.openshift.io" resources = { "cpushares" = 0, "cpuset" = "0-1,52-53" }
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- La valeur de
cpuset
varie en fonction de l'installation. Si l'Hyper-Threading est activé, indiquez les deux threads pour chaque cœur. La valeurcpuset
doit correspondre aux CPU réservés que vous avez définis dans le champspec.cpu.reserved
du profil de performance.
Une fois configuré dans le cluster, le contenu de
/etc/kubernetes/openshift-workload-pinning
devrait ressembler à ceci :{ "management": { "cpuset": "0-1,52-53" } }
{ "management": { "cpuset": "0-1,52-53"
1 } }
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- La valeur de
cpuset
doit correspondre à celle decpuset
dans/etc/crio/crio.conf.d/01-workload-partitioning
.
Vérification
Vérifiez que l'affectation des CPU des applications et du système de cluster est correcte. Exécutez les commandes suivantes :
Ouvrez une connexion shell à distance au cluster géré :
oc debug node/example-sno-1
$ oc debug node/example-sno-1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vérifiez que l'épinglage du processeur des applications utilisateur est correct :
pgrep ovn | while read i; do taskset -cp $i; done
sh-4.4# pgrep ovn | while read i; do taskset -cp $i; done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vérifier que l'affectation du CPU aux applications du système est correcte :
pgrep systemd | while read i; do taskset -cp $i; done
sh-4.4# pgrep systemd | while read i; do taskset -cp $i; done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
pid 1's current affinity list: 0-3 pid 938's current affinity list: 0-3 pid 962's current affinity list: 0-3 pid 1197's current affinity list: 0-3
pid 1's current affinity list: 0-3 pid 938's current affinity list: 0-3 pid 962's current affinity list: 0-3 pid 1197's current affinity list: 0-3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
21.6.6.2. Réduction de l'empreinte de la gestion de la plate-forme Copier lienLien copié sur presse-papiers!
Pour réduire l'empreinte de gestion globale de la plateforme, une ressource personnalisée (CR) MachineConfig
est nécessaire pour placer tous les points de montage spécifiques à Kubernetes dans un nouvel espace de noms distinct du système d'exploitation hôte. L'exemple suivant de CR codée en base64 MachineConfig
illustre cette configuration.
Configuration recommandée de l'espace de noms pour le montage du conteneur
21.6.6.3. SCTP Copier lienLien copié sur presse-papiers!
Le protocole SCTP (Stream Control Transmission Protocol) est un protocole clé utilisé dans les applications RAN. Cet objet MachineConfig
ajoute le module de noyau SCTP au nœud pour activer ce protocole.
Configuration SCTP recommandée
21.6.6.4. Démarrage accéléré des conteneurs Copier lienLien copié sur presse-papiers!
Le MachineConfig
CR suivant configure les processus et les conteneurs OpenShift de base pour utiliser tous les cœurs de CPU disponibles lors du démarrage et de l'arrêt du système. Cela accélère la récupération du système lors du démarrage initial et des redémarrages.
Configuration de démarrage recommandée pour les conteneurs accélérés
21.6.6.5. Vidage automatique des crashs du noyau avec kdump Copier lienLien copié sur presse-papiers!
kdump
est une fonctionnalité du noyau Linux qui crée un crash dump du noyau lorsque celui-ci se bloque. kdump
est activé avec les CR MachineConfig
suivants :
Configuration recommandée pour kdump
21.6.7. Configurations recommandées pour les clusters après l'installation Copier lienLien copié sur presse-papiers!
Une fois l'installation du cluster terminée, le pipeline ZTP applique les ressources personnalisées (CR) suivantes, nécessaires à l'exécution des charges de travail de l'UD.
Dans GitOps ZTP v4.10 et les versions antérieures, vous devez configurer le démarrage sécurisé de l'UEFI à l'aide d'un CR MachineConfig
. Cela n'est plus nécessaire dans GitOps ZTP v4.11 et les versions ultérieures. Dans la version 4.11, vous configurez le démarrage sécurisé UEFI pour les clusters OpenShift à nœud unique à l'aide des CR du profil de performance. Pour plus d'informations, voir Profil de performance.
21.6.7.1. Espaces de noms des opérateurs et groupes d'opérateurs Copier lienLien copié sur presse-papiers!
Les clusters OpenShift à nœud unique qui exécutent des charges de travail DU nécessitent les ressources personnalisées (CR) suivantes : OperatorGroup
et Namespace
:
- Opérateur de stockage local
- Opérateur forestier
- Opérateur PTP
- Opérateur de réseau SR-IOV
Le YAML suivant résume ces CR :
Configuration recommandée de l'espace de noms de l'opérateur et du groupe d'opérateurs
21.6.7.2. Abonnements des opérateurs Copier lienLien copié sur presse-papiers!
Les clusters OpenShift à nœud unique qui exécutent des charges de travail DU nécessitent les CR Subscription
suivants. L'abonnement fournit l'emplacement pour télécharger les opérateurs suivants :
- Opérateur de stockage local
- Opérateur forestier
- Opérateur PTP
- Opérateur de réseau SR-IOV
Abonnements recommandés pour les opérateurs
- 1
- Indiquez le canal à partir duquel l'opérateur doit être reçu.
stable
est le canal recommandé. - 2
- Spécifiez
Manual
ouAutomatic
. En modeAutomatic
, l'opérateur se met automatiquement à jour avec les dernières versions du canal au fur et à mesure qu'elles sont disponibles dans le registre. En modeManual
, les nouvelles versions de l'opérateur ne sont installées qu'après avoir été explicitement approuvées.
21.6.7.3. Journalisation des clusters et transmission des journaux Copier lienLien copié sur presse-papiers!
Les clusters OpenShift à nœud unique qui exécutent des charges de travail DU nécessitent la journalisation et le transfert de journaux pour le débogage. L'exemple YAML suivant illustre les CR ClusterLogging
et ClusterLogForwarder
nécessaires.
Configuration recommandée de la journalisation et de la transmission des journaux pour les clusters
21.6.7.4. Profil de performance Copier lienLien copié sur presse-papiers!
Les clusters OpenShift à nœud unique qui exécutent des charges de travail DU nécessitent un profil de performance Node Tuning Operator pour utiliser les capacités et les services de l'hôte en temps réel.
Dans les versions antérieures d'OpenShift Container Platform, l'opérateur Performance Addon était utilisé pour mettre en œuvre un réglage automatique afin d'obtenir des performances de faible latence pour les applications OpenShift. Dans OpenShift Container Platform 4.11 et les versions ultérieures, cette fonctionnalité fait partie de l'opérateur Node Tuning.
L'exemple suivant PerformanceProfile
CR illustre la configuration requise du cluster.
Configuration recommandée du profil de performance
- 1
- Assurez-vous que la valeur de
name
correspond à celle spécifiée dans le champspec.profile.data
deTunedPerformancePatch.yaml
et dans le champstatus.configuration.source.name
devalidatorCRs/informDuValidator.yaml
. - 2
- Configure le démarrage sécurisé UEFI pour l'hôte du cluster.
- 3
- Définissez les CPU isolés. Assurez-vous que toutes les paires Hyper-Threading correspondent.Important
Les pools de CPU réservés et isolés ne doivent pas se chevaucher et doivent couvrir tous les cœurs disponibles. Les cœurs de CPU qui ne sont pas pris en compte entraînent un comportement indéfini dans le système.
- 4
- Définissez les unités centrales réservées. Lorsque le partitionnement de la charge de travail est activé, les processus système, les threads du noyau et les threads du conteneur système sont limités à ces unités centrales. Toutes les unités centrales qui ne sont pas isolées doivent être réservées.
- 5
- Définir le nombre de pages énormes.
- 6
- Définir la taille de la grande page.
- 7
- Définissez
node
comme étant le nœud NUMA où leshugepages
sont alloués. - 8
- Définissez
enabled
àtrue
pour installer le noyau Linux en temps réel.
21.6.7.5. PTP Copier lienLien copié sur presse-papiers!
Les clusters OpenShift à nœud unique utilisent le Precision Time Protocol (PTP) pour la synchronisation de l'heure du réseau. L'exemple suivant PtpConfig
CR illustre la configuration esclave PTP requise.
Configuration PTP recommandée
- 1
- Définit l'interface utilisée pour recevoir le signal d'horloge PTP.
21.6.7.6. Profil accordé étendu Copier lienLien copié sur presse-papiers!
Les clusters OpenShift à nœud unique qui exécutent des charges de travail DU nécessitent des configurations de réglage des performances supplémentaires nécessaires pour les charges de travail hautes performances. L'exemple suivant Tuned
CR étend le profil Tuned
:
Configuration recommandée du profil Tuned étendu
21.6.7.7. SR-IOV Copier lienLien copié sur presse-papiers!
La virtualisation des E/S à racine unique (SR-IOV) est couramment utilisée pour activer les réseaux fronthaul et midhaul. L'exemple YAML suivant configure la SR-IOV pour un cluster OpenShift à nœud unique.
Configuration SR-IOV recommandée
- 1
- Spécifie le VLAN pour le réseau intermédiaire.
- 2
- Sélectionnez
vfio-pci
ounetdevice
, selon le cas. - 3
- Spécifie l'interface connectée au réseau intermédiaire.
- 4
- Spécifie le nombre de VFs pour le réseau midhaul.
- 5
- Le VLAN pour le réseau frontal.
- 6
- Sélectionnez
vfio-pci
ounetdevice
, selon le cas. - 7
- Spécifie l'interface connectée au réseau fronthaul.
- 8
- Spécifie le nombre de VFs pour le réseau fronthaul.
21.6.7.8. Opérateur de console Copier lienLien copié sur presse-papiers!
L'opérateur de console installe et maintient la console web sur un cluster. Lorsque le nœud est géré de manière centralisée, l'opérateur n'est pas nécessaire et libère de l'espace pour les charges de travail des applications. L'exemple de ressource personnalisée (CR) suivant ( Console
) désactive la console.
Configuration recommandée de la console
21.6.7.9. Grafana et Alertmanager Copier lienLien copié sur presse-papiers!
Les clusters OpenShift à nœud unique qui exécutent des charges de travail DU nécessitent des ressources CPU réduites consommées par les composants de surveillance d'OpenShift Container Platform. La ressource personnalisée (CR) suivante ConfigMap
désactive Grafana et Alertmanager.
Configuration recommandée pour la surveillance des clusters
21.6.7.10. Diagnostic du réseau Copier lienLien copié sur presse-papiers!
Les clusters OpenShift à nœud unique qui exécutent des charges de travail DU nécessitent moins de contrôles de connectivité réseau inter-pods pour réduire la charge supplémentaire créée par ces pods. La ressource personnalisée (CR) suivante désactive ces contrôles.
Configuration recommandée pour le diagnostic du réseau