gpt4 book ai didi

kubernetes - Airflow/k8s : How do I correctly set permissions for DAGs stored in a persistent volume?

转载 作者:行者123 更新时间:2023-12-02 11:33:15 26 4
gpt4 key购买 nike

我想通过持久卷向所有 Kubernetes Airflow Pod(网络、调度程序、工作线程)提供 DAG,

kubectl create -f pv-claim.yaml

pv-claim.yaml 包含:
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: airflow-pv-claim
annotations:
pv.beta.kubernetes.io/gid: "1000"
pv.beta.kubernetes.io/uid: "1000"
spec:
storageClassName: standard
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi

然后部署命令是:
helm install --namespace my_name --name "airflow" stable/airflow --values ~my_name/airflow/charts/airflow/values.yaml

在图表 stable/airflow 中,values.yaml 还允许指定持久性:
persistence:
enabled: true
existingClaim: airflow-pv-claim
accessMode: ReadWriteMany
size: 1Gi

但如果我这样做
kubectl exec -it airflow-worker-0 -- /bin/bash
touch dags/hello.txt

我收到一个权限被拒绝错误。

我尝试破解 Airflow 图来设置一个 initContainer 来 chown dags/:
command: ["sh", "-c", "chown -R 1000:1000 /dags"]

正如 https://serverfault.com/a/907160/464205 所建议的,除了 worker 之外,其他所有人都适用(因为它们是由花创造的?)

我还看到了 fsGroup 等的讨论 - 参见例如 Kubernetes NFS persistent volumes permission denied

我试图避免编辑 Airflow 图表(这似乎需要对至少两个部署 - * .yaml 文件以及另一个文件进行 hack),但这也许是不可避免的。

妙语:

使用正确的权限通过持久卷将 DAG 配置到在 Kubernetes 上运行的所有 Airflow Pod 的最简单方法是什么?

也可以看看:

Persistent volume atached to k8s pod group

Kubernetes NFS persistent volumes permission denied [我不清楚如何将其与 Airflow Helm chart 集成]

Kubernetes - setting custom permissions/file ownership per volume (and not per pod) [非详细,非特定 Airflow ]

最佳答案

事实证明,我认为您必须编辑 Airflow 图表,方法是在 deployments-web.yaml 中添加以下块和 deployments-scheduler.yamlspec.template.spec :

kind: Deployment
spec:
template:
spec:
securityContext:
runAsUser: 1000
runAsGroup: 1000
fsGroup: 1000
fsUser: 1000

这允许一个人使用例如 Airflow 进入 Airflow 。
kubectl cp my_dag.py my_namespace/airflow-worker-0:/usr/local/airflow/dags/

关于kubernetes - Airflow/k8s : How do I correctly set permissions for DAGs stored in a persistent volume?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54460678/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com