k8sでファイルをローカルにダウンロードする方法
Kubernetesクラスターからファイルをローカルにダウンロードするには、次の方法のいずれかを使用します。
- kubectlコマンドを使う。
- kubectl cpコマンドでファイルをローカルディレクトリへコピーします。例えば、以下のコマンドは、/data/file.txtファイルをmy-podのコンテナから、ローカルディレクトリ/local/pathへコピーします。kubectl cp my-pod:/data/file.txt /local/path
- kubectl execコマンドと出力のリダイレクトを使用する
- 「kubectl exec」コマンドを容器内で使用してコマンドを実行し、出力をローカルファイルにリダイレクトします。たとえば、以下のコマンドは「my-pod」内の「/data/file.txt」ファイルの内容をローカルファイル「/local/path/file.txt」にリダイレクトします: kubectl exec my-pod — cat /data/file.txt > /local/path/file.txt
- kubectl port-forwardコマンドを使用する:
- kubectl port-forward コマンドを使ってポッドのポートをローカルへ転送し、curl などのツールで転送されたポートからファイルをダウンロードします。例えば、以下のコマンドは、ポッド my-pod のポート 8080 をローカルポート 8888 に転送して、curl を使ってローカルポートからファイルをダウンロードします。kubectl port-forward my-pod 8888:8080
curl http://localhost:8888/file.txt -o /local/path/file.txt
各方式は必要に応じてその最も適したものを選択できる。