GNU/Linux >> Linux Esercitazione >  >> Linux

Come leggere i nodi in Kubernetes [Suggerimento rapido per K8]

Questo rapido suggerimento su Kubernetes ti aiuta a ottenere dettagli su un nodo di lavoro Kubernetes e su come leggere e comprenderne l'output.

Cos'è un nodo Kubernetes?

Un nodo è una macchina di lavoro (virtuale/fisica) in Kubernetes in cui vengono eseguiti i pod che trasportano le tue applicazioni. I servizi che girano su un nodo includono Docker, kubelet e kube-proxy.

Elencare i nodi disponibili nel tuo cluster Kubernetes

Il modo più semplice per vedere i nodi disponibili è usare il comando kubectl in questo modo:

kubectl get nodes

Dovrebbe mostrarti tutti i nodi nel tuo cluster a colpo d'occhio. Puoi vedere lo stato, il ruolo, l'età e la versione di ogni nodo.

[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]:~#

Come puoi vedere, entrambi i nodi di lavoro sono in stato pronto.

Per visualizzare un output più dettagliato esegui il comando seguente, puoi aggiungere il -o wide opzione come questa:

kubectl get nodes -o wide

Ora vedrai dettagli aggiuntivi come IP interno ed esterno, immagine del contenitore, versione del kernel e runtime per il contenitore.

[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

Andiamo più a fondo e scopriamo di più su un nodo specifico.

Descrizione di un nodo per maggiori dettagli

Se desideri informazioni dettagliate su un nodo specifico, puoi utilizzare il kubectl describe comando con il nome del nodo:

kubectl describe nodes worker-node-name

Ecco un esempio di output:

[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>

Sono molte informazioni. Cosa è importante per te?

  • La maggior parte delle informazioni sono informative riguardanti l'IP del sistema, il nome host, le risorse (CPU, GPU, memoria) e le informazioni sulla versione (OS, Docker, Kubernetes).
  • servizio kubelet stato.
  • Non programmabile parametro.
  • Le condizioni la sezione può indicare se ci sono problemi con le risorse di sistema che influiranno sull'esecuzione dell'applicazione. Ad esempio, se uno qualsiasi dei OutOfDisk , Pressione di memoria o DiskPressure le condizioni sono True, le risorse di sistema sono insufficienti per servire ulteriori carichi di lavoro.
  • Gli Eventi la sezione infine conterrà anche messaggi che possono indicare se ci sono problemi con l'ambiente.

Spero che questo rapido suggerimento di Kubernetes ti piaccia. Resta sintonizzato e non dimenticare di iscriverti per saperne di più.

Rakesh Jain
DevOps professionale | RHCA | Jenkins | Git | Docker | Kubernetes | Abile | Prometeo | Grafana | AWS Cloud

Linux
  1. Come sincronizzare i sottotitoli con il film [Suggerimento rapido]

  2. Come installare Curl su Ubuntu [Suggerimento rapido]

  3. Come eliminare i pod in Kubernetes [Suggerimenti rapidi per K8s]

  4. Come eliminare una distribuzione Kubernetes [Suggerimenti rapidi per K8s]

  5. Come riavviare i pod in Kubernetes [Suggerimento rapido per K8]

Come trovare l'ID di processo di un programma e ucciderlo [Suggerimento rapido]

Come correggere l'errore di Flash Player mancante in Midori [Suggerimento rapido]

Come creare e cambiare spazi di lavoro in Linux Mint [Suggerimento rapido]

Come aggiungere nuovi pennelli in GIMP [Suggerimento rapido]

Come ritagliare le immagini in GIMP [Suggerimento rapido]

Come aggiungere una directory a PATH in Linux [Suggerimento rapido]