Helmを介して作成されたK8sクラスターにテストエグゼキューターPod
があります。これは、動的に作成されたPersistentVolume
を要求し、テスト結果を保存します。
今、このボリュームの内容を入手したいと思います。するのはかなり自然なことのようです。いくつか期待しますkubectl download pv <id>
。しかし、私は何もググることはできません。
PersistentVolume
の内容を取得するにはどうすればよいですか?
私はAWS EKSにいます。 AWS APIもオプションです。また、ECRにアクセスできるので、おそらくそれをイメージとして保存してダウンロードできますか?
または、一般的に、ディレクトリを転送する方法を探しています。アーカイブ内でも可能です。しかし、それは後でコンテナが終了し、実行されなくなるはずです。
私はあなたのニーズを満たすために2つのオプションを考えることができます:
1)PVが接続されたポッドを作成し、kubectl cp
必要な場所にコンテンツをコピーします。たとえば、次のようなPodSpec
を使用できます。
apiVersion: v1
kind: Pod
metadata:
name: dataaccess
spec:
containers:
- name: Alpine
image: Alpine:latest
command:
- sleep
- 999999
volumeMounts:
- name: mypvc
mountPath: /data
volumes:
- name: mypvc
persistentVolumeClaim:
claimName: mypvc
Mypvcは、データのコピー元のPVにバインドされているPersistentVolumeClaim
の名前である必要があることに注意してください。
ポッドが実行されたら、次のようなものを実行して、kubectlがクラスターに接続するように構成されている任意のマシンからデータをコピーできます。
kubectl cp dataaccess:/data data/
2)PVのEBSボリュームをEC2インスタンスにマウントし、そこからデータをコピーします。このケースは、達成しようとしていることについてもう少しコンテキストが必要なため、詳細を説明するのは簡単ではありません。