GNU/Linux >> Tutoriels Linux >  >> Linux

Comment lire les nœuds dans Kubernetes [Quick K8s Tip]

Cette astuce Kubernetes rapide vous aide à obtenir des détails sur un nœud de travail Kubernetes et comment lire et comprendre sa sortie.

Qu'est-ce qu'un nœud Kubernetes ?

Un nœud est une machine de travail (virtuelle/physique) dans Kubernetes où les pods transportant vos applications s'exécutent. Les services qui s'exécutent sur un nœud incluent Docker, kubelet et kube-proxy.

Liste des nœuds disponibles dans votre cluster Kubernetes

Le moyen le plus simple de voir les nœuds disponibles consiste à utiliser la commande kubectl de cette manière :

kubectl get nodes

Il devrait vous montrer tous les nœuds de votre cluster en un coup d'œil. Vous pouvez voir le statut, le rôle, l'âge et la version de chaque nœud.

[email protected]:~# kubectl get nodes
NAME          STATUS   ROLES    AGE   VERSION
kmaster-rj    Ready    master   39d   v1.18.8
kworker-rj1   Ready    <none>   39d   v1.18.8
kworker-rj2   Ready    <none>   39d   v1.18.8
[email protected]:~#

Comme vous pouvez le voir, les deux nœuds de travail sont à l'état prêt.

Afin d'afficher une sortie plus détaillée, exécutez la commande suivante, vous pouvez ajouter le -o wide option comme celle-ci :

kubectl get nodes -o wide

Vous verrez maintenant des détails supplémentaires comme l'IP interne et externe, l'image du conteneur, la version du noyau et l'exécution du conteneur.

[email protected]:~# kubectl get nodes -o wide
NAME          STATUS   ROLES    AGE   VERSION   INTERNAL-IP     EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION       CONTAINER-RUNTIME
kmaster-rj    Ready    master   39d   v1.18.8   172.42.42.200   <none>        Ubuntu 18.04.5 LTS   4.15.0-101-generic   docker://19.3.6
kworker-rj1   Ready    <none>   39d   v1.18.8   172.42.42.201   <none>        Ubuntu 18.04.4 LTS   4.15.0-101-generic   docker://19.3.6
kworker-rj2   Ready    <none>   39d   v1.18.8   172.42.42.202   <none>        Ubuntu 18.04.5 LTS   4.15.0-101-generic   docker://19.3.6

Allons plus loin et en savoir plus sur un nœud spécifique.

Décrire un nœud pour plus de détails

Si vous souhaitez des informations détaillées sur un nœud spécifique, vous pouvez utiliser le kubectl describe commande avec le nom du nœud :

kubectl describe nodes worker-node-name

Voici un exemple de sortie :

[email protected]:~# kubectl describe nodes kworker-rj1
Name:               kworker-rj1
Roles:              <none>
Labels:             app=front-end
                    beta.kubernetes.io/arch=amd64
                    beta.kubernetes.io/os=linux
                    kubernetes.io/arch=amd64
                    kubernetes.io/hostname=kworker-rj1
                    kubernetes.io/os=linux
                    size=medium
Annotations:        kubeadm.alpha.kubernetes.io/cri-socket: /var/run/dockershim.sock
                    node.alpha.kubernetes.io/ttl: 0
                    projectcalico.org/IPv4Address: 172.42.42.201/24
                    projectcalico.org/IPv4IPIPTunnelAddr: 172.16.213.0
                    volumes.kubernetes.io/controller-managed-attach-detach: true
CreationTimestamp:  Sun, 02 Aug 2020 15:42:32 +0000
Taints:             app=front-end:NoExecute
Unschedulable:      false
Lease:
  HolderIdentity:  kworker-rj1
  AcquireTime:     <unset>
  RenewTime:       Fri, 11 Sep 2020 07:09:51 +0000
Conditions:
  Type                 Status  LastHeartbeatTime                 LastTransitionTime                Reason                       Message
  ----                 ------  -----------------                 ------------------                ------                       -------
  NetworkUnavailable   False   Fri, 11 Sep 2020 02:57:12 +0000   Fri, 11 Sep 2020 02:57:12 +0000   CalicoIsUp                   Calico is running on this node
  MemoryPressure       False   Fri, 11 Sep 2020 07:06:56 +0000   Fri, 28 Aug 2020 06:33:29 +0000   KubeletHasSufficientMemory   kubelet has sufficient memory available
  DiskPressure         False   Fri, 11 Sep 2020 07:06:56 +0000   Fri, 28 Aug 2020 06:33:29 +0000   KubeletHasNoDiskPressure     kubelet has no disk pressure
  PIDPressure          False   Fri, 11 Sep 2020 07:06:56 +0000   Fri, 28 Aug 2020 06:33:29 +0000   KubeletHasSufficientPID      kubelet has sufficient PID available
  Ready                True    Fri, 11 Sep 2020 07:06:56 +0000   Fri, 11 Sep 2020 02:56:03 +0000   KubeletReady                 kubelet is posting ready status. AppArmor enabled
