GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So lesen Sie Knoten in Kubernetes [Schneller K8s-Tipp]

Dieser kurze Kubernetes-Tipp hilft Ihnen, Details zu einem Kubernetes-Worker-Knoten zu erhalten und seine Ausgabe zu lesen und zu verstehen.

Was ist ein Kubernetes-Knoten?

Ein Knoten ist eine Arbeitsmaschine (virtuell/physisch) in Kubernetes, auf der Pods mit Ihren Anwendungen ausgeführt werden. Zu den Diensten, die auf einem Knoten ausgeführt werden, gehören Docker, Kubelet und Kube-Proxy.

Auflisten verfügbarer Knoten in Ihrem Kubernetes-Cluster

Die einfachste Möglichkeit, die verfügbaren Knoten anzuzeigen, ist die Verwendung des kubectl-Befehls auf diese Weise:

kubectl get nodes

Es sollte Ihnen alle Knoten in Ihrem Cluster auf einen Blick zeigen. Sie können den Status, die Rolle, das Alter und die Version jedes Knotens sehen.

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

Wie Sie sehen können, befinden sich beide Worker-Knoten im Bereitschaftszustand.

Um eine detailliertere Ausgabe nach dem folgenden Befehl anzuzeigen, können Sie den -o wide hinzufügen Option wie folgt:

kubectl get nodes -o wide

Jetzt sehen Sie zusätzliche Details wie interne und externe IP, Container-Image, Kernel-Version und Laufzeit für den Container.

[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

Lassen Sie uns tiefer gehen und mehr über einen bestimmten Knoten erfahren.

Beschreibung eines Knotens für weitere Details

Wenn Sie detaillierte Informationen zu einem bestimmten Knoten wünschen, können Sie kubectl describe verwenden Befehl mit dem Knotennamen:

kubectl describe nodes worker-node-name

Hier ist eine Beispielausgabe:

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

Das sind eine Menge Informationen. Was ist Ihnen wichtig?

  • Die meisten Informationen beziehen sich auf System-IP, Hostname, Ressourcen (CPUs, GPUs, Arbeitsspeicher) und Versionsinformationen (Betriebssystem, Docker, Kubernetes).
  • kubelet-Dienst Status.
  • Nicht planbar Parameter.
  • Die Bedingungen Abschnitt kann angeben, ob es Probleme mit Systemressourcen gibt, die sich auf die Ausführung der Anwendung auswirken. Wenn zum Beispiel einer der OutOfDisk , Speicherdruck , oder DiskPressure Bedingungen wahr sind, sind nicht genügend Systemressourcen vorhanden, um weitere Workloads zu bedienen.
  • Die Ereignisse Der letzte Abschnitt enthält auch Meldungen, die angeben können, ob es Probleme mit der Umgebung gibt.

Ich hoffe, Ihnen gefällt dieser schnelle Kubernetes-Tipp. Bleiben Sie dran und vergessen Sie nicht, mehr zu abonnieren.

Rakesh Jain
DevOps-Profi | RCA | Jenkins | Git | Docker | Kubernetes | Ansible | Prometheus | Grafana | AWS-Cloud

Linux
  1. So bereinigen Sie Snap-Paketversionen in Linux [Kurztipp]

  2. So synchronisieren Sie Untertitel mit Filmen [Kurztipp]

  3. So entfernen Sie Benutzer aus der Gruppe in Linux [Kurztipp]

  4. So finden Sie die Länge der Zeichenfolge in Bash [Schneller Tipp]

  5. So löschen Sie Pods in Kubernetes [Schnelle K8s-Tipps]

So finden Sie die Prozess-ID eines Programms und beenden es [Kurztipp]

So beheben Sie den fehlenden Flash Player-Fehler in Midori [Kurztipp]

So erstellen und wechseln Sie Arbeitsbereiche in Linux Mint [Kurztipp]

So fügen Sie neue Pinsel in GIMP hinzu [Kurztipp]

Wie man Bilder in GIMP zuschneidet [Quick Tip]

So fügen Sie ein Verzeichnis zu PATH in Linux hinzu [Kurztipp]