我在一个吊舱内有2个容器,1个是DB,1个是应用程序。当我的应用程序容器启动但尚未准备好接受流量时,该容器会生成一些日志文件,我希望这些日志文件可用于进一步的应用程序调查。由于容器未通过就绪探针并且无法启动,因此吊舱被杀死,因此日志文件也被删除,因此我如何在吊舱被杀死之前获取那些日志文件?
答案 0 :(得分:0)
最快的解决方案可能是将 hostPath 类型的卷安装到您的Pod。然后,将此卷绑定到您的日志目录。
请参阅文档here。
请记住,此解决方案当然不是最干净的解决方案。只是出于调试目的。
答案 1 :(得分:0)
转发到STDOUT和STDERR的日志怎么样?那将是最干净的解决方案(但是,它需要对代码进行一些更改)。 https://kubernetes.io/docs/reference/kubectl/cheatsheet/#interacting-with-running-pods
答案 2 :(得分:0)
答案 3 :(得分:0)
您可以使用 for dict in json["services"].arrayValue {
arrServices.append(
Services(
id: dict["id"].stringValue,
name: dict["name"].stringValue,
properties: dict["properties"].arrayValue.map {
Properties(
id: $0["id"].stringValue,
name: $0["name"].stringValue
)
}
)
)
}
命令的-c CONTAINER
标志来获得容器内容器的日志。
如果您知道容器中容器的名称,则可以使用以下命令获取该容器的日志
oc logs
如果只在出现故障的Pod中在空项目中运行它,那当然会很好。
答案 4 :(得分:0)
创建一个持久卷并将其装入容器的日志目录中。即使pod被杀死,您也将获得日志。可以用于此任务的卷类型很少-