aks*_*thi 6 kubernetes google-kubernetes-engine
是否有可能知道文件传输的同进kubectl cp
对谷歌云计算?
一种选择是使用 pv 来显示经过的时间、传输的数据和吞吐量(例如 MB/s):
$ kubectl exec podname -c containername -- tar cf - /whatever/path | pv | tar xf -
14.1MB 0:00:10 [1.55MB/s] [ <=> ]
Run Code Online (Sandbox Code Playgroud)
如果您提前知道预期的传输大小,您也可以将其传递给 pv,然后它会计算进度百分比和预计到达时间,例如 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
Run Code Online (Sandbox Code Playgroud)
您显然需要(本地)安装 pv 才能使上述任何一项工作。
不,这似乎不可能。
kubectl cp
似乎是通过做相当于
kubectl exec podname -c containername \
tar cf - /whatever/path \
| tar xf -
Run Code Online (Sandbox Code Playgroud)
这意味着两件事:
tar(1)不会打印任何有用的进度信息。(原则上,您可以添加一个v
标志,以打印出每个文件的名称,并将其发送到stderr,但这不会告诉您总共有多少个文件或它们有多大。)因此kubectl cp
,实现没有任何文件名解决这个问题的方法。
没有更丰富的本地Kubernetes API复制文件。
如果将文件移入和移出容器是您的主要用例,则通过添加简单的HTTP服务来构建,测试和运行它可能会更容易。然后,您可以依靠HTTP Content-Length:
标头之类的东西进行进度计量。
小智 5
在 MacOS 上,仍然有一种在“网络”选项卡上打开“活动监视器”的老套方法。kubectl cp
如果您从本地计算机复制到远程 Pod,则总传输量将显示在“已发送字节数”列中。虽然不是超高精度,但它无需安装任何新东西即可完成工作。
归档时间: |
|
查看次数: |
1075 次 |
最近记录: |