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 とで同じようにコマンドが叩けるだろう。