1.4.3. CRI-O Pod およびコンテナーのトラブルシューティング
crictl コマンドを使用すると、CRI-O コンテナーエンジンと直接インターフェイスして、コンテナーエンジンに関連付けられたコンテナー、イメージ、および Pod を確認し、操作できます。runc コンテナーランタイムは、CRI-O と対話するもう 1 つの方法です。ノード上で support-tools を実行するなど、コンテナーを CRI-O コンテナーエンジンの外部で実行する必要がある場合は、podman コマンドを使用できます。
これら 2 つのコマンドの説明とその違いについては、Crictl vs. Podman を参照してください。
開始するには、crictl info および crictl version コマンドを使用して、CRI-O サービスの一般的なステータスを確認できます。
sudo crictl info
{
"status": {
"conditions": [
{
"type": "RuntimeReady",
"status": true,
"reason": "",
"message": ""
},
{
"type": "NetworkReady",
"status": true,
"reason": "",
"message": ""
}
]
}
}
sudo crictl version
Version: 0.1.0
RuntimeName: cri-o
RuntimeVersion: 1.11.6
RuntimeApiVersion: v1alpha1
$ sudo crictl info
{
"status": {
"conditions": [
{
"type": "RuntimeReady",
"status": true,
"reason": "",
"message": ""
},
{
"type": "NetworkReady",
"status": true,
"reason": "",
"message": ""
}
]
}
}
$ sudo crictl version
Version: 0.1.0
RuntimeName: cri-o
RuntimeVersion: 1.11.6
RuntimeApiVersion: v1alpha1
1.4.3.1. イメージ、Pod、およびコンテナーの一覧表示 リンクのコピーリンクがクリップボードにコピーされました!
crictl コマンドは、CRI-O 環境でコンポーネントを調査するためのオプションを提供します。以下は、イメージ、Pod、およびコンテナーについての情報を一覧表示するための crictl の使用例の一部になります。
ローカル CRI-O ノードにプルされているイメージを表示するには、crictl images コマンドを実行します。
sudo crictl images IMAGE TAG IMAGE ID SIZE docker.io/openshift/oauth-proxy v1.1.0 90c45954eb03e 242MB docker.io/openshift/origin-haproxy-router v3.11 13f40ad4d2e21 410MB docker.io/openshift/origin-node v3.11 93d2aeddcd6db 1.17GB docker.io/openshift/origin-pod v3.11 89ceff8fb1907 263MB docker.io/openshift/prometheus-alertmanager v0.15.2 68bbd00063784 242MB docker.io/openshift/prometheus-node-exporter v0.16.0 f9f775bf6d0ef 225MB quay.io/coreos/cluster-monitoring-operator v0.1.1 4488a207a5bca 531MB quay.io/coreos/configmap-reload v0.0.1 3129a2ca29d75 4.79MB quay.io/coreos/kube-rbac-proxy v0.3.1 992ac1a5e7c79 40.4MB quay.io/coreos/kube-state-metrics v1.3.1 a9c8f313b7aad 22.2MB
$ sudo crictl images
IMAGE TAG IMAGE ID SIZE
docker.io/openshift/oauth-proxy v1.1.0 90c45954eb03e 242MB
docker.io/openshift/origin-haproxy-router v3.11 13f40ad4d2e21 410MB
docker.io/openshift/origin-node v3.11 93d2aeddcd6db 1.17GB
docker.io/openshift/origin-pod v3.11 89ceff8fb1907 263MB
docker.io/openshift/prometheus-alertmanager v0.15.2 68bbd00063784 242MB
docker.io/openshift/prometheus-node-exporter v0.16.0 f9f775bf6d0ef 225MB
quay.io/coreos/cluster-monitoring-operator v0.1.1 4488a207a5bca 531MB
quay.io/coreos/configmap-reload v0.0.1 3129a2ca29d75 4.79MB
quay.io/coreos/kube-rbac-proxy v0.3.1 992ac1a5e7c79 40.4MB
quay.io/coreos/kube-state-metrics v1.3.1 a9c8f313b7aad 22.2MB
CRI-O 環境で現在アクティブな Pod を表示するには、crictl pods を実行します。
sudo crictl pods POD ID CREATED STATE NAME NAMESPACE ATTEMPT 09997515d7729 5 hours ago Ready kube-state-metrics-... openshift-monitoring 0 958b0789e0552 5 hours ago Ready node-exporter-rkbzp openshift-monitoring 0 4ec0498dacec8 5 hours ago Ready alertmanager-main-0 openshift-monitoring 0 2873b697df1d2 5 hours ago Ready cluster-monitoring-... openshift-monitoring 0 b9e221481fb7e 5 hours ago Ready router-1-968t4 default 0 f02ce4a4b4186 5 hours ago Ready sdn-c45cm openshift-sdn 0 bdf5b1dcc0a08 5 hours ago Ready ovs-kdvzs openshift-sdn 0 49dbc57455c8f 5 hours ago Ready sync-hgfvb openshift-node 0
$ sudo crictl pods
POD ID CREATED STATE NAME NAMESPACE ATTEMPT
09997515d7729 5 hours ago Ready kube-state-metrics-... openshift-monitoring 0
958b0789e0552 5 hours ago Ready node-exporter-rkbzp openshift-monitoring 0
4ec0498dacec8 5 hours ago Ready alertmanager-main-0 openshift-monitoring 0
2873b697df1d2 5 hours ago Ready cluster-monitoring-... openshift-monitoring 0
b9e221481fb7e 5 hours ago Ready router-1-968t4 default 0
f02ce4a4b4186 5 hours ago Ready sdn-c45cm openshift-sdn 0
bdf5b1dcc0a08 5 hours ago Ready ovs-kdvzs openshift-sdn 0
49dbc57455c8f 5 hours ago Ready sync-hgfvb openshift-node 0
現在実行されているコンテナーを表示するには、crictl ps コマンドを実行します。
sudo crictl ps CONTAINER ID IMAGE CREATED STATE NAME ATTEMPT 376eb13e3cb37 quay.io/coreos/kube-state-metrics... 4 hours ago Running kube-state-metrics 0 72d61c3d393b5 992ac1a5e7c79d627321dc7877f741a00... 4 hours ago Running kube-rbac-proxy-self 0 5fa8c93484055 992ac1a5e7c79d627321dc7877f741a00... 4 hours ago Running kube-rbac-proxy-main 0 a2d35508fc0ee quay.io/coreos/kube-rbac-proxy... 4 hours ago Running kube-rbac-proxy 0 9adda43f3595f docker.io/openshift/prometheus-no... 4 hours ago Running node-exporter 0 7f4ce5b25cfdb docker.io/openshift/oauth-proxy... 4 hours ago Running alertmanager-proxy 0 85418badbf6ae quay.io/coreos/configmap-reload... 4 hours ago Running config-reloader 0 756f20138381c docker.io/openshift/prometheus-al... 4 hours ago Running alertmanager 0 5e6d8ff4852ba quay.io/coreos/cluster-monitoring... 4 hours ago Running cluster-monitoring- 0 1c96cfcfa10a7 docker.io/openshift/origin-haprox... 5 hours ago Running route 0 8f90bb4cded60 docker.io/openshift/origin-node... 5 hours ago Running sdn 0 59e5fb8514262 docker.io/openshift/origin-node... 5 hours ago Running openvswitch 0 73323a2c26abe docker.io/openshift/origin-node... 5 hours ago Running sync 0
$ sudo crictl ps
CONTAINER ID IMAGE CREATED STATE NAME ATTEMPT
376eb13e3cb37 quay.io/coreos/kube-state-metrics... 4 hours ago Running kube-state-metrics 0
72d61c3d393b5 992ac1a5e7c79d627321dc7877f741a00... 4 hours ago Running kube-rbac-proxy-self 0
5fa8c93484055 992ac1a5e7c79d627321dc7877f741a00... 4 hours ago Running kube-rbac-proxy-main 0
a2d35508fc0ee quay.io/coreos/kube-rbac-proxy... 4 hours ago Running kube-rbac-proxy 0
9adda43f3595f docker.io/openshift/prometheus-no... 4 hours ago Running node-exporter 0
7f4ce5b25cfdb docker.io/openshift/oauth-proxy... 4 hours ago Running alertmanager-proxy 0
85418badbf6ae quay.io/coreos/configmap-reload... 4 hours ago Running config-reloader 0
756f20138381c docker.io/openshift/prometheus-al... 4 hours ago Running alertmanager 0
5e6d8ff4852ba quay.io/coreos/cluster-monitoring... 4 hours ago Running cluster-monitoring- 0
1c96cfcfa10a7 docker.io/openshift/origin-haprox... 5 hours ago Running route 0
8f90bb4cded60 docker.io/openshift/origin-node... 5 hours ago Running sdn 0
59e5fb8514262 docker.io/openshift/origin-node... 5 hours ago Running openvswitch 0
73323a2c26abe docker.io/openshift/origin-node... 5 hours ago Running sync 0
実行中のコンテナーと、停止または終了したコンテナーの両方を表示するには、crictl ps -a を実行します。
sudo crictl ps -a
$ sudo crictl ps -a
CRI-O サービスが停止しているか、または正常に機能していない場合、runc コマンドを使用して、CRI-O で実行されたコンテナーを一覧表示できます。この例では、CRI-O が実行されているコンテナーと実行されていないコンテナーの存在を検索します。次に、CRI-O が停止している場合でも、runc を使用してそのコンテナーを調査できることを示します。
crictl ps | grep d36a99a9a40ec
d36a99a9a40ec 062cd20609d3895658e54e5f367b9d70f42db4f86ca14bae7309512c7e0777fd
11 hours ago CONTAINER_RUNNING sync 2
sudo systemctl stop crio
sudo crictl ps | grep d36a99a9a40ec
2018/10/25 11:22:16 grpc: addrConn.resetTransport failed to create client transport:
connection error: desc = "transport: dial unix /var/run/crio/crio.sock: connect:
no such file or directory"; Reconnecting to {/var/run/crio/crio.sock <nil>}
FATA[0000] listing containers failed: rpc error: code = Unavailable desc = grpc:
the connection is unavailable
sudo runc list | grep d36a99a9a40ec
d36a99a9a40ecc4c830f10ed2d5bb3ce1c6deadcb1a4879ff342e315051a71ed 19477 running
/run/containers/storage/overlay-containers/d36a99a9a40ecc4c830f10ed2d5bb3ce1c6deadcb1a4879ff342e315051a71ed/userdata
2018-10-25T04:44:29.47950187Z root
ls /run/containers/storage/overlay-containers/d36*/userdata/
attach config.json ctl pidfile run
less /run/containers/storage/overlay-containers/d36*/userdata/config.json
{
"ociVersion": "1.0.0",
"process": {
"user": {
"uid": 0,
"gid": 0
},
"args": [
"/bin/bash",
"-c",
"#!/bin/bash\nset -euo pipefail\n\n# set by the node
image\nunset KUBECONFIG\n\ntrap 'kill $(jobs -p);
exit 0' TERM\n\n# track the current state of the ...
sudo systemctl start crio
$ crictl ps | grep d36a99a9a40ec
d36a99a9a40ec 062cd20609d3895658e54e5f367b9d70f42db4f86ca14bae7309512c7e0777fd
11 hours ago CONTAINER_RUNNING sync 2
$ sudo systemctl stop crio
$ sudo crictl ps | grep d36a99a9a40ec
2018/10/25 11:22:16 grpc: addrConn.resetTransport failed to create client transport:
connection error: desc = "transport: dial unix /var/run/crio/crio.sock: connect:
no such file or directory"; Reconnecting to {/var/run/crio/crio.sock <nil>}
FATA[0000] listing containers failed: rpc error: code = Unavailable desc = grpc:
the connection is unavailable
$ sudo runc list | grep d36a99a9a40ec
d36a99a9a40ecc4c830f10ed2d5bb3ce1c6deadcb1a4879ff342e315051a71ed 19477 running
/run/containers/storage/overlay-containers/d36a99a9a40ecc4c830f10ed2d5bb3ce1c6deadcb1a4879ff342e315051a71ed/userdata
2018-10-25T04:44:29.47950187Z root
$ ls /run/containers/storage/overlay-containers/d36*/userdata/
attach config.json ctl pidfile run
$ less /run/containers/storage/overlay-containers/d36*/userdata/config.json
{
"ociVersion": "1.0.0",
"process": {
"user": {
"uid": 0,
"gid": 0
},
"args": [
"/bin/bash",
"-c",
"#!/bin/bash\nset -euo pipefail\n\n# set by the node
image\nunset KUBECONFIG\n\ntrap 'kill $(jobs -p);
exit 0' TERM\n\n# track the current state of the ...
$ sudo systemctl start crio
ご覧のとおり、CRI-O サービスがオフの場合でも、さらに詳しく調べたい場合に備えて、runc はコンテナーの存在とファイルシステム内のその場所を示します。