Chapitre 6. En travaillant avec les nœuds
6.1. Afficher et répertorier les nœuds dans votre cluster OpenShift dédié Copier lienLien copié sur presse-papiers!
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é.
6.1.1. À propos de la liste de tous les nœuds dans un cluster Copier lienLien copié sur presse-papiers!
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 nodesL’exemple suivant est un cluster avec des nœuds sains:
$ oc get nodesExemple 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.3L’exemple suivant est un cluster avec un nœud malsain:
$ oc get nodesExemple 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.3Les 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 wideExemple 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-devLa commande suivante répertorie des informations sur un seul nœud:
$ oc get node <node>À titre d’exemple:
$ oc get node node1.example.comExemple de sortie
NAME STATUS ROLES AGE VERSION node1.example.com Ready worker 7h v1.31.3La 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>À titre d’exemple:
$ oc describe node node1.example.comNoteL’exemple suivant contient certaines valeurs spécifiques à OpenShift Dedicated sur AWS.
Exemple de sortie
Name: node1.example.com1 Roles: worker2 Labels: kubernetes.io/os=linux kubernetes.io/hostname=ip-10-0-131-14 kubernetes.io/arch=amd643 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-q5dzc4 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. #...- 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:
| État de l’état | Description |
|---|---|
|
| 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). |
|
| Lorsque c’est vrai, la capacité du disque est faible. |
|
| « si c’est vrai, la mémoire du nœud est faible. |
|
| « si c’est vrai, il y a trop de processus sur le nœud. |
|
| Dans l’affirmative, le nœud n’a pas suffisamment d’espace libre sur le nœud pour ajouter de nouveaux gousses. |
|
| Dans l’affirmative, le réseau du nœud n’est pas correctement configuré. |
|
| 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é. |
|
| 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 Copier lienLien copié sur presse-papiers!
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>$ oc get pod --selector=kubernetes.io/osA) ou:
$ oc get pod -l=<nodeSelector>$ oc get pod -l kubernetes.io/os=linuxÉ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>
6.1.3. Affichage des statistiques d’utilisation de la mémoire et du CPU sur vos nœuds Copier lienLien copié sur presse-papiers!
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 nodesExemple 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%Afficher les statistiques d’utilisation des nœuds avec des étiquettes:
$ oc adm top node --selector=''Il faut choisir le sélecteur (requête d’étiquette) pour filtrer. Appuis =, ==, et !=.