我们试图在多次重启后获得pod的日志,但我们不想使用任何外部解决方案,如efk。
我试过下面的配置,但它不工作。下面的CMD是在pod上运行还是在节点级别上运行
lifecycle:
preStop:
exec:
command: ["/bin/sh", "-c", "kubectl logs appworks-0 > /container-stoped.txt"]
我尝试了下面的配置,但它不起作用。下面的CMD是否运行pod或它将在节点级别上运行
它将在POD级别运行,而不是在Node上运行水平
可以使用Hostpath在POD配置
apiVersion: v1
kind: Pod
metadata:
name: test-pd
spec:
containers:
- image: alpine
name: test-container
command: ["tail"]
args: ["-f", "/dev/null"]
volumeMounts:
- mountPath: /host
name: test-volume
volumes:
- name: test-volume
hostPath:
path: /
type: Directory
Hostpath它会直接在Node级别创建一个目录并在那里保存日志,如果你不想要这个解决方案你可以添加你的生命周期钩子解决方案但是,当你可以直接将应用程序日志写入Host时,不要额外添加生命周期钩子。
注意确保你的Node downhostpath或emptyDir您将错过的日志