我觉得自己有点像个笨蛋,但在使用KubernetesExecutor和新发布的官方Helm图表时,我似乎无法在持久卷上进行日志记录。
在手动创建简单的PV和PVC后,我在values.yaml文件的底部更改了以下内容:
logs:
persistence:
# Enable persistent volume for storing logs
enabled: true
# Volume size for logs
size: 100Gi
# If using a custom storageClass, pass name here
storageClassName:
## the name of an existing PVC to use
existingClaim: airflow-logsofficial Helm documentation中对此过程进行了部分描述。尽管如此,airflow-scheduler pod还是由于权限错误而崩溃,因为我无法在挂载的logs文件夹中写入:logs here。
当永久日志记录被关闭时,除了任务日志记录之外,所有的都在工作,因为当worker-pod被删除时,这些任务日志记录将被删除。
任何对解决方案的帮助都将不胜感激!
发布于 2021-07-04 05:52:42
我认为使用标准的持久卷方法是最简单的(我仍然是一个k8s新手),我没有想到使用azure-file-storage-class (SC)设置一个卷会这么容易。这些挂载可以使用SC yaml文件中的777权限进行设置,不确定这是否是唯一的解决方法,因为我还在SC挂载选项中设置了uid/gid。不管怎么说,一切似乎都运行得很完美。
这里我的azure-file-sc.yaml供其他人参考:
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: airflow-logs
provisioner: kubernetes.io/azure-file
mountOptions:
- dir_mode=0777
- file_mode=0777
- uid=50000
- gid=0
- mfsymlinks
- cache=strict
- actimeo=30
parameters:
skuName: Standard_LRS我的azure-file-pvc.yaml:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: airflow-logs
namespace: airflow
labels:
app: airflow-logs
spec:
accessModes:
- ReadWriteMany
storageClassName: airflow-logs
resources:
requests:
storage: 20Givalues.yaml保持不变。
这样,持久化日志就像Azure Kubernetes Service (AKS)中的护身符一样工作。
希望这对其他人有帮助!丹尼斯
https://stackoverflow.com/questions/68225077
复制相似问题