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) 中就像一个魅力。
希望这对其他人有帮助!
丹尼斯
我觉得有点像个白痴,但在使用 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) 中就像一个魅力。
希望这对其他人有帮助! 丹尼斯