首页 > 解决方案 > 如何将基于容器的应用程序的日志存储在它们的卷中,如 azure 文件?

问题描述

我致力于使用 .net 核心编程语言开发基于容器的应用程序,并将这些应用程序部署在 azure kubernetes 服务中。还按照此文档实现了使用 azure 文件创建持久卷的功能。

到目前为止,一切正常,我可以通过在命令提示符中运行以下命令来查看安装在各个 pod 中的文件共享。

kubectl exec -it apiapplication-121213-121212 -- bash

df -h

但是我想在挂载的文件共享中创建具有 pod 名称和当前日期时间的新文件,例如(apiapplication-121213-121212_16-08-2018)。之后,我想将容器应用程序的日志存储在挂载文件共享中新创建的文件中。

标签: azure.net-coreazure-filesazure-aks

解决方案


您可以手动编写一个脚本来获取您需要的信息:Pod 名称以及当前日期和时间。

1 - 首先获取这些参数并将它们存储在变量中

2-创建文件夹

3- 将日志存储并映射到这些文件夹。

1 - 您可以使用以下命令获取 pod 名称:

kubectl get pods

将名称存储在变量中。

2 - 使用类似于以下的代码:

public void CreateDirectory(string prefix)
{
    string dirName = prefix + " on " + DateTime.Now.ToString("ddd MM.dd.yyyy 'At' HH:mm tt");

    //Improved version of the above:
    string dirName = string.Format("{0} on {1:ddd MM.dd.yyy 'At' HH:mm tt}", prefix, DateTime.Now);

    Directory.CreateDirectory(dirName);
}

代码来源

您所要做的就是将变量名从 1 插入到 2 中的代码中。

3-我不确定您要路由文件夹的日志,但这应该是直截了当的。


推荐阅读