我想做的是为Pod提供统一的日志存储,当前一直保存到hostPath,但是我还希望该路径包括UID,以便在Pod销毁后可以轻松获取其路径。
例如:
apiVersion: v1
kind: Pod
metadata:
name: pod-with-logging-support
spec:
containers:
- image: python:2.7
name: web-server
command:
- "sh"
- "-c"
- "python -m SimpleHTTPServer > /logs/http.log 2>&1"
volumeMounts:
- mountPath: /logs
name: log-dir
volumes:
- name: log-dir
hostPath:
path: /var/log/apps/{metadata.uid}
type: DirectoryOrCreate
metadata.uid
是我要填写的,但我不知道如何填写。
答案 0 :(得分:2)
对于日志记录,最好使用其他策略。
我建议您看看这个link。
如果将其流式传输到stdout并由代理抓取,则可以最好地管理您的日志,如下图所示:
不要保留您的登录文件系统,而是使用代理收集它们并将它们放在一起以进行进一步的analisys。
Fluentd非常受欢迎,值得一提。
答案 1 :(得分:1)
从kubernetes中搜索文档后,我终于看到solution来解决我的特定问题。该功能正是我想要的。
所以我可以使用以下方式创建广告连播
apiVersion: v1
kind: Pod
metadata:
name: pod-with-logging-support
spec:
containers:
- image: python:2.7
name: web-server
command:
- "sh"
- "-c"
- "python -m SimpleHTTPServer > /logs/http.log 2>&1"
env:
- name: POD_UID
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.uid
volumeMounts:
- mountPath: /logs
name: log-dir
subPath: $(POD_UID)
volumes:
- name: log-dir
hostPath:
path: /var/log/apps/
type: DirectoryOrCreate