7.2. ノードの正常性の確認
7.2.1. ノードのステータス、リソースの使用状況および設定の確認
クラスターノードの正常性ステータス、リソース消費統計およびノードログを確認します。さらに、個別のノードで kubelet
ステータスをクエリーします。
前提条件
-
cluster-admin
ロールを持つユーザーとしてクラスターにアクセスできる。 -
OpenShift CLI (
oc
) がインストールされている。
手順
クラスターのすべてのノードの名前、ステータスおよびロールをリスト表示します。
$ oc get nodes
クラスター内の各ノードの CPU およびメモリーの使用状況を要約します。
$ oc adm top nodes
特定のノードの CPU およびメモリーの使用状況を要約します。
$ oc adm top node my-node
7.2.2. ノードにおける kubelet ステータスのクエリー
クラスターノードの正常性ステータス、リソース消費統計およびノードログを確認できます。さらに、個別のノードで kubelet
ステータスをクエリーできます。
前提条件
-
cluster-admin
ロールを持つユーザーとしてクラスターにアクセスできる。 - API サービスが機能している。
-
OpenShift CLI (
oc
) がインストールされている。
手順
kubelet は各ノードの systemd サービスを使用して管理されます。デバッグ Pod 内で
kubelet
systemd サービスをクエリーし、kubelet のステータスを確認します。ノードのデバッグ Pod を起動します。
$ oc debug node/my-node
注記コントロールプレーンノードで
oc debug
を実行している場合は、/etc/kubernetes/static-pod-resources/kube-apiserver-certs/secrets/node-kubeconfigs
ディレクトリーに管理用kubeconfig
ファイルがあります。/host
をデバッグシェル内の root ディレクトリーとして設定します。デバッグ Pod は、Pod 内の/host
にホストの root ファイルシステムをマウントします。root ディレクトリーを/host
に変更すると、ホストの実行パスに含まれるバイナリーを実行できます。# chroot /host
注記Red Hat Enterprise Linux CoreOS (RHCOS) を実行する OpenShift Container Platform 4.10 クラスターノードは変更できず、Operator を使用してクラスターの変更を適用します。SSH を使用したクラスターノードへのアクセスは推奨されません。ただし、OpenShift Container Platform API が利用できない場合や、
kubelet
がターゲットノードで適切に機能しない場合、oc
操作がその影響を受けます。この場合は、代わりにssh core@<node>.<cluster_name>.<base_domain>
を使用してノードにアクセスできます。kubelet
systemd サービスがノードでアクティブかどうかを確認します。# systemctl is-active kubelet
より詳細な
kubelet.service
ステータスの要約を出力します。# systemctl status kubelet
7.2.3. クラスターノードジャーナルログのクエリー
個別のクラスターノードの /var/log
内で journald
ユニットログおよびその他のログを収集できます。
前提条件
-
cluster-admin
ロールを持つユーザーとしてクラスターにアクセスできる。 - API サービスが機能している。
-
OpenShift CLI (
oc
) がインストールされている。 - ホストへの SSH アクセスがあること。
手順
OpenShift Container Platform クラスターノードから
kubelet
のjournald
ユニットログをクエリーします。以下の例では、コントロールプレーンノードのみがクエリーされます。$ oc adm node-logs --role=master -u kubelet 1
- 1
- 他のユニットログをクエリーするために、
kubelet
を適宜置き換えます。
クラスターノードの
/var/log/
の下にある特定のサブディレクトリーからログを収集します。/var/log/
サブディレクトリー内に含まれるログの一覧を取得します。以下の例では、すべてのコントロールプレーンノードの/var/log/openshift-apiserver/
にあるファイルをリスト表示します。$ oc adm node-logs --role=master --path=openshift-apiserver
/var/log/
サブディレクトリー内の特定ログを確認します。以下の例は、すべてのコントロールプレーンノードから/var/log/openshift-apiserver/audit.log
コンテンツを出力します。$ oc adm node-logs --role=master --path=openshift-apiserver/audit.log
API が機能しない場合は、代わりに SSH を使用して各ノードのログを確認します。以下の例は、
/var/log/openshift-apiserver/audit.log
をベースとしています。$ ssh core@<master-node>.<cluster_name>.<base_domain> sudo tail -f /var/log/openshift-apiserver/audit.log
注記Red Hat Enterprise Linux CoreOS (RHCOS) を実行する OpenShift Container Platform 4.10 クラスターノードは変更できず、Operator を使用してクラスターの変更を適用します。SSH を使用したクラスターノードへのアクセスは推奨されません。SSH 経由で診断データの収集を試行する前に、
oc adm must gather
およびその他のoc
コマンドを実行して収集されるデータが十分であるかどうかを確認してください。ただし、OpenShift Container Platform API が利用できない場合や、kubelet がターゲットノードで適切に機能しない場合、oc
操作がその影響を受けます。この場合は、代わりにssh core@<node>.<cluster_name>.<base_domain>
を使用してノードにアクセスできます。