我想以日志或日志文件的形式从 k8s pod 读取数据。我想在特定时间间隔后但从上次读取点开始读取它。以前的数据不应重复。目前,对于 pod 日志,我使用 watchLog:
LogWatch logWatch =client.pods()
.inNamespace(namespace)
.withName(podName)
.sinceSeconds(10).watchLog();
上面的代码每次都会给我从头开始的所有日志。
另外,我正在尝试读取应用程序特定的日志文件,如下所示:
InputStream is = client.pods()
.inNamespace(namespace)
.withName(podName)
.file("/app/logs/demo.log")
.read()) {
String result = new BufferedReader(new
InputStreamReader(is)).lines().collect(Collectors.joining("\n"));
System.out.println("> "+result);
读取文件也有同样的问题。
如何使用fabric8客户端获取最新日志/数据?
没有直接选项,因此我使用 Java 中的 Runtime util 来执行 tail 命令。