【问题标题】:Why does Successful execution of Cron job stops further appending of log onto a file为什么成功执行 Cron 作业会停止将日志进一步附加到文件中
【发布时间】:2021-07-27 12:22:06
【问题描述】:

我正在开发 Openshift 项目。我使用 yaml config 配置了一个 cron 作业。在我们的应用程序中,所有日志都附加到 Persistent Volume 内的文件中。一旦 cron 作业成功执行以清除文件,则不会附加更多日志。

我的观察:

  1. 最初我认为 PV 本身不是 Read-Write Many,因此我将其更改为 Read-Write Many 并且仍然观察到相同的行为。
  2. cron 作业 yaml 中提到的图像存在一些图像问题。但我尝试了不同的图像,但仍然发现同样的问题。

谁能解释我并为以下问题找到一个合理的解决方案?

编辑:

是的,日志仅在打开文件时被配置为 APPEND。我知道 PV 的访问模式不能控制 IO 操作。

【问题讨论】:

    标签: cron openshift openshift-origin persistent-storage


    【解决方案1】:

    首先您应该检查日志是如何记录在 PV 后端存储的文件中的。例如,当应用程序开始将消息记录到文件时,应以“APPEND”模式打开日志文件。 PV 访问模式,例如 ReadWriteMany 和 ReadWriteOnce 不控制应用程序透视图的 IO,它只考虑节点,而不考虑 Pod 和应用程序。详情请参考Access Modes

    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 操作取决于后端存储或文件系统特性,例如 block(iscsi, ebs ...) 或文件单元 (nfs, glusterfs ...) IO。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-08
      • 2019-03-16
      • 2019-12-17
      • 1970-01-01
      • 2014-10-22
      • 1970-01-01
      • 2017-05-27
      相关资源
      最近更新 更多