एयरफ्लो शेड्यूलर कुबेरनेट्स निष्पादक के साथ शुरू करने में विफल रहता है


12

मैं https://github.com/helm/charts/tree/master/stable/airflow helm चार्ट का उपयोग कर रहा हूं puckle/docker-airflowऔर उस पर स्थापित kubernetes के साथ v1.10.8 छवि का उपयोग कर रहा हूं और उस छवि का उपयोग पतवार चार्ट में कर रहा हूं, लेकिन मैं प्राप्त कर रहा हूं

  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)

अपने अनुसूचक में, विभिन्न स्रोतों से भी सलाह देते हैं, मैंने सेटिंग की कोशिश की:

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

मेरे हेल्म मूल्यों में। यह भी किसी भी काम नहीं किया किसी भी विचार है कि मैं क्या याद आ रही है?

यहाँ मेरा मान है


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

संपादित करें:

हेल्म मूल्यों में पर्यावरण चर सेट करने के लिए विभिन्न प्रयास किए गए। श्याम ने काम नहीं किया, उसके बाद मैंने जोड़ा (डबल और सिंगल कोट्स पर ध्यान दें)

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

यहाँ पर Dockerfile करने के लिए : https://github.com/puckel/docker-airflow/blob/1.10.9/Dockerfile#L19 उसके बाद मेरी airflow-schedulerपॉड शुरू होती है, लेकिन फिर मैं अपने शेड्यूलर पॉड पर त्रुटि प्राप्त करता रहता हूं।

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

यहाँ एक ही मुद्दा है। मैं बाहर की जाँच की docker-airflow:1.10.8और से L931 बदल हटाया config/airflow.cfgको kube_client_request_args =और इस छवि का उपयोग। काम करने लगता है
राफ

यहाँ एक ही मुद्दा :-(
LiorH

जवाबों:


3

पतवार के मूल्य के लिए, टेम्पलेट एक लूप का उपयोग करता है जो airflow.configमानचित्र को दोहरे उद्धरण चिह्नों में" रखता है । इसका मतलब यह है कि किसी भी "वैल्यू के लिए आउटपुट के लिए बच निकलने की जरूरत होती है क्योंकि YAML वैध होगा।

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

यह दर्शाती है और चलती है (लेकिन मैंने परीक्षण समाप्त करने का अंत नहीं किया है)

इस github मुद्दे के अनुसार , अजगर अनुसूचक एसएसएल टाइमआउट एक समस्या नहीं हो सकती है क्योंकि 60 सेकंड के कनेक्शन टाइमआउट के बाद वॉचर फिर से शुरू होता है।


हाँ काम किया, धन्यवाद :-)
LiorH

कोई समस्या नहीं! क्या आप शेड्यूलर को सत्यापित करने में सक्षम हैं कि क्या यह काम करता है, यह बस हर एक्स सेकंड को फिर से जोड़ता है?
मैट

हां, शेड्यूलर काम करता है। अन्य मुद्दों के झुंड में चल रहा है :-(
लिरह
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.