Addresses:
  InternalIP:  172.42.42.201
  Hostname:    kworker-rj1
Capacity:
  cpu:                2
  ephemeral-storage:  64800356Ki
  hugepages-2Mi:      0
  memory:             2040812Ki
  pods:               110
Allocatable:
  cpu:                2
  ephemeral-storage:  59720007991
  hugepages-2Mi:      0
  memory:             1938412Ki
  pods:               110
System Info:
  Machine ID:                 c7dbeba40d7b45a387082c96df6cc554
  System UUID:                595C28CA-DBBF-304D-8C5A-7862AA0A60E5
  Boot ID:                    306f36e0-ded3-4b45-946a-89509f845c21
  Kernel Version:             4.15.0-101-generic
  OS Image:                   Ubuntu 18.04.4 LTS
  Operating System:           linux
  Architecture:               amd64
  Container Runtime Version:  docker://19.3.6
  Kubelet Version:            v1.18.8
  Kube-Proxy Version:         v1.18.8
Non-terminated Pods:          (5 in total)
  Namespace                   Name                                    CPU Requests  CPU Limits  Memory Requests  Memory Limits  AGE
  ---------                   ----                                    ------------  ----------  ---------------  -------------  ---
  default                     toleration-demo-dep-54f9ff64b9-7zcrn    0 (0%)        0 (0%)      0 (0%)           0 (0%)         4h9m
  default                     toleration-demo-dep-54f9ff64b9-9sldm    0 (0%)        0 (0%)      0 (0%)           0 (0%)         4h9m
  default                     toleration-demo-dep-54f9ff64b9-rgh7z    0 (0%)        0 (0%)      0 (0%)           0 (0%)         4h9m
  kube-system                 calico-node-2jlhm                       250m (12%)    0 (0%)      0 (0%)           0 (0%)         39d
  kube-system                 kube-proxy-54894                        0 (0%)        0 (0%)      0 (0%)           0 (0%)         22d
Allocated resources:
  (Total limits may be over 100 percent, i.e., overcommitted.)
  Resource           Requests    Limits
  --------           --------    ------
  cpu                250m (12%)  0 (0%)
  memory             0 (0%)      0 (0%)
  ephemeral-storage  0 (0%)      0 (0%)
  hugepages-2Mi      0 (0%)      0 (0%)
Events:              <none>

C'est beaucoup d'informations. Qu'est-ce qui est important pour vous ?

  • La plupart des informations concernent l'adresse IP du système, le nom d'hôte, les ressources (CPU, GPU, mémoire) et les informations de version (OS, Docker, Kubernetes).
  • Service Kubelet statut.
  • Non planifié paramètre.
  • Les conditions La section peut indiquer s'il existe des problèmes de ressources système qui affecteront l'exécution de l'application. Par exemple, si l'un des éléments OutOfDisk , PressionMémoire , ou DiskPressure les conditions sont vraies, il n'y a pas suffisamment de ressources système pour traiter d'autres charges de travail.
  • Les événements Enfin, la section contiendra également des messages qui peuvent indiquer s'il y a des problèmes avec l'environnement.

J'espère que vous aimez ce petit conseil Kubernetes. Restez à l'écoute et n'oubliez pas de vous abonner pour en savoir plus.

Rakesh Jain
DevOps Professionnel | RHCA | Jenkins | Gite | Docker | Kubernetes | Ansible | Prométhée | Grafane | Nuage AWS

Linux
  1. Comment supprimer un utilisateur d'un groupe sous Linux [Astuce rapide]

  2. Comment supprimer des pods dans Kubernetes [Quick K8s Tips]

  3. Comment supprimer un déploiement Kubernetes [Quick K8s Tips]

  4. Comment redémarrer les pods dans Kubernetes [Quick K8s Tip]

  5. Comment ajouter ou supprimer des étiquettes aux nœuds dans Kubernetes

Comment trouver l'ID de processus d'un programme et le tuer [Astuce rapide]

Comment réparer l'erreur Flash Player manquant dans Midori [Astuce rapide]

Comment créer et changer d'espace de travail dans Linux Mint [Astuce rapide]

Comment ajouter de nouveaux pinceaux dans GIMP [Quick Tip]

Comment recadrer des images dans GIMP [Quick Tip]

Comment ajouter un répertoire à PATH sous Linux [Astuce rapide]