我需要提取我的应用程序日志,该日志可在/ var / etc / logs目录下找到。如何从K8吊舱中提取出来?
尝试了kubectl执行程序,但没有帮助。
答案 0 :(得分:4)
从pod中获取应用程序日志的最简单的方法是使用kubectl cp
kubectl cp <pod-name>:/var/etc/logs logs
这会将pod日志复制到本地计算机上。
但是..
这可能不是一个好的长期解决方案。我建议:
kubectl logs
将对您有用可以找到更多信息here
答案 1 :(得分:2)
除了其他答案中所述的Fluentd
sidecar选项之外,您还可以添加简单的tail -n+1 -f /var/etc/logs
sidecar来将日志输出到stdout:
apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
containers:
- name: container
image: yourimage
volumeMounts:
- name: varlog
mountPath: /var/log
- name: logs
image: busybox
args: [/bin/sh, -c, 'tail -n+1 -f /var/etc/logs']
volumeMounts:
- name: varlog
mountPath: /var/log
volumes:
- name: varlog
emptyDir: {}
答案 2 :(得分:0)
您可能需要像fluentd这样的日志收集器。
k8s本身不会为您保留日志。
如果您使用的是GKE,则可以使用stackdriver(听说过,从未尝试过)。