【问题标题】:Airflow: Unable to get persistent logs using KubernetesExecutor and PV (official helm chart)Airflow:无法使用 KubernetesExecutor 和 PV 获取持久日志(官方 helm 图表)
【发布时间】:2021-09-14 09:38:21
【问题描述】:

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

在手动创建了一个简单的PVPVC 之后,我在 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被删除时被删除。

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

【问题讨论】:

    标签: kubernetes airflow kubernetes-helm airflow-scheduler


    【解决方案1】:

    我认为使用标准持久卷方法是最简单的(我仍然是 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) 中的魅力一样。

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

    【讨论】:

      猜你喜欢
      • 2019-12-10
      • 2020-09-06
      • 2020-02-06
      • 2021-02-22
      • 1970-01-01
      • 2020-05-30
      • 2021-05-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多