Airflow:无法使用 KubernetesExecutor 和 PV 获取持久化日志(官方 helm 图表)

Airflow: Unable to get persistent logs using KubernetesExecutor and PV (official helm chart)

我觉得有点像个白痴,但在使用 KubernetesExecutor 和新发布的官方 Helm 图表时,我似乎无法在持久卷上进行日志记录。

手动创建一个简单的 PV and 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-logs

此过程在 official Helm documentation 中有部分描述。 尽管如此,airflow-scheduler pod 由于权限错误而崩溃,因为我无法在已安装的日志文件夹中写入:logs here.

关闭持久日志记录后,一切正常,但任务日志记录除外,因为当删除 worker-pod 时这些日志记录也会被删除。

任何对解决方案的帮助将不胜感激!

我原以为使用标准持久卷方法是最简单的(我还是个 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

我的天蓝色文件-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: 20Gi

values.yaml不变。

有了这个,持久日志记录在 Azure Kubernetes 服务 (AKS) 中就像一个魅力。

希望这对其他人有帮助! 丹尼斯