You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by GitBox <gi...@apache.org> on 2021/08/30 05:05:53 UTC

[GitHub] [airflow] MatrixManAtYrService opened a new issue #17901: KubernetesExecutor: kubectl task gets stuck running if command takes more than 0.4 sec

MatrixManAtYrService opened a new issue #17901:
URL: https://github.com/apache/airflow/issues/17901


   ### Apache Airflow version
   
   2.1.3 (latest released)
   
   ### Operating System
   
   20.04.1-Ubuntu
   
   ### Versions of Apache Airflow Providers
   
   Providers info
   apache-airflow-providers-amazon          | 2.1.0
   apache-airflow-providers-celery          | 2.0.0
   apache-airflow-providers-cncf-kubernetes | 2.0.2
   apache-airflow-providers-docker          | 2.1.0
   apache-airflow-providers-elasticsearch   | 2.0.2
   apache-airflow-providers-ftp             | 2.0.0
   apache-airflow-providers-google          | 5.0.0
   apache-airflow-providers-grpc            | 2.0.0
   apache-airflow-providers-hashicorp       | 2.0.0
   apache-airflow-providers-http            | 2.0.0
   apache-airflow-providers-imap            | 2.0.0
   apache-airflow-providers-microsoft-azure | 3.1.0
   apache-airflow-providers-mysql           | 2.1.0
   apache-airflow-providers-postgres        | 2.0.0
   apache-airflow-providers-redis           | 2.0.0
   apache-airflow-providers-sendgrid        | 2.0.0
   apache-airflow-providers-sftp            | 2.1.0
   apache-airflow-providers-slack           | 4.0.0
   apache-airflow-providers-sqlite          | 2.0.0
   apache-airflow-providers-ssh             | 2.1.0
   
   ### Deployment
   
   Official Apache Airflow Helm Chart
   
   ### Deployment details
   
   Dockerfile:
   ```
   FROM apache/airflow:2.1.3
   USER root
   RUN apt update && apt install -y curl
   
   # kubectl
   RUN curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
   RUN install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
   
   # kubeconfig
   RUN mkdir -p ~/.kube
   COPY ./config /home/airflow/.kube/config
   ENV KUBECONFIG=/home/airflow/.kube/config
   RUN chown airflow /home/airflow/.kube/config
   
   COPY increment.py $AIRFLOW_HOME/dags/increment.py
   
   USER airflow
   
   RUN pip install sh
   ```
   
   values.yaml:
   ```
   executor: KubernetesExecutor
   defaultAirflowRepository: 192.168.90.13:30500/airflow
   defaultAirflowTag: freezebug
   images:
     airflow:
       pullPolicy: Always
     flower:
       pullPolicy: Always
     pod_template:
       pullPolicy: Always
   logs:
     persistence:
       enabled: true
       size: 1Gi
   ```
   
   ### What happened
   
   I had defined a DAG which uses `kubectl run` to run `bash -c 'sleep X'` for successively higher values of X:
   - 0 sec
   - 0.1 sec
   - 0.2 sec
   - ...
   - 2 sec
   
   Around 0.3 seconds, the tasks stopped completing:
   <img width="381" alt="stuck_eventually" src="https://user-images.githubusercontent.com/5834582/131287433-a8abaf1d-cfaa-4bcd-93ef-e754b20c41de.png">
   
   
   ### What you expected to happen
   
   I expected the tasks to all complete successfully
   
   ### How to reproduce
   
   I made[ a repo](https://github.com/MatrixManAtYrService/bug_airflowfreeze) with the files that I used.  See [commands.txt](https://github.com/MatrixManAtYrService/bug_airflowfreeze/blob/main/commands.txt) for the flow.
   
   Generally:
   - docker build an image with the problematic DAG, include kubectl and a kubeconfig file for a running cluster
   - push the image to a repository (I use https://github.com/twuni/docker-registry.helm to deploy one locally)
   - deploy Airflow in that image with the airflow helm chart
   - run the "increment" DAG
   - notice that it never completes
   
   ### Anything else
   
   If you use the Sequential Executor, it completes just fine
   
   ### Are you willing to submit PR?
   
   - [X] Yes I am willing to submit a PR!
   
   ### Code of Conduct
   
   - [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@airflow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org