GNU/Linux >> Linux の 問題 >  >> Linux

Kubernetesでノードを読み取る方法[K8sのクイックヒント]

このKubernetesの簡単なヒントは、Kubernetesワーカーノードの詳細と、その出力を読み取って理解する方法を理解するのに役立ちます。

Kubernetesノードとは何ですか?

ノードは、アプリケーションを運ぶポッドが実行されるKubernetesのワーカーマシン(仮想/物理)です。ノードで実行されるサービスには、Docker、kubelet、kube-proxyが含まれます。

Kubernetesクラスターで利用可能なノードを一覧表示する

使用可能なノードを確認する最も簡単な方法は、次のようにkubectlコマンドを使用することです。

kubectl get nodes

クラスタ内のすべてのノードが一目でわかるはずです。各ノードのステータス、役割、年齢、バージョンを確認できます。

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

ご覧のとおり、両方のワーカーノードは準備完了状態です。

次のコマンドで実行されたより詳細な出力を表示するために、-o wideを追加できます。 このようなオプション:

kubectl get nodes -o wide

これで、内部および外部IP、コンテナイメージ、カーネルバージョン、コンテナのランタイムなどの追加の詳細が表示されます。

[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

もっと深く掘り下げて、特定のノードについてもっと知りましょう。

詳細についてはノードの説明

特定のノードに関する詳細情報が必要な場合は、kubectl describeを使用できます。 ノード名を指定したコマンド:

kubectl describe nodes worker-node-name

出力例は次のとおりです。

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

それはたくさんの情報です。 あなたにとって重要なことは何ですか?

  • ほとんどの情報は、システムIP、ホスト名、リソース(CPU、GPU、メモリ)、バージョン情報(OS、Docker、Kubernetes)に関する情報です。
  • クベレットサービス ステータス。
  • 予定外 パラメータ。
  • 条件 セクションは、アプリケーションの実行に影響を与えるシステムリソースの問題があるかどうかを示すことができます。たとえば、 OutOfDiskのいずれかが 、 MemoryPressure 、または DiskPressure 条件が真である場合、さらなるワークロードに対応するにはシステムリソースが不十分です。
  • イベント 最後に、セクションには、環境に問題があるかどうかを示すメッセージも表示されます。

この簡単なKubernetesのヒントが気に入っていただければ幸いです。しばらくお待ちください。さらに購読することを忘れないでください。

Rakesh Jain
DevOps Professional | RHCA |ジェンキンス| Git | Docker | Kubernetes | Ansible |プロメテウス| Grafana | AWSクラウド

Linux
  1. Bashで文字列の長さを見つける方法[クイックヒント]

  2. Kubernetesでポッドを削除する方法[K8sのクイックヒント]

  3. Kubernetesデプロイメントを削除する方法[K8sのクイックヒント]

  1. Linuxでスナップパッケージのバージョンをクリーンアップする方法[クイックヒント]

  2. Kubernetesでポッドを再起動する方法[K8sのクイックヒント]

  3. Kubernetesのノードにラベルを追加または削除する方法

  1. 字幕を映画と同期させる方法[クイックヒント]

  2. UbuntuにCurlをインストールする方法[クイックヒント]

  3. Linuxでグループからユーザーを削除する方法[クイックヒント]