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
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
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
現在実行されているコンテナーを表示するには、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
実行中のコンテナーと、停止または終了したコンテナーの両方を表示するには、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
ご覧のとおり、CRI-O サービスがオフの場合でも、さらに詳しく調べたい場合に備えて、runc
はコンテナーの存在とファイルシステム内のその場所を示します。