2017-12-27 5 views
0

私は、コンテナ内で実行されているプログラムがどこのログを保存しているかを調べようとしています。しかし、コンテナを配備したマシンへのSSHアクセスはありません。ただkubectlです。Kubernetesにはdocker diffのアナログがありますか?

ssh machine-running-docker 'docker diff \ 
    $(kubectl describe pod pod-name | \ 
     grep 'Conainer ID' | sed -E s#^[^/]+//(.+)$#\1#)' 

(正規表現は、単にアイデアを与えるために、不正確かもしれない):私はSSHアクセスを持っていたと仮定し、私はこのような何かをしたいです。

答えて

1

まず、コンテナ内のアプリは、そのログをコンテナ内のファイルに保存しないでください。つまり、stdout /いくつかのロギングサービスへのロギング用に構成されていないサードパーティのアプリケーションを使用するときは、避けるのが難しい場合があります。

良い古いfind救助に - ちょうどkubectl execポッド/コンテナにfind/-mmin -1最後の1分に変更されたすべてのファイルを提供します。それはあなたのために十分なリストを狭めなければなりません(コンテナがすでに数分間存在していたと仮定します)。

+0

ええと...これはうまくいくでしょうが、それは 'diff'と比べて非常に遅いです。特にコンテナがいくつかの巨大なファイルシステム共有をマウントするか、または神がNFS共有を禁止する場合... – wvxvw

関連する問題