Chapitre 6. En travaillant avec les nœuds


Liste de tous les nœuds de votre cluster pour obtenir des informations telles que l’état, l’âge, l’utilisation de la mémoire et des détails sur les nœuds.

Lorsque vous effectuez des opérations de gestion des nœuds, le CLI interagit avec les objets de nœud qui sont des représentations d’hébergeurs de nœuds réels. Le maître utilise les informations provenant d’objets de nœuds pour valider les nœuds avec des contrôles de santé.

Il est possible d’obtenir des informations détaillées sur les nœuds du cluster.

  • La commande suivante répertorie tous les nœuds:

    $ oc get nodes
    Copy to Clipboard Toggle word wrap

    L’exemple suivant est un cluster avec des nœuds sains:

    $ oc get nodes
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    NAME                   STATUS    ROLES     AGE       VERSION
    master.example.com     Ready     master    7h        v1.31.3
    node1.example.com      Ready     worker    7h        v1.31.3
    node2.example.com      Ready     worker    7h        v1.31.3
    Copy to Clipboard Toggle word wrap

    L’exemple suivant est un cluster avec un nœud malsain:

    $ oc get nodes
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    NAME                   STATUS                      ROLES     AGE       VERSION
    master.example.com     Ready                       master    7h        v1.31.3
    node1.example.com      NotReady,SchedulingDisabled worker    7h        v1.31.3
    node2.example.com      Ready                       worker    7h        v1.31.3
    Copy to Clipboard Toggle word wrap

    Les conditions qui déclenchent un statut NotReady sont affichées plus tard dans cette section.

  • L’option -o large fournit des informations supplémentaires sur les nœuds.

    $ oc get nodes -o wide
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    NAME                STATUS   ROLES    AGE    VERSION   INTERNAL-IP    EXTERNAL-IP   OS-IMAGE                                                       KERNEL-VERSION                 CONTAINER-RUNTIME
    master.example.com  Ready    master   171m   v1.31.3   10.0.129.108   <none>        Red Hat Enterprise Linux CoreOS 48.83.202103210901-0 (Ootpa)   4.18.0-240.15.1.el8_3.x86_64   cri-o://1.31.3-30.rhaos4.10.gitf2f339d.el8-dev
    node1.example.com   Ready    worker   72m    v1.31.3   10.0.129.222   <none>        Red Hat Enterprise Linux CoreOS 48.83.202103210901-0 (Ootpa)   4.18.0-240.15.1.el8_3.x86_64   cri-o://1.31.3-30.rhaos4.10.gitf2f339d.el8-dev
    node2.example.com   Ready    worker   164m   v1.31.3   10.0.142.150   <none>        Red Hat Enterprise Linux CoreOS 48.83.202103210901-0 (Ootpa)   4.18.0-240.15.1.el8_3.x86_64   cri-o://1.31.3-30.rhaos4.10.gitf2f339d.el8-dev
    Copy to Clipboard Toggle word wrap

  • La commande suivante répertorie des informations sur un seul nœud:

    $ oc get node <node>
    Copy to Clipboard Toggle word wrap

    À titre d’exemple:

    $ oc get node node1.example.com
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    NAME                   STATUS    ROLES     AGE       VERSION
    node1.example.com      Ready     worker    7h        v1.31.3
    Copy to Clipboard Toggle word wrap

  • La commande suivante fournit des informations plus détaillées sur un nœud spécifique, y compris la raison de la condition actuelle:

    $ oc describe node <node>
    Copy to Clipboard Toggle word wrap

    À titre d’exemple:

    $ oc describe node node1.example.com
    Copy to Clipboard Toggle word wrap
    Note

    L’exemple suivant contient certaines valeurs spécifiques à OpenShift Dedicated sur AWS.

    Exemple de sortie

    Name:               node1.example.com 
    1
    
    Roles:              worker 
    2
    
    Labels:             kubernetes.io/os=linux
                        kubernetes.io/hostname=ip-10-0-131-14
                        kubernetes.io/arch=amd64 
    3
    
                        node-role.kubernetes.io/worker=
                        node.kubernetes.io/instance-type=m4.large
                        node.openshift.io/os_id=rhcos
                        node.openshift.io/os_version=4.5
                        region=east
                        topology.kubernetes.io/region=us-east-1
                        topology.kubernetes.io/zone=us-east-1a
    Annotations:        cluster.k8s.io/machine: openshift-machine-api/ahardin-worker-us-east-2a-q5dzc  
    4
    
                        machineconfiguration.openshift.io/currentConfig: worker-309c228e8b3a92e2235edd544c62fea8
                        machineconfiguration.openshift.io/desiredConfig: worker-309c228e8b3a92e2235edd544c62fea8
                        machineconfiguration.openshift.io/state: Done
                        volumes.kubernetes.io/controller-managed-attach-detach: true
    CreationTimestamp:  Wed, 13 Feb 2019 11:05:57 -0500
    Taints:             <none>  
    5
    
    Unschedulable:      false
    Conditions:                 
    6
    
      Type             Status  LastHeartbeatTime                 LastTransitionTime                Reason                       Message
      ----             ------  -----------------                 ------------------                ------                       -------
      OutOfDisk        False   Wed, 13 Feb 2019 15:09:42 -0500   Wed, 13 Feb 2019 11:05:57 -0500   KubeletHasSufficientDisk     kubelet has sufficient disk space available
      MemoryPressure   False   Wed, 13 Feb 2019 15:09:42 -0500   Wed, 13 Feb 2019 11:05:57 -0500   KubeletHasSufficientMemory   kubelet has sufficient memory available
      DiskPressure     False   Wed, 13 Feb 2019 15:09:42 -0500   Wed, 13 Feb 2019 11:05:57 -0500   KubeletHasNoDiskPressure     kubelet has no disk pressure
      PIDPressure      False   Wed, 13 Feb 2019 15:09:42 -0500   Wed, 13 Feb 2019 11:05:57 -0500   KubeletHasSufficientPID      kubelet has sufficient PID available
      Ready            True    Wed, 13 Feb 2019 15:09:42 -0500   Wed, 13 Feb 2019 11:07:09 -0500   KubeletReady                 kubelet is posting ready status
    Addresses:   
    7
    
      InternalIP:   10.0.140.16
      InternalDNS:  ip-10-0-140-16.us-east-2.compute.internal
      Hostname:     ip-10-0-140-16.us-east-2.compute.internal
    Capacity:    
    8
    
     attachable-volumes-aws-ebs:  39
     cpu:                         2
     hugepages-1Gi:               0
     hugepages-2Mi:               0
     memory:                      8172516Ki
     pods:                        250
    Allocatable:
     attachable-volumes-aws-ebs:  39
     cpu:                         1500m
     hugepages-1Gi:               0
     hugepages-2Mi:               0
     memory:                      7558116Ki
     pods:                        250
    System Info:    
    9
    
     Machine ID:                              63787c9534c24fde9a0cde35c13f1f66
     System UUID:                             EC22BF97-A006-4A58-6AF8-0A38DEEA122A
     Boot ID:                                 f24ad37d-2594-46b4-8830-7f7555918325
     Kernel Version:                          3.10.0-957.5.1.el7.x86_64
     OS Image:                                Red Hat Enterprise Linux CoreOS 410.8.20190520.0 (Ootpa)
     Operating System:                        linux
     Architecture:                            amd64
     Container Runtime Version:               cri-o://1.31.3-0.6.dev.rhaos4.3.git9ad059b.el8-rc2
     Kubelet Version:                         v1.31.3
     Kube-Proxy Version:                      v1.31.3
    PodCIDR:                                  10.128.4.0/24
    ProviderID:                               aws:///us-east-2a/i-04e87b31dc6b3e171
    Non-terminated Pods:                      (12 in total)  
    10
    
      Namespace                               Name                                   CPU Requests  CPU Limits  Memory Requests  Memory Limits
      ---------                               ----                                   ------------  ----------  ---------------  -------------
      openshift-cluster-node-tuning-operator  tuned-hdl5q                            0 (0%)        0 (0%)      0 (0%)           0 (0%)
      openshift-dns                           dns-default-l69zr                      0 (0%)        0 (0%)      0 (0%)           0 (0%)
      openshift-image-registry                node-ca-9hmcg                          0 (0%)        0 (0%)      0 (0%)           0 (0%)
      openshift-ingress                       router-default-76455c45c-c5ptv         0 (0%)        0 (0%)      0 (0%)           0 (0%)
      openshift-machine-config-operator       machine-config-daemon-cvqw9            20m (1%)      0 (0%)      50Mi (0%)        0 (0%)
      openshift-marketplace                   community-operators-f67fh              0 (0%)        0 (0%)      0 (0%)           0 (0%)
      openshift-monitoring                    alertmanager-main-0                    50m (3%)      50m (3%)    210Mi (2%)       10Mi (0%)
      openshift-monitoring                    node-exporter-l7q8d                    10m (0%)      20m (1%)    20Mi (0%)        40Mi (0%)
      openshift-monitoring                    prometheus-adapter-75d769c874-hvb85    0 (0%)        0 (0%)      0 (0%)           0 (0%)
      openshift-multus                        multus-kw8w5                           0 (0%)        0 (0%)      0 (0%)           0 (0%)
      openshift-ovn-kubernetes                          ovnkube-node-t4dsn                              80m (0%)     0 (0%)      1630Mi (0%)       0 (0%)
    Allocated resources:
      (Total limits may be over 100 percent, i.e., overcommitted.)
      Resource                    Requests     Limits
      --------                    --------     ------
      cpu                         380m (25%)   270m (18%)
      memory                      880Mi (11%)  250Mi (3%)
      attachable-volumes-aws-ebs  0            0
    Events:     
    11
    
      Type     Reason                   Age                From                      Message
      ----     ------                   ----               ----                      -------
      Normal   NodeHasSufficientPID     6d (x5 over 6d)    kubelet, m01.example.com  Node m01.example.com status is now: NodeHasSufficientPID
      Normal   NodeAllocatableEnforced  6d                 kubelet, m01.example.com  Updated Node Allocatable limit across pods
      Normal   NodeHasSufficientMemory  6d (x6 over 6d)    kubelet, m01.example.com  Node m01.example.com status is now: NodeHasSufficientMemory
      Normal   NodeHasNoDiskPressure    6d (x6 over 6d)    kubelet, m01.example.com  Node m01.example.com status is now: NodeHasNoDiskPressure
      Normal   NodeHasSufficientDisk    6d (x6 over 6d)    kubelet, m01.example.com  Node m01.example.com status is now: NodeHasSufficientDisk
      Normal   NodeHasSufficientPID     6d                 kubelet, m01.example.com  Node m01.example.com status is now: NodeHasSufficientPID
      Normal   Starting                 6d                 kubelet, m01.example.com  Starting kubelet.
    #...
    Copy to Clipboard Toggle word wrap

    1
    Le nom du nœud.
    2
    Le rôle du nœud, que ce soit le maître ou l’ouvrier.
    3
    Les étiquettes appliquées sur le nœud.
    4
    Les annotations s’appliquaient au nœud.
    5
    Les taintes s’appliquaient au nœud.
    6
    Les conditions et le statut des nœuds. Les conditions stanza répertorient le statut Prêt, PIDPressure, MemoryPressure, DiskPressure et OutOfDisk. Cette condition est décrite plus loin dans cette section.
    7
    L’adresse IP et le nom d’hôte du nœud.
    8
    Les ressources pod et les ressources allocatables.
    9
    Informations sur l’hôte du nœud.
    10
    Les gousses sur le nœud.
    11
    Les événements rapportés par le nœud.

    Dans l’information affichée pour les nœuds, les conditions de nœud suivantes apparaissent dans la sortie des commandes affichées dans cette section:

