【发布时间】:2021-11-10 17:12:12
【问题描述】:
我正在尝试将我的 Pod 日志目录从 /var/log/pods 挂载到本地节点卷 /var/data10。
部署文件:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-counter
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: my-nginx
template:
metadata:
labels:
app: my-nginx
spec:
nodeSelector:
kubernetes.io/hostname: kworker3
containers:
- name: count
image: busybox
args: [/bin/sh, -c,
'i=0; while true; do echo "$i: $(date)"; i=$((i+1)); sleep 1; done']
ports:
- containerPort: 80
volumeMounts:
- name: dirvol
mountPath: "/var/log/containers"
readOnly: true
env:
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: POD_ID
valueFrom:
fieldRef:
fieldPath: metadata.uid
- name: POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
volumes:
- name: dirvol
persistentVolumeClaim:
claimName: nginx-pvc
PV+PVC文件:
---
kind: PersistentVolume
apiVersion: v1
metadata:
name: nginx-pv
namespace: default
spec:
storageClassName: nginx-sc
capacity:
storage: 50Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
hostPath:
path: "/var/data10"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nginx-pvc
namespace: default
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 50Gi
storageClassName: nginx-sc
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: nginx-sc
namespace: default
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
allowVolumeExpansion: true
---
终端窗口:
us@kworker3:~$ cd /var/log/pods/default_nginx-counter-6bdd59f45f-psd9x_f1999c22-6702-41b6-afb7-26db4239977b/
us@kworker3:/var/log/pods/default_nginx-counter-6bdd59f45f-psd9x_f1999c22-6702-41b6-afb7-26db4239977b$ cd count/
us@kworker3:/var/log/pods/default_nginx-counter-6bdd59f45f-psd9x_f1999c22-6702-41b6-afb7-26db4239977b/count$ ls
0.log
us@kworker3:/var/log/pods/default_nginx-counter-6bdd59f45f-psd9x_f1999c22-6702-41b6-afb7-26db4239977b/count$ cd
us@kworker3:~$
us@kworker3:~$
us@kworker3:~$
us@kworker3:~$ cd /var/data10
us@kworker3:/var/data10$ cd default_nginx-counter-6bdd59f45f-psd9x_f1999c22-6702-41b6-afb7-26db4239977b/
us@kworker3:/var/data10/default_nginx-counter-6bdd59f45f-psd9x_f1999c22-6702-41b6-afb7-26db4239977b$ ls
us@kworker3:/var/data10/default_nginx-counter-6bdd59f45f-psd9x_f1999c22-6702-41b6-afb7-26db4239977b$ ls
我正在尝试获取日志文件 0.log 并将其放入持久卷 /var/data10 但您可以看到它是空的。
我知道我可以使用像 fluentd 这样的日志代理来获取我的容器日志,但我正在尝试使用这种方式来获取我的日志。
请注意,我正在尝试将此场景应用于真正的 Web 应用程序,kubernetes pod 通常会将日志扔到节点上的 /var/log/containers 目录中,我的目标是挂载将(容器的)日志文件保存到 hostDisk (/var/data10),这样当 pod 被删除时,我的卷中仍然有日志。
【问题讨论】:
-
你能分享你的 PV 和 PCV yamls 吗?
-
更新为包含 PV+PVC
标签: kubernetes logging