Kubernetes の Pod にファイルを転送する / Pod からファイルをダウンロードする

前回、Docker コンテナとホスト OS 間でファイルをやり取りする docker cp コマンドを紹介した。

今回は、Docker コンテナを Kubernetes クラスタ内で動かしている時に、同様にファイルを送ったり・受け取ったりする方法。

コマンドの構成は docker cp とよく似ていて、Kubernetes の場合は kubectl cp コマンドを使う。ただし、転送先はディレクトリ名までではなく、ファイル名まで記述する必要がある。

docker cp の時はコンテナ ID を指定していたところ、Kubernetes の場合は Pod 名を指定する。Pod 名は $ kubectl get pod で調べられる。

# 手元のマシンから Kubernetes Pod にファイルをアップロードする
$ kubectl cp ./my-file.txt my-app-pod-deployment-9999999999-xxxxx:/tmp/my-file.txt

# Kubernetes Pod にあるファイルを手元のマシンにダウンロードする
$ kubectl cp my-app-pod-deployment-9999999999-xxxxx:/tmp/my-pod-file.txt ./my-pod-file.txt

docker cp コマンドの場合も、転送先のファイル名までしっかり記述する癖を付けておけば、Docker と Kubernetes とで同じようにコマンドが叩けるだろう。