gpt4 book ai didi

python - 从 Kubernetes api 打印日志

转载 作者:太空宇宙 更新时间:2023-11-03 16:00:00 24 4
gpt4 key购买 nike

我想知道是否有可能将 HTTP 请求的日志连续打印到 Kubernetes API。我正在使用 python 来查询 K8S API 等

r = requests.get(self.url + "命名空间/"+ 命名空间 + "/pods/"+ pod_name + "/log", cert=(self.cert, self.key), verify=错误)

我想将 follow=true 参数与 tailLines=100 一起使用,使其更像 tail 命令。

当我使用follow参数时,请求正在收集响应,但我不知道如何将其输出转发到控制台。可能吗?

最佳答案

我缺少的是 request.get 参数中的 stream=True ,它允许迭代响应内容,因此我的代码如下所示:

import requests

class Logs():
def __init__(self, url='https://192.168.0.1:6443/api/v1/',
cert='./client.crt',
key='./client.key'):
self.url = url
self.cert = cert
self.key = key
requests.packages.urllib3.disable_warnings()

def get_pod_logs(self, namespace, pod_name):

params = dict(
follow="true",
tailLines="100"
)

r = requests.get(self.url + "namespaces/" + namespace + "/pods/" + pod_name + "/log", params=params,
cert=(self.cert, self.key), verify=False, stream=True)

for chunk in r.iter_content(chunk_size=256):
if chunk:
print(chunk)

logs = Logs()

logs.get_pod_logs(namespace="my-ns",pod_name="my-pod")

关于python - 从 Kubernetes api 打印日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40421540/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com