🐈

kubectl cpでうまくファイル転送できないときに確認したいこと

2023/02/15に公開

エラー126

メッセージ

command terminated with exit code 126 

原因

コンテナにtarが入っていないかもしれないのでインストールする

ディレクトリを開けなかったエラー

メッセージ

error: open .: is a directory  

原因

kubectl cpするタイミングでは、WorkingDirectoryがルートになる

なので、kubectl execでログイン後pwdでWorkingDirectoryを確認。
WorkingDirectory直下に転送したいファイルを置き、相対パスで指定するのがいい。

補足

  • コンテナが複数あるPodに対しては、-cでコンテナを指定しておいたほうがいい。
    指定しない場合、defualtコンテナ(1つ目のコンテナ)に対して実行される。

  • コンテナからローカルにcpする際のコピー先では、.(カレント)は使えない模様

うまくいくであろうコマンド

kubectl cp <Pod名>:<ファイル名> <ファイル名> -c <コンテナ名>

サンプル

WorkingDirectory直下にtest.txtをおいた想定

kubectl cp app-pod:test.txt test.txt -c app-container

Discussion