Bộ lập lịch luồng không khởi động với bộ thực thi kubernetes


12

Tôi đang sử dụng https://github.com/mus/charts/tree/master/urdy/airflow biểu đồ helm và xây dựng puckle/docker-airflowhình ảnh v1.10.8 với kubernetes được cài đặt trên đó và sử dụng hình ảnh đó trong biểu đồ helm, nhưng tôi tiếp tục nhận được

  File "/usr/local/bin/airflow", line 37, in <module>
    args.func(args)
  File "/usr/local/lib/python3.7/site-packages/airflow/bin/cli.py", line 1140, in initdb
    db.initdb(settings.RBAC)
  File "/usr/local/lib/python3.7/site-packages/airflow/utils/db.py", line 332, in initdb
    dagbag = models.DagBag()
  File "/usr/local/lib/python3.7/site-packages/airflow/models/dagbag.py", line 95, in __init__
    executor = get_default_executor()
  File "/usr/local/lib/python3.7/site-packages/airflow/executors/__init__.py", line 48, in get_default_executor
    DEFAULT_EXECUTOR = _get_executor(executor_name)
  File "/usr/local/lib/python3.7/site-packages/airflow/executors/__init__.py", line 87, in _get_executor
    return KubernetesExecutor()
  File "/usr/local/lib/python3.7/site-packages/airflow/contrib/executors/kubernetes_executor.py", line 702, in __init__
    self.kube_config = KubeConfig()
  File "/usr/local/lib/python3.7/site-packages/airflow/contrib/executors/kubernetes_executor.py", line 283, in __init__
    self.kube_client_request_args = json.loads(kube_client_request_args)
  File "/usr/local/lib/python3.7/json/__init__.py", line 348, in loads
    return _default_decoder.decode(s)
  File "/usr/local/lib/python3.7/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/local/lib/python3.7/json/decoder.py", line 353, in raw_decode
    obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

Trong lịch trình của tôi, cũng như nhiều nguồn khác nhau khuyên, tôi đã thử cài đặt:

AIRFLOW__KUBERNETES__KUBE_CLIENT_REQUEST_ARGS: {"_request_timeout" : [60,60] }

trong giá trị helm của tôi. Điều đó cũng không có tác dụng với bất kỳ ai có ý tưởng gì tôi đang thiếu?

Đây là giá trị của tôi.yaml


airflow:
  image:
     repository: airflow-docker-local
     tag: 1.10.8
  executor: Kubernetes
  service:
    type: LoadBalancer
  config:
    AIRFLOW__KUBERNETES__WORKER_CONTAINER_REPOSITORY: airflow-docker-local
    AIRFLOW__KUBERNETES__WORKER_CONTAINER_TAG: 1.10.8
    AIRFLOW__KUBERNETES__WORKER_CONTAINER_IMAGE_PULL_POLICY: Never

    AIRFLOW__KUBERNETES__WORKER_SERVICE_ACCOUNT_NAME: airflow
    AIRFLOW__KUBERNETES__DAGS_VOLUME_CLAIM: airflow
    AIRFLOW__KUBERNETES__NAMESPACE: airflow
    AIRFLOW__KUBERNETES__KUBE_CLIENT_REQUEST_ARGS: {"_request_timeout" : [60,60] }

    AIRFLOW__CORE__SQL_ALCHEMY_CONN: postgresql+psycopg2://postgres:airflow@airflow-postgresql:5432/airflow

persistence:
  enabled: true
  existingClaim: ''

workers:
  enabled: false

postgresql:
  enabled: true

redis:
  enabled: false

BIÊN TẬP :

Nhiều nỗ lực khác nhau để đặt biến môi trường trong giá trị helm.yaml đã không hoạt động, sau đó tôi đã thêm (chú ý đến dấu ngoặc kép và dấu ngoặc đơn)

ENV AIRFLOW__KUBERNETES__KUBE_CLIENT_REQUEST_ARGS='{"_request_timeout" : [60,60] }'

đến Dockerfile tại đây: https://github.com/puckel/docker-airflow/blob/1.10.9/Dockerfile#L19 sau đó airflow-schedulerpod của tôi bắt đầu nhưng sau đó tôi tiếp tục gặp lỗi sau trên trình lập lịch biểu của mình.

Process KubernetesJobWatcher-9: Traceback (most recent call last): 
    File "/usr/local/lib/python3.7/site-packages/urllib3/contrib/pyopenssl.py", line 313, 
    in recv_into return self.connection.recv_into(*args, **kwargs) File "/usr/local/lib/python3.7/site-packages/OpenSSL/SSL.py", 
    line 1840, in recv_into self._raise_ssl_error(self._ssl, result) File "/usr/local/lib/python3.7/site-packages/OpenSSL/SSL.py", 
    line 1646, in _raise_ssl_error raise WantReadError() OpenSSL.SSL.WantReadError

vấn đề tương tự ở đây. Tôi đã kiểm tra ra docker-airflow:1.10.8và loại bỏ thay đổi L931 của config/airflow.cfgđể kube_client_request_args =và sử dụng hình ảnh này. Có vẻ như để làm việc
Raf

vấn đề tương tự ở đây :-(
LiorH

Câu trả lời:


3

Đối với giá trị helm, mẫu sử dụng một vòng lặp đặt airflow.configbản đồ thành dấu ngoặc kép" . Điều này có nghĩa là bất kỳ "giá trị nào cần được thoát để YAML được tạo khuôn mẫu có hiệu lực.

airflow:
  config:
    AIRFLOW__KUBERNETES__KUBE_CLIENT_REQUEST_ARGS: '{\"_request_timeout\":60}'

Điều đó triển khai và chạy (nhưng tôi chưa hoàn thành bài kiểm tra từ đầu đến cuối)

Theo vấn đề github này , thời gian chờ SSL của trình lập lịch python có thể không thành vấn đề vì trình theo dõi bắt đầu lại sau khi hết thời gian kết nối 60 giây.


vâng làm việc, cảm ơn :-)
LiorH

Không vấn đề gì! Bạn có thể xác minh bộ lập lịch không hoạt động, nó chỉ kết nối lại sau mỗi X giây?
Matt

Vâng, lịch trình làm việc. Chạy vào một loạt các vấn đề khác mặc dù :-(
LiorH
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.