kubernetes log 流式数据处理
admin
2023-04-10 03:43:05
0

PS: 最近在重构公司的业务容器化平台,记录一块。关于容器日志的, kubernetes python API本身提供了日志流式数据,在以前的版本是不会输出新数据的,后续版本进行了改进。

直接上代码

Flask 前端路由块

# Router
"""获取项目pod的日志"""
@api_cluster_pod.route('///pod//log')
@env_rules
def api_cluster_pod_log(env, cluster_name, pod_name):
    """查看pod的log"""

    tail_lines = request.values.get("tail_lines", 1000)
    namespace = request.values.get("namespace", "")

    # 生成Config Object
    try:
        cluster_config = ClusterConfig(
            env=env,
            cluster_name=cluster_name,
            namespace=namespace
        )
    except Exception as e:
        return jsonify(dict(
            code=5000,
            message='获取集群接口时未找到对应条目, 信息:{0}'.format(str(e))
        ))

    try:
        poder = Pod( cluster_config)
        resp = Response(stream_with_context(poder.get_pod_log(pod_name, tail_lines)), mimetype="text/plain")
        return resp

    except Exception as e:
        return jsonify(dict(
            code=7000,
            message=str(e)
        ))
Flask 后端代码块
# 后台功能
class Pod:
    ...
       def get_pod_log(self, pod_name, tail_lines=100):
        """
        获取pod的日志
        :param tail_lines: # 显示最后多少行
        :return:
        """
        try:
            # stream pod log
            streams = self.cluster.api.read_namespaced_pod_log(
                pod_name,
                self.cluster_config.namespace,
                follow=True,
                _preload_content=False,
                tail_lines=tail_lines).stream()
            return streams

        except ApiException as e:
            if e.status == 404:
                logger.exception("Get Log not fund Podname: {0}".format(pod_name))
                raise PodNotFund("获取日志时,未找到此pod: {0}".format(pod_name))
            if e.status == 400:
                raise PodNotFund("容器并未创建成功,请联系运维人员进行排查。")
            raise e
        except Exception as e:
            logger.exception("Get Log Fail: {0}".format(str(e)))
            raise e
HTML



    Flushed ajax test
    
    

    


    

其它

我们应用是前后端分离的,把html里面的核心代码放置VUE里面就可以了。

效果图

日志是流式的,如果Container有日志,则窗口会运态更新。
kubernetes log 流式数据处理

相关内容

热门资讯

终于了解“同乡游麻将到底有挂吗... 终于了解“同乡游麻将到底有挂吗?”(外卦神器下载)您好,同乡游麻将这个游戏其实有挂的,确实是有挂的,...
今日重大消息“云梦天穹究竟有挂... 网上科普关于“云梦天穹有没有挂”话题很是火热,小编也是针对云梦天穹作*弊开挂的方法以及开挂对应的知识...
终于明白“天天麻将到底有挂吗?... 有 亲,根据资深记者爆料天天麻将是可以开挂的,确实有挂(咨询软件无需打开...
今日重大通报“天涯麻将有没有挂... 有 亲,根据资深记者爆料天涯麻将是可以开挂的,确实有挂(咨询软件无需打开...
最新引进“益乐绍兴麻将辅助器?... 您好:益乐绍兴麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【4282891】很多玩家在这款...
历史镜鉴,启示未来——写在十一... 历史镜鉴 启示未来——写在十一世班禅坐床30周年李德成 《人民日报》(2025年12月30日 第 1...
玩家分享攻略“沧海麻将十三水可... 您好:沧海麻将十三水这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9784099】很多玩家在这...
今日重大通报“欢乐龙城3是不是... 您好:欢乐龙城3这款游戏可以开挂,确实是有挂的,需要了解加客服微信【4282891】很多玩家在这款游...
玩家分享攻略“同城乐吧510k... 玩家分享攻略“同城乐吧510k有没有挂?”(原来真的有挂)您好,同城乐吧510k这个游戏其实有挂的,...
福建农林大学水稻抗褐飞虱重大科... 中国教育报-中国教育新闻网讯(记者 龙超凡)近日,福建农林大学举行水稻抗褐飞虱重大科技成果转让签约仪...