Errno 13 Permission denied '/usr/local/airflow/webserver_config.py' while running airflow on Kubernetes

xdnvmnnf  于 2023-03-29  发布在  Kubernetes
关注(0)|答案(1)|浏览(183)

我在Kubernetes上运行Airflow 2.5.0时遇到问题。

File "/usr/local/bin/airflow", line 5, in <module>
    from airflow.__main__ import main
  File "/usr/local/lib/python3.9/site-packages/airflow/__init__.py", line 34, in <module>
    from airflow import settings
  File "/usr/local/lib/python3.9/site-packages/airflow/settings.py", line 37, in <module>
    from airflow.configuration import AIRFLOW_HOME, WEBSERVER_CONFIG, conf  # NOQA F401
  File "/usr/local/lib/python3.9/site-packages/airflow/configuration.py", line 1732, in <module>
    conf = initialize_config()
  File "/usr/local/lib/python3.9/site-packages/airflow/configuration.py", line 1487, in initialize_config
    shutil.copy(_default_config_file_path("default_webserver_config.py"), WEBSERVER_CONFIG)
  File "/usr/local/lib/python3.9/shutil.py", line 427, in copy
    copyfile(src, dst, follow_symlinks=follow_symlinks)
  File "/usr/local/lib/python3.9/shutil.py", line 266, in copyfile
    with open(dst, 'wb') as fdst:
PermissionError: [Errno 13] Permission denied: '/usr/local/airflow/webserver_config.py'

我尝试了stackoverflow上可用的多种方法,比如将load_examples传递给False,并重置数据库,但我无法摆脱它。
Airflow用户对此文件具有以下访问权限。

-rw-r--r--  1 airflow airflow  4744 Mar 20 13:52 webserver_config.py

任何帮助都将不胜感激

vxbzzdmp

vxbzzdmp1#

根据document
在Linux上,快速入门需要知道你的主机用户ID,并且需要将组ID设置为0。否则,在dags,logs和plugins中创建的文件将以root用户所有权创建。你必须确保为docker-compose配置它们:

mkdir -p ./dags ./logs ./plugins

echo -e "AIRFLOW_UID=$(id -u)" > .env

匹配文件权限后:

docker compose up airflow-init

绑定装载的文件夹权限也可能导致此错误。
例如:

docker-compose.yml (pseudo code)
service_name: ... volumes: - 
/home/user/airflow_logs:/opt/airflow/logs

授予本地文件夹的权限,以便airflow容器可以写入日志,创建目录(如果需要)等。

sudo chmod u=rwx,g=rwx,o=rwx /home/user/airflow_logs

相关问题