尝试使用 python kubernetes API 来流式传输 kubernetes pod 日志的输出。(最终目标是通过 websocket 流输出日志)
基于合并到 python kubernetes 模块的这个PR,我认为 watch 可以与 read_namespaced_pod_log 一起使用?
v1 = client.CoreV1Api()
w = watch.Watch()
for e in w.stream(v1.read_namespaced_pod_log, name=pod, namespace=namespace, follow=True, tail_lines=1, limit_bytes=560, _preload_content=False):
print(e)
Run Code Online (Sandbox Code Playgroud)
但是我收到下面的错误,我是否错过了需要传递给观看的东西?或 read_namespaced_pod_log?
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.7/site-packages/kubernetes/watch/watch.py", line 132, in stream
resp = func(*args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/kubernetes/client/apis/core_v1_api.py", line 18538, in read_namespaced_pod_log
(data) = self.read_namespaced_pod_log_with_http_info(name, namespace, **kwargs)
File "/usr/local/lib/python3.7/site-packages/kubernetes/client/apis/core_v1_api.py", line 18576, in read_namespaced_pod_log_with_http_info
" to method read_namespaced_pod_log" % key
TypeError: Got an unexpected keyword argument 'watch' to method read_namespaced_pod_log
Run Code Online (Sandbox Code Playgroud)
你应该这样做:
v1 = client.CoreV1Api()
w = Watch()
for e in w.stream(v1.read_namespaced_pod_log, name=pod, namespace=namespace):
print(e)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2345 次 |
| 最近记录: |