Airflow 스케줄러는 Kubernetes 서비스 API에 연결할 수 없습니다.

할릴

Kubernetes 실행기로 공기 흐름을 설정하려고하는데 스케줄러 컨테이너 시작시 잠시 중단되고 다음과 같이 https 시간 초과 오류가 발생합니다. 메시지의 IP 주소가 정확하고 내부 용기는 내가 실행할 수 있습니다 curl kubernetes:443또는 curl 10.96.0.1:443또는 nc -zv 10.96.0.1 443내가 거기에 방화벽이 없거나 액세스를 차단하므로 가정 있도록.

로컬 kubernetes와 aws EKS를 사용하고 있지만 동일한 오류가 발생하면 다른 클러스터에서 ip가 변경되는 것을 볼 수 있습니다.

해결책을 찾기 위해 Google을 보았지만 비슷한 경우는 보지 못했습니다.

│   File "/usr/local/lib/python3.6/site-packages/airflow/contrib/executors/kubernetes_executor.py", line 335, in run                                                                                                                                                                                                                               │
│     self.worker_uuid, self.kube_config)                                                                                                                                                                                                                                                                                                          │
│   File "/usr/local/lib/python3.6/site-packages/airflow/contrib/executors/kubernetes_executor.py", line 359, in _run                                                                                                                                                                                                                              │
│     **kwargs):                                                                                                                                                                                                                                                                                                                                   │
│   File "/usr/local/lib/python3.6/site-packages/kubernetes/watch/watch.py", line 144, in stream                                                                                                                                                                                                                                                   │
│     for line in iter_resp_lines(resp):                                                                                                                                                                                                                                                                                                           │
│   File "/usr/local/lib/python3.6/site-packages/kubernetes/watch/watch.py", line 48, in iter_resp_lines                                                                                                                                                                                                                                           │
│     for seg in resp.read_chunked(decode_content=False):                                                                                                                                                                                                                                                                                          │
│   File "/usr/local/lib/python3.6/site-packages/urllib3/response.py", line 781, in read_chunked                                                                                                                                                                                                                                                   │
│     self._original_response.close()                                                                                                                                                                                                                                                                                                              │
│   File "/usr/local/lib/python3.6/contextlib.py", line 99, in __exit__                                                                                                                                                                                                                                                                            │
│     self.gen.throw(type, value, traceback)                                                                                                                                                                                                                                                                                                       │
│   File "/usr/local/lib/python3.6/site-packages/urllib3/response.py", line 430, in _error_catcher                                                                                                                                                                                                                                                 │
│     raise ReadTimeoutError(self._pool, None, "Read timed out.")                                                                                                                                                                                                                                                                                  │
│ urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='10.96.0.1', port=443): Read timed out.

업데이트 : 내 문제를 찾았지만 아직 해결책이 없습니다. https://github.com/kubernetes-client/python/issues/990

한밤중

ENV 변수를 통해 값을 설정하는 옵션이 있습니다. charts / airflow.yaml 파일에서 다음과 같이 변수를 설정하면 문제가 해결됩니다.

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

airflow.yaml 전체 코드

airflow:
  image:
     repository: airflow-docker-local
     tag: 1
  executor: Kubernetes
  service:
    type: LoadBalancer
  config:
    AIRFLOW__CORE__SQL_ALCHEMY_CONN: postgresql+psycopg2://postgres:airflow@airflow-postgresql:5432/airflow
    AIRFLOW__CELERY__RESULT_BACKEND: db+postgresql://postgres:airflow@airflow-postgresql:5432/airflow
    AIRFLOW__CELERY__BROKER_URL: redis://:airflow@airflow-redis-master:6379/0
    AIRFLOW__CORE__REMOTE_LOGGING: True
    AIRFLOW__CORE__REMOTE_LOG_CONN_ID: my_s3_connection
    AIRFLOW__CORE__REMOTE_BASE_LOG_FOLDER: s3://xxx-airflow/logs
    AIRFLOW__WEBSERVER__LOG_FETCH_TIMEOUT_SEC: 25
    AIRFLOW__CORE__LOAD_EXAMPLES: True
    AIRFLOW__WEBSERVER__EXPOSE_CONFIG: True
    AIRFLOW__CORE__FERNET_KEY: -xyz=
    AIRFLOW__KUBERNETES__WORKER_CONTAINER_REPOSITORY: airflow-docker-local
    AIRFLOW__KUBERNETES__WORKER_CONTAINER_TAG: 1
    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" : [50, 50]}


persistence:
  enabled: true
  existingClaim: ''

workers:
  enabled: true

postgresql:
  enabled: true

redis:
  enabled: true

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Graylog는 Kubernetes 클러스터의 Elasticsearch에 연결할 수 없습니다.

분류에서Dev

Kubernetes에서 skydns 서비스로 'kubernetes'를 해결할 수 없습니다.

분류에서Dev

Spring Boot를 통해 Docker Desktop Kubernetes (Windows) 서비스를 로컬 Postgres DB에 연결할 수 없습니다.

분류에서Dev

Android에서 웹 서비스를 연결할 수 없습니다.

분류에서Dev

hostNetwork True가있는 Kubernetes 포드는 동일한 클러스터에있는 서비스의 외부 IP에 연결할 수 없습니다.

분류에서Dev

새 컨텍스트를 사용하여 Kubernetes에 연결할 수 없습니다.

분류에서Dev

kubernetes에서 mysql에 연결할 수 없습니다.

분류에서Dev

Kubernetes에서 Cockroach 포드에 연결할 수 없습니다.