Expand
Tableau 6.1. Conditions des nœuds
État de l’étatDescription

♪ prêt ♪

Dans la mesure du possible, le nœud est sain et prêt à accepter les gousses. En cas de faux, le nœud n’est pas sain et n’accepte pas les gousses. En cas d’inconnu, le contrôleur du nœud n’a pas reçu de battement cardiaque du nœud pour la période node-monitor-grace-period (la valeur par défaut est de 40 secondes).

DiskPressure

Lorsque c’est vrai, la capacité du disque est faible.

La presse mémoire

« si c’est vrai, la mémoire du nœud est faible.

La sécurité du PIDP

« si c’est vrai, il y a trop de processus sur le nœud.

À propos de OutOfDisk

Dans l’affirmative, le nœud n’a pas suffisamment d’espace libre sur le nœud pour ajouter de nouveaux gousses.

Le réseau indisponible

Dans l’affirmative, le réseau du nœud n’est pas correctement configuré.

♪ notready ♪

Dans l’affirmative, l’un des composants sous-jacents, tels que l’exécution du conteneur ou le réseau, connaît des problèmes ou n’est pas encore configuré.

SchedulingDisabled

Les gousses ne peuvent pas être programmées pour le placement sur le nœud.

6.1.2. Liste des pods sur un nœud dans votre cluster

Il est possible de répertorier toutes les gousses sur un nœud spécifique.

Procédure

  • Liste de tous les pods ou des pods sélectionnés sur les nœuds sélectionnés:

    $ oc get pod --selector=<nodeSelector>
    Copy to Clipboard Toggle word wrap
    $ oc get pod --selector=kubernetes.io/os
    Copy to Clipboard Toggle word wrap

    A) ou:

    $ oc get pod -l=<nodeSelector>
    Copy to Clipboard Toggle word wrap
    $ oc get pod -l kubernetes.io/os=linux
    Copy to Clipboard Toggle word wrap
  • Énumérer toutes les gousses sur un nœud spécifique, y compris les gousses terminées:

    $ oc get pod --all-namespaces --field-selector=spec.nodeName=<nodename>
    Copy to Clipboard Toggle word wrap

Il est possible d’afficher des statistiques d’utilisation sur les nœuds, qui fournissent les environnements d’exécution pour les conteneurs. Ces statistiques d’utilisation incluent CPU, mémoire et consommation de stockage.

Conditions préalables

  • Il faut avoir l’autorisation de lire des clusters pour afficher les statistiques d’utilisation.
  • Les métriques doivent être installées pour afficher les statistiques d’utilisation.

Procédure

  • Consulter les statistiques d’utilisation:

    $ oc adm top nodes
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    NAME                                   CPU(cores)   CPU%      MEMORY(bytes)   MEMORY%
    ip-10-0-12-143.ec2.compute.internal    1503m        100%      4533Mi          61%
    ip-10-0-132-16.ec2.compute.internal    76m          5%        1391Mi          18%
    ip-10-0-140-137.ec2.compute.internal   398m         26%       2473Mi          33%
    ip-10-0-142-44.ec2.compute.internal    656m         43%       6119Mi          82%
    ip-10-0-146-165.ec2.compute.internal   188m         12%       3367Mi          45%
    ip-10-0-19-62.ec2.compute.internal     896m         59%       5754Mi          77%
    ip-10-0-44-193.ec2.compute.internal    632m         42%       5349Mi          72%
    Copy to Clipboard Toggle word wrap

  • Afficher les statistiques d’utilisation des nœuds avec des étiquettes:

    $ oc adm top node --selector=''
    Copy to Clipboard Toggle word wrap

    Il faut choisir le sélecteur (requête d’étiquette) pour filtrer. Appuis =, ==, et !=.

Retour au début
Red Hat logoGithubredditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance. Découvrez nos récentes mises à jour.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez le Blog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

Theme

© 2025 Red Hat