tri*_*jee 5 docker kubernetes kubernetes-pvc
我试图将一个pod的STDOUT和STDERR写入PVC安装位置的文件中.
以下是我部署的模板内容:
"template": {
"metadata": {
"name": "python-stdout-app",
"creationTimestamp": null,
"labels": {
"k8s-app": "python-stdout-app"
}
},
"spec": {
"volumes": [
{
"name": "task-pv-volume",
"persistentVolumeClaim": {
"claimName": "task-pv-claim"
}
}
],
"containers": [
{
"name": "python-stdout-app",
"image": "trideep/demo-stdout-app",
"resources": {},
"volumeMounts": [
{
"name": "task-pv-volume",
"mountPath": "/usr/share"
}
],
"terminationMessagePath": "/usr/share/1fed8c03-bc30-4889-952e-46f4c19b6ac1.log",
"terminationMessagePolicy": "File",
"imagePullPolicy": "Always",
"securityContext": {
"privileged": false
}
}
],
"restartPolicy": "Always",
"terminationGracePeriodSeconds": 30,
"dnsPolicy": "ClusterFirst",
"securityContext": {},
"schedulerName": "default-scheduler"
}
}
Run Code Online (Sandbox Code Playgroud)
我可以在pod中看到正在写入的文件.但是没有在装载的主机位置看到输出.
以下是执行命令
python demo_stdout.py >> /usr/share/1fed8c03-bc30-4889-952e-46f4c19b6ac1.log 2>&1
Run Code Online (Sandbox Code Playgroud)
我做的一件事是输出文件,"terminationMessagePath"与我想要的pod终止占用空间和同一文件中的stdout/stderr相同.
Dockerfile如下:
FROM python:2.7.15-alpine3.9
WORKDIR /usr/src/app
COPY . .
CMD ["sh", "-c", "tail -f /dev/null"]
Run Code Online (Sandbox Code Playgroud)
尝试以下方法:
python demo_stdout.py >> /usr/share/test.log 2>&1
Run Code Online (Sandbox Code Playgroud)
以上产生PVC登录.但需要将pod终止日志记录在同一个文件中.
有人可以帮我弄这个吗?
cmd应该修改为 ,以便您的输出demo_stdout.py将被记录到/usr/share/test.log以及stdin and stdout:python demo_stdout.py | tee /usr/share/test.log
| 归档时间: |
|
| 查看次数: |
1374 次 |
| 最近记录: |