はじめに
Openshiftではoc debug nodeを利用すること任意のノードでシェルプロンプトを開くことができます。
本記事は同コマンドの解説と実際にkubeletのステータスを確認する手順について記載しました。
環境情報
- OpenShift Container Platform 4
oc debug nodeの仕組み
oc debug node/NODENAMEを行うことで、WorkerNodeの/ディレクトリを/host にマウントしたPodが起動します。
コマンドを実行した結果は以下。
$ oc debug node/test01 --v=3 Starting pod/test01-debug ... To use host binaries, run `chroot /host` I0309 01:48:08.264052 3999 reflector.go:175] Starting reflector *v1.Pod (0s) from k8s.io/client-go/tools/watch/informerwatcher.go:146 I0309 01:48:08.264166 3999 reflector.go:211] Listing and watching *v1.Pod from k8s.io/client-go/tools/watch/informerwatcher.go:146 I0309 01:48:09.776863 3999 reflector.go:181] Stopping reflector *v1.Pod (0s) from k8s.io/client-go/tools/watch/informerwatcher.go:146 Pod IP: 192.X.X.X If you don't see a command prompt, try pressing enter. sh-4.2#
上にある通りでホスト上の情報を取得するには以下のようにchrootコマンドを実施します。
sh-4.2# chroot /host
これを実施しないとコマンドは通りません。
sh-4.2# systemctl status kubelet Running in chroot, ignoring request.
ノードのkubeletの動作状況を確認する
ノード名を確認し
$ oc get node NAME STATUS ROLES AGE VERSION test01 Ready master,worker xx v1.18.3+012b3ec
同ノード名でoc debug nodeを打つと以下のように表示されます。ちなみにここでPodIPと表示されるIPはNodeのInternalIPと同一です。
$ oc debug node/test01 Starting pod/test01-debug ... To use host binaries, run `chroot /host` Pod IP: 192.X.X.X
chrootを行えば
sh-4.2# chroot /host sh-4.4#
Node上でコマンドを打つのと同じ結果が取得できます。
sh-4.4# systemctl status kubelet
● kubelet.service - MCO environment configuration
Loaded: loaded (/etc/systemd/system/kubelet.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/kubelet.service.d
└─10-mco-default-env.conf
Active: active (running) since ...
Process: 1478 ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state (code=exited, status>
Process: 1476 ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests (code=exited, statu>
Main PID: 1480 (kubelet)
Tasks: 52 (limit: 102120)
Memory: 369.3M
CPU: 1min 48.254s
CGroup: /system.slice/kubelet.service
└─1480 kubelet --config=/etc/kubernetes/kubelet.conf --bootstrap-kubeconfig=/etc/kub...
終わりに
主にNode上のCRI-Oとkubeletの状況を確認する際に利用するコマンドで、debug上のシェルでcrictil psと打てばKubernetesを通さないコンテナの起動状況を確認できます。
以上、ご参考になれば幸いです。