k8sを使ってファイルをpodにコピーする方法
Kubernetesでは、Podにファイルをコピーする方法はいくつかあります。
- kubectlコマンドを使う場合:
- kubectl cp <ローカルファイルパス> <ネームスペース>/<Pod名>:<対象パス>
- 例えば、ローカルファイル /path/to/local/file.txt を my-pod という名前の Pod の /path/to/target/ ディレクトリにコピーするには、次のコマンドを実行します。
- kubectl cp /path/to/local/file.txt default/my-pod:/path/to/target/
- kubectl execコマンドとstdinリダイレクトの使用:
- kubectl exec -it <ポッド名> — sh -c ‘cat > <宛先パス>’ < <ローカルファイルパス>
- たとえば、ローカルファイル /path/to/local/file.txt を my-pod という名前の Pod の /path/to/target/file.txt ファイルにコピーします。
- kubectl exec -it my-pod — sh -c ‘cat /path/to/local/file.txt > /path/to/target/file.txt’
- 一時的なPodを作成し、kubectl cpコマンドを使用してそのPodにファイルをコピーしてから、kubectl cpコマンドを使用してそのPodから対象のPodにファイルをコピーする。
- 最初に、一時的なPodを作成します(例:
- apiVersion: v1
kind: ポッド
metadata:
name: temp-pod
namespace: default
spec:
containers:
– name: temp-container
image: busybox
command: [“sleep”, “3600”]
volumeMounts:
– name: shared-data
mountPath: /data
volumes:
– name: shared-data
emptyDir: {} - kubectl cpコマンドを使ってファイルを一時的な Pod にコピーする:
- kubectl cp <ローカルファイルパス> default/temp-pod:/data/<ターゲットファイル名>
- kubectl cpコマンドを使って一時的に作成したPodからファイルを作成したPodにファイルをコピーする
- kubectl cp デフォルト/temp-pod:/data/<対象ファイル名> <対象ポッド名>:<対象パス>
上記のいずれかの方法で、<ポッド名>はターゲットPod名、<ターゲットパス>はPod内でのターゲットファイルのパス、<ローカルファイルパス>はローカルファイルのパス、<ターゲットファイル名>はターゲットファイル名です。あなたのご要望に応じて適宜な方法を選択してください。