분류에서Dev

웹 서비스는 IE에서 연결할 수 있지만 Visual Studio에서는 연결할 수 없습니다.

분류에서Dev

Kubernetes "Windows 포드"가 서로 통신 할 수 없음 | "호스트를 확인할 수 없습니다"| "네트워크에 연결할 수 없습니다."

분류에서Dev

localhost에서 kubernetes 서비스에 액세스 할 수 없습니다.

분류에서Dev

원격 Kubernetes에서 내 서비스에 액세스 할 수 없습니다.

분류에서Dev

Kubernetes-서버에 연결할 수 없습니다.

분류에서Dev

Kubernetes에서 두 개의 클러스터 IP 서비스를 연결할 수 있습니까?

분류에서Dev

GCP Kubernetes Engine에서 호스팅되는 MySQL Docker에 연결할 수 없습니다.

분류에서Dev

Node 서버용 Systemd 서비스가 MongoDB에 연결할 수 없습니다.

분류에서Dev

kubernetes에서 서비스 이름으로 서비스에 액세스 할 수 없습니다.

분류에서Dev

배포 포드가 ClusterIP 서비스에 연결할 수 없습니다.

분류에서Dev

Passbook이 개발 웹 서비스에 연결할 수 없습니다.

분류에서Dev

kubernetes의 다른 포드에서 Artemis에 연결할 수 없습니다.

분류에서Dev

Google 서비스에만 연결할 수 있습니다.

분류에서Dev

Vagrant / Ansible의 마스터에 연결할 kubernetes 노드를 가져올 수 없습니다.

분류에서Dev

angularjs의 서비스 함수와 연결할 수 없습니다.

분류에서Dev

mongodb 클러스터에 연결할 수 없습니다.

분류에서Dev

내 AWS Elasticache 클러스터에 연결할 수 없습니다.

분류에서Dev

minikube / kubernetes에서 Spark를 실행하여 외부 스케줄러를 인스턴스화 할 수없는 이유는 무엇입니까?

분류에서Dev

연결이 메서드에 액세스 할 수 없습니다.

분류에서Dev

kubernetes에서 statefulset 헤드리스 서비스에 액세스 할 수 없습니다.

분류에서Dev

kubernetes 포드에서 IP에 연결할 수 없지만 기본 서버에서 액세스 할 수 있습니다.

Related 관련 기사

  1. 1

    Graylog는 Kubernetes 클러스터의 Elasticsearch에 연결할 수 없습니다.

  2. 2

    Kubernetes에서 skydns 서비스로 'kubernetes'를 해결할 수 없습니다.

  3. 3

    Spring Boot를 통해 Docker Desktop Kubernetes (Windows) 서비스를 로컬 Postgres DB에 연결할 수 없습니다.

  4. 4

    Android에서 웹 서비스를 연결할 수 없습니다.

  5. 5

    hostNetwork True가있는 Kubernetes 포드는 동일한 클러스터에있는 서비스의 외부 IP에 연결할 수 없습니다.

  6. 6

    새 컨텍스트를 사용하여 Kubernetes에 연결할 수 없습니다.

  7. 7

    kubernetes에서 mysql에 연결할 수 없습니다.

  8. 8

    Kubernetes에서 Cockroach 포드에 연결할 수 없습니다.

  9. 9

    웹 서비스는 IE에서 연결할 수 있지만 Visual Studio에서는 연결할 수 없습니다.

  10. 10

    Kubernetes "Windows 포드"가 서로 통신 할 수 없음 | "호스트를 확인할 수 없습니다"| "네트워크에 연결할 수 없습니다."

  11. 11

    localhost에서 kubernetes 서비스에 액세스 할 수 없습니다.

  12. 12

    원격 Kubernetes에서 내 서비스에 액세스 할 수 없습니다.

  13. 13

    Kubernetes-서버에 연결할 수 없습니다.

  14. 14

    Kubernetes에서 두 개의 클러스터 IP 서비스를 연결할 수 있습니까?

  15. 15

    GCP Kubernetes Engine에서 호스팅되는 MySQL Docker에 연결할 수 없습니다.

  16. 16

    Node 서버용 Systemd 서비스가 MongoDB에 연결할 수 없습니다.

  17. 17

    kubernetes에서 서비스 이름으로 서비스에 액세스 할 수 없습니다.

  18. 18

    배포 포드가 ClusterIP 서비스에 연결할 수 없습니다.

  19. 19

    Passbook이 개발 웹 서비스에 연결할 수 없습니다.

  20. 20

    kubernetes의 다른 포드에서 Artemis에 연결할 수 없습니다.

  21. 21

    Google 서비스에만 연결할 수 있습니다.

  22. 22

    Vagrant / Ansible의 마스터에 연결할 kubernetes 노드를 가져올 수 없습니다.

  23. 23

    angularjs의 서비스 함수와 연결할 수 없습니다.

  24. 24

    mongodb 클러스터에 연결할 수 없습니다.

  25. 25

    내 AWS Elasticache 클러스터에 연결할 수 없습니다.

  26. 26

    minikube / kubernetes에서 Spark를 실행하여 외부 스케줄러를 인스턴스화 할 수없는 이유는 무엇입니까?

  27. 27

    연결이 메서드에 액세스 할 수 없습니다.

  28. 28

    kubernetes에서 statefulset 헤드리스 서비스에 액세스 할 수 없습니다.

  29. 29

    kubernetes 포드에서 IP에 연결할 수 없지만 기본 서버에서 액세스 할 수 있습니다.

뜨겁다태그

보관