kubectl cpで転送の進行状況を確認できますか?
Can We See Transfer Progress With Kubectl Cp
解決:
いいえ、これは不可能のようです。
kubectl cpは、同等の処理を実行することで実装されているようです。
kubectl exec podname -c containername tar cf- / whatever / path | tarxf-これは2つのことを意味します:
タール (1)有用な進捗情報を出力しません。 (原則として、v stderrに渡されるときに各ファイル名を出力するためのフラグ。ただし、ファイルの総数やサイズはわかりません。)実装されたkubectlcpには、これを取り除く方法がありません。
ファイルをコピーするためのより豊富なネイティブKubernetesAPIはありません。
コンテナー内外へのファイルの移動が重要なユースケースである場合は、単純なHTTPサービスを追加することで、ビルド、テスト、および実行がおそらく簡単になります。その後、HTTPなどに頼ることができますContent-Length:進行状況を計測するためのヘッダー。
1つのオプションは、経過時間、転送されたデータ、スループット(MB /秒など)を表示するpvを使用することです。
$ kubectl exec podname -c containername --tar cf- / whatever / path | pv | tar xf-14.1MB 0:00:10 [1.55MB / s] []予想される転送サイズが事前にわかっている場合は、これをpvに渡すこともできます。これにより、進行率とETAが計算されます(例:100m転送の場合)。
$ kubectl exec podname -c containername --tar cf- / whatever / path | pv -s 100m | tar xf-13.4MB 0:00:09 [1.91MB / s] [==>] 13%ETA 0:00:58上記のいずれかを機能させるには、明らかにpvを(ローカルに)インストールする必要があります。
それは不可能ですが、kubernetesでrsyncを実装する方法をここで見つけることができます。rsyncは転送ファイルの進行状況を示します。 kubernetesポッドへのrsyncファイル