Kubernetes Pod应用机能辨认器材 Kubectl Flame
在Kubernetes上怎样说明应用机能? 应用机能说明是一项难题的使命。大大都探查器有两个首要题目: 必要修改应用措施。凡是,可以通过将符号添加到执行呼吁或将一些机能说明库导入代码中来实现。 因为在机能说明进程中会严峻影响机能,因此凡是停止在产物中举办机能说明。 在Kubernetes集群中运行的应用措施上执行说明时,乃至越发坚苦。必要陈设一个包括设置文件修改的新容器映像,而不是当前正在运行的容器。另外,当应用措施从头启动时,某些机能题目也许会消散,这使调试变得坚苦。 在Kubernetes应用机能说明办理方案? Kubernetes 中可以行使 Kubectl Flame 说明 Pod 应用机能。Kubectl Flame 是一个kubectl插件,可以使在Kubernetes中运行的说明应用措施得到流通的体验,而无需举办任何应用措施修改或停机。其它,kubectl flame的方针是通过最洪流平地低落机能丧失来实现出产友爱。 kubectl flame 在与方针容器沟通的节点上启动 Kubernetes Job。在靠山kubectl-flame行使async-profiler来为Java应用措施天生火焰图。通过共享/tmp文件夹与方针JVM举办交互。Golang支持基于ebpf说明。Python支持基于py-spy。 行使要求 支持的说话:Go,Java(任何基于JVM的说话)和 Python 行使Docker作为容器运行时的Kubernetes集群(已在GKE,EKS和AKS上测试) 安装 $ kubectl krew install flame 行使 说明 Kubernetes Pod 说明 Java 应用 mypod 1分钟,并在将火焰图生涯到 /tmp/flamegraph.svg $ kubectl flame mypod -t 1m --lang java -f /tmp/flamegraph.svg 说明基于 alpine 操纵体系的容器 在基于 alpine 的容器中说明 Java 应用措施必要行使 --alpine 符号 $ kubectl flame mypod -t 1m -f /tmp/flamegraph.svg --lang Java --alpine 留意:仅 Java 应用措施必要此 --alpine 符号,而 Go 说明则不必要该符号。 说明 sidecar 容器 包括多个容器的 Pod 必要将方针容器指定为参数 $ kubectl flame mypod -t 1m --lang go -f /tmp/flamegraph.svg mycontainer 说明 Golang 多历程容器 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |