D. *_*uis 3 kubernetes airflow kubernetes-helm airflow-scheduler
我感觉有点像个白痴,但在使用 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-logs
Run Code Online (Sandbox Code Playgroud)
Helm 官方文档中部分描述了此过程。尽管如此,气流调度程序 Pod 由于权限错误而崩溃,因为我无法在已安装的日志文件夹中写入:此处的日志。
当持久日志记录关闭时,除了任务日志记录之外,所有内容都正常工作,因为这些日志记录会在删除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
Run Code Online (Sandbox Code Playgroud)
我的 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: 20Gi
Run Code Online (Sandbox Code Playgroud)
value.yaml 未更改。
这样,持久日志记录就像 Azure Kubernetes 服务 (AKS) 中的魅力一样。
希望这对其他人有帮助!丹尼斯
| 归档时间: |
|
| 查看次数: |
2726 次 |
| 最近记录: |