はじめに
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を通さないコンテナの起動状況を確認できます。
以上、ご参考になれば幸いです。