0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OpenShift - Get Multi-Container Pod logs

Last updated at Posted at 2024-10-17

oc logs

OpenShift で Pod の状況を確認する際に oc logs コマンドを使用することがあります。ここでは、Multi-Container Pod (複数の Container が稼働する Pod)のログ取得方法をご紹介します。

ここでは、5個(Init Container を含めると6個)の Container が稼働する kube-apiserver を例として使用してみます。

$ oc project -q
openshift-kube-apiserver

$ oc get pod kube-apiserver-rawoid-12bde
NAME                          READY   STATUS    RESTARTS   AGE
kube-apiserver-rawoid-12bde   5/5     Running   0          64m

$ oc -o json get pod kube-apiserver-rawoid-12bde  | jq -r '.spec |.initContainers[].name, .containers[].name'
setup
kube-apiserver
kube-apiserver-cert-syncer
kube-apiserver-cert-regeneration-controller
kube-apiserver-insecure-readyz
kube-apiserver-check-endpoints

--all-containers option

oc logs --all-containers を使用することで、Pod 内の Container のログを一括で取得することが出来ます。--prefix を併用することで Container Name 等の情報を付与します。

$ oc logs --prefix --all-containers kube-apiserver-rawoid-12bde > kube-apiserver-rawoid-12bde.LOG

$ head -n 5 kube-apiserver-rawoid-12bde.LOG
[pod/kube-apiserver-rawoid-12bde/setup] Fixing audit permissions ...
[pod/kube-apiserver-rawoid-12bde/setup] Acquiring exclusive lock /var/log/kube-apiserver/.lock ...
[pod/kube-apiserver-rawoid-12bde/setup] flock: getting lock took 0.000003 seconds
[pod/kube-apiserver-rawoid-12bde/kube-apiserver] flock: getting lock took 0.000004 seconds
[pod/kube-apiserver-rawoid-12bde/kube-apiserver] Copying system trust bundle ...

$ awk '{print $1}' kube-apiserver-rawoid-12bde.LOG | sort | uniq -c
  20395 [pod/kube-apiserver-rawoid-12bde/kube-apiserver]
     11 [pod/kube-apiserver-rawoid-12bde/kube-apiserver-cert-regeneration-controller]
     58 [pod/kube-apiserver-rawoid-12bde/kube-apiserver-cert-syncer]
     54 [pod/kube-apiserver-rawoid-12bde/kube-apiserver-check-endpoints]
      1 [pod/kube-apiserver-rawoid-12bde/kube-apiserver-insecure-readyz]
      3 [pod/kube-apiserver-rawoid-12bde/setup]

bash script

oc logs --all-containers ではログが1つのファイルに混在する事になります。別々のファイルに収集したい場合は、以下のような bash script で実装することが出来ます。

$ POD="kube-apiserver-rawoid-12bde"
$ for C in $(oc -o json get pod $POD | jq -r '.spec |.initContainers[].name, .containers[].name')
do
  oc logs --prefix -c $C $POD > $POD"_"$C".LOG"
done

$ ls -lt
total 7844
-rw-r--r-- 1 root root   18281 Oct 17 01:57 kube-apiserver-rawoid-12bde_kube-apiserver-check-endpoints.LOG
-rw-r--r-- 1 root root     171 Oct 17 01:57 kube-apiserver-rawoid-12bde_kube-apiserver-insecure-readyz.LOG
-rw-r--r-- 1 root root   13077 Oct 17 01:57 kube-apiserver-rawoid-12bde_kube-apiserver-cert-regeneration-controller.LOG
-rw-r--r-- 1 root root   51531 Oct 17 01:57 kube-apiserver-rawoid-12bde_kube-apiserver-cert-syncer.LOG
-rw-r--r-- 1 root root 7931297 Oct 17 01:57 kube-apiserver-rawoid-12bde_kube-apiserver.LOG
-rw-r--r-- 1 root root     355 Oct 17 01:57 kube-apiserver-rawoid-12bde_setup.LOG

$ head -n 1 *.LOG
==> kube-apiserver-rawoid-12bde_kube-apiserver-cert-regeneration-controller.LOG <==
[pod/kube-apiserver-rawoid-12bde/kube-apiserver-cert-regeneration-controller] W1017 00:23:59.863590       1 cmd.go:245] Using insecure, self-signed certificates

==> kube-apiserver-rawoid-12bde_kube-apiserver-cert-syncer.LOG <==
[pod/kube-apiserver-rawoid-12bde/kube-apiserver-cert-syncer] I1017 00:23:59.758428       1 base_controller.go:67] Waiting for caches to sync for CertSyncController

==> kube-apiserver-rawoid-12bde_kube-apiserver-check-endpoints.LOG <==
[pod/kube-apiserver-rawoid-12bde/kube-apiserver-check-endpoints] W1017 00:24:00.087320       1 cmd.go:245] Using insecure, self-signed certificates

==> kube-apiserver-rawoid-12bde_kube-apiserver-insecure-readyz.LOG <==
[pod/kube-apiserver-rawoid-12bde/kube-apiserver-insecure-readyz] I1017 00:23:59.989533       1 readyz.go:111] Listening on 0.0.0.0:6080

==> kube-apiserver-rawoid-12bde_kube-apiserver.LOG <==
[pod/kube-apiserver-rawoid-12bde/kube-apiserver] flock: getting lock took 0.000004 seconds

==> kube-apiserver-rawoid-12bde_setup.LOG <==
[pod/kube-apiserver-rawoid-12bde/setup] Fixing audit permissions ...
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?