为什么Cron作业的成功执行会停止将日志进一步附加到文件中

为什么Cron作业的成功执行会停止将日志进一步附加到文件中,cron,openshift,openshift-origin,persistent-storage,Cron,Openshift,Openshift Origin,Persistent Storage,我正在从事Openshift项目。我使用yaml配置配置了一个cron作业。在我们的应用程序中,所有日志都附加到持久卷内的文件中。成功执行cron作业以清除文件后,将不再附加其他日志 我的意见: 起初我认为PV本身读写不多,所以我将其改为读写多,但仍然观察到相同的行为 对于cron作业yaml中提到的映像,存在一些映像问题。但我尝试了不同的图像,仍然观察到相同的问题 有人能解释一下,并为以下问题找到一个合理的解决方案吗 编辑: 是日志仅在打开文件时配置为追加。我知道PV的访问模式无法控制IO操作

我正在从事Openshift项目。我使用yaml配置配置了一个cron作业。在我们的应用程序中,所有日志都附加到持久卷内的文件中。成功执行cron作业以清除文件后,将不再附加其他日志

我的意见:

  • 起初我认为PV本身读写不多,所以我将其改为读写多,但仍然观察到相同的行为
  • 对于cron作业yaml中提到的映像,存在一些映像问题。但我尝试了不同的图像,仍然观察到相同的问题
  • 有人能解释一下,并为以下问题找到一个合理的解决方案吗

    编辑:


    是日志仅在打开文件时配置为追加。我知道PV的访问模式无法控制IO操作。

    首先,您应该检查日志如何记录在PV后端存储的文件中。例如,当应用程序开始将消息记录到日志文件中时,应该使用“APPEND”模式打开日志文件。 PV访问模式(如ReadWriteMany和ReadWriteOnce)不控制应用程序透视图的IO,它只考虑节点,而不考虑POD和应用程序。有关更多详细信息,请参阅

    ReadWriteOnce -- the volume can be mounted as read-write by a single node
    ReadOnlyMany -- the volume can be mounted read-only by many nodes
    ReadWriteMany -- the volume can be mounted as read-write by many nodes
    
    换句话说,这意味着k8s不能确保POD和应用程序上的文件处理。或者IO操作取决于后端存储或文件系统特性,例如块(iscsi、ebs…)或文件单元(nfs、glusterfs…)IO