在 Bluemix 上——处理容器组实例的卷
On Bluemix - handling volume for container group instances
当我使用包含如下卷规范的命令创建一个包含 2 个所需实例的容器组时:
> ... -v log_vol:/opt/ibm/logs --env
> LOG_LOCATIONS=/opt/ibm/logs/messages.log,/opt/ibm/logs/debug.log,/opt/ibm/logs/trace.log
> -e TRACE_LEVEL=*~info -e MAX_LOG_FILES=5 -e MAX_LOG_FILE_SIZE=20 ...
在这种情况下,组中的每个 运行-container-instance 都有一个类似的目录 /opt/ibm/logs/
来存储日志。
当单个容器实例中的应用程序生成日志时,日志数据会丢失,因为它被装载到名为 log_vol
的共享卷中。每个新条目都会替换日志。
- 有人可以建议我如何处理吗?
- 有什么方法可以附加卷规范 post 容器实例创建?
在这种情况下,最好将卷视为类似于共享网络驱动器的东西,在不同的主机上使用单独的容器 运行。如果进程假设它们是唯一写入文件的进程,并且每次写入 caching/overwriting,这将是结果。
也许让 containers/programs 写入类似 /opt/ibm/logs/messages.$HOSTNAME.log
的内容,这样他们拥有自己的日志文件的假设是正确的?或者类似地,让容器在启动时为自己创建 /opt/ibm/logs/$HOSTNAME/
,然后写入下面的 messages/debug/trace.log
?
当我使用包含如下卷规范的命令创建一个包含 2 个所需实例的容器组时:
> ... -v log_vol:/opt/ibm/logs --env
> LOG_LOCATIONS=/opt/ibm/logs/messages.log,/opt/ibm/logs/debug.log,/opt/ibm/logs/trace.log
> -e TRACE_LEVEL=*~info -e MAX_LOG_FILES=5 -e MAX_LOG_FILE_SIZE=20 ...
在这种情况下,组中的每个 运行-container-instance 都有一个类似的目录 /opt/ibm/logs/
来存储日志。
当单个容器实例中的应用程序生成日志时,日志数据会丢失,因为它被装载到名为 log_vol
的共享卷中。每个新条目都会替换日志。
- 有人可以建议我如何处理吗?
- 有什么方法可以附加卷规范 post 容器实例创建?
在这种情况下,最好将卷视为类似于共享网络驱动器的东西,在不同的主机上使用单独的容器 运行。如果进程假设它们是唯一写入文件的进程,并且每次写入 caching/overwriting,这将是结果。
也许让 containers/programs 写入类似 /opt/ibm/logs/messages.$HOSTNAME.log
的内容,这样他们拥有自己的日志文件的假设是正确的?或者类似地,让容器在启动时为自己创建 /opt/ibm/logs/$HOSTNAME/
,然后写入下面的 messages/debug/trace.log
?