![](/img/trans.png)
[英]Copy file from pod to host by using kubernetes python client
[英]Kubernetes pod exec using python client not very interactive
我正在按照官方示例使用 python kubernetes-client 库执行到 Kubernetes 容器中。
from kubernetes import config
from kubernetes.client.api import core_v1_api
from kubernetes.stream import stream
def exec_commands(api_instance):
resp = stream(api_instance.connect_get_namespaced_pod_exec,
'busybox',
'default',
command=['/bin/sh'],
stderr=True, stdin=True,
stdout=True, tty=True,
_preload_content=False)
while resp.is_open():
resp.update(timeout=1)
if resp.peek_stdout():
print("%s" % resp.read_stdout())
if resp.peek_stderr():
print("%s" % resp.read_stderr())
command = input()
if command == "exit":
break
else:
resp.write_stdin(command + "\n")
resp.close()
def main():
config.load_kube_config("~/.kube/config")
core_v1 = core_v1_api.CoreV1Api()
exec_commands(core_v1)
if __name__ == '__main__':
main()
上面的代码能够执行到容器中。 但是,shell 的交互性不是很好。 它的问题是: -
箭头键不起作用。 按箭头时,exec 显示^[[D^[[C^[[A^[[B
字符
选项卡自动完成不起作用。 当我按下制表符时,它将制表符作为输入空格而不是自动完成。
我必须按两次 Enter 键才能获得命令 output。 例子:-
ls / # ls abc.txt etc root tmp bin home sys usr dev proc terminfo.src var / #
由于无法使用箭头和转义键,无法在容器内使用 vi 编辑器。 例子:-
first line
^[[C^[[D^[[C^[[B
有没有更好的方法可以使用 python 以编程方式执行到 kubernetes 容器中?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.