Chapitre 5. Travailler avec des nœuds


5.1. Afficher et lister les nœuds de votre cluster OpenShift Container Platform

Vous pouvez dresser la liste de tous les nœuds de votre cluster afin d'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 de nœuds, l'interface CLI interagit avec des objets de nœuds qui sont des représentations d'hôtes de nœuds réels. Le maître utilise les informations des objets de nœuds pour valider les nœuds à l'aide de contrôles de santé.

5.1.1. A propos de la liste de tous les nœuds d'une grappe

Vous pouvez obtenir des informations détaillées sur les nœuds du cluster.

  • La commande suivante permet de dresser la liste de tous les nœuds :

    $ oc get nodes

    L'exemple suivant est celui d'un cluster dont les nœuds sont sains :

    $ oc get nodes

    Exemple de sortie

    NAME                   STATUS    ROLES     AGE       VERSION
    master.example.com     Ready     master    7h        v1.25.0
    node1.example.com      Ready     worker    7h        v1.25.0
    node2.example.com      Ready     worker    7h        v1.25.0

    L'exemple suivant est celui d'un cluster avec un nœud en mauvaise santé :

    $ oc get nodes

    Exemple de sortie

    NAME                   STATUS                      ROLES     AGE       VERSION
    master.example.com     Ready                       master    7h        v1.25.0
    node1.example.com      NotReady,SchedulingDisabled worker    7h        v1.25.0
    node2.example.com      Ready                       worker    7h        v1.25.0

    Les conditions qui déclenchent l'état NotReady sont présentées plus loin dans cette section.

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

    $ oc get nodes -o wide

    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.25.0   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.25.0-30.rhaos4.10.gitf2f339d.el8-dev
    node1.example.com   Ready    worker   72m    v1.25.0   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.25.0-30.rhaos4.10.gitf2f339d.el8-dev
    node2.example.com   Ready    worker   164m   v1.25.0   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.25.0-30.rhaos4.10.gitf2f339d.el8-dev

  • La commande suivante répertorie les informations relatives à un seul nœud :

    oc get node <node> $ oc get node <node>

    Par exemple :

    $ oc get node node1.example.com

    Exemple de sortie

    NAME                   STATUS    ROLES     AGE       VERSION
    node1.example.com      Ready     worker    7h        v1.25.0

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

    $ oc describe node <node>

    Par exemple :

    $ oc describe node node1.example.com

    Exemple de sortie

    Name:               node1.example.com 1
    Roles:              worker 2
    Labels:             beta.kubernetes.io/arch=amd64   3
                        beta.kubernetes.io/instance-type=m4.large
                        beta.kubernetes.io/os=linux
                        failure-domain.beta.kubernetes.io/region=us-east-2
                        failure-domain.beta.kubernetes.io/zone=us-east-2a
                        kubernetes.io/hostname=ip-10-0-140-16
                        node-role.kubernetes.io/worker=
    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.25.0-0.6.dev.rhaos4.3.git9ad059b.el8-rc2
     Kubelet Version:                         v1.25.0
     Kube-Proxy Version:                      v1.25.0
    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-sdn                           ovs-t4dsn                              100m (6%)     0 (0%)      300Mi (4%)       0 (0%)
      openshift-sdn                           sdn-g79hg                              100m (6%)     0 (0%)      200Mi (2%)       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.
     ...

    1
    Le nom du nœud.
    2
    Le rôle du nœud, soit master ou worker.
    3
    Les étiquettes appliquées au nœud.
    4
    Les annotations appliquées au nœud.
    5
    Les taches appliquées au nœud.
    6
    Les conditions et l'état du nœud. La strophe conditions énumère les états Ready, PIDPressure, PIDPressure, MemoryPressure, DiskPressure et OutOfDisk. Ces conditions sont décrites plus loin dans cette section.
    7
    L'adresse IP et le nom d'hôte du nœud.
    8
    Les ressources pods et les ressources allouables.
    9
    Informations sur l'hôte du nœud.
    10
    Les pods sur le nœud.
    11
    Les événements signalés par le nœud.

Parmi les informations affichées pour les nœuds, les conditions suivantes apparaissent dans la sortie des commandes présentées dans cette section :

Tableau 5.1. Conditions du nœud
ConditionDescription

Ready

Si true, le nœud est sain et prêt à accepter des pods. Si false, le nœud n'est pas sain et n'accepte pas de modules. Si unknown, le contrôleur de nœud n'a pas reçu de battement de cœur du nœud depuis node-monitor-grace-period (la valeur par défaut est de 40 secondes).

DiskPressure

Si true, la capacité du disque est faible.

MemoryPressure

Si true, la mémoire du nœud est faible.

PIDPressure

Si true, il y a trop de processus sur le nœud.

OutOfDisk

Si true, le nœud ne dispose pas de suffisamment d'espace libre pour ajouter de nouveaux modules.

NetworkUnavailable

Si true, le réseau du nœud n'est pas correctement configuré.

NotReady

Si true, l'un des composants sous-jacents, comme l'exécution du conteneur ou le réseau, rencontre des problèmes ou n'est pas encore configuré.

SchedulingDisabled

Les pods ne peuvent pas être planifiés pour être placés sur le nœud.

5.1.2. Lister les pods sur un nœud de votre cluster

Vous pouvez répertorier tous les pods sur un nœud spécifique.

Procédure

  • Pour dresser la liste de tous les pods ou d'une sélection de pods sur un ou plusieurs nœuds :

    $ oc describe node <node1> <node2>

    Par exemple :

    $ oc describe node ip-10-0-128-218.ec2.internal
  • Pour répertorier tous les pods ou certains pods sur les nœuds sélectionnés :

    oc describe --selector=<node_selector>
    $ oc describe node  --selector=kubernetes.io/os

    Ou bien :

    oc describe -l=<pod_selector> $ oc describe -l=<pod_selector>
    $ oc describe node -l node-role.kubernetes.io/worker
  • Pour lister tous les pods sur un nœud spécifique, y compris les pods terminés :

    oc get pod --all-namespaces --field-selector=spec.nodeName=<nodename> $ oc get pod --all-namespaces --field-selector=spec.nodeName=<nodename>

5.1.3. Affichage des statistiques d'utilisation de la mémoire et de l'unité centrale sur vos nœuds

Vous pouvez afficher les statistiques d'utilisation des nœuds, qui fournissent les environnements d'exécution des conteneurs. Ces statistiques d'utilisation comprennent la consommation de CPU, de mémoire et de stockage.

Conditions préalables

  • Vous devez avoir l'autorisation cluster-reader pour voir les statistiques d'utilisation.
  • Metrics doit être installé pour afficher les statistiques d'utilisation.

Procédure

  • Pour consulter les statistiques d'utilisation :

    $ oc adm top nodes

    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%

  • Pour afficher les statistiques d'utilisation des nœuds avec étiquettes :

    $ oc adm top node --selector=''

    Vous devez choisir le sélecteur (requête d'étiquette) sur lequel filtrer. Prend en charge =, ==, et !=.

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.

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 leBlog 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.

© 2024 Red Hat, Inc.