Airflow Kubernetes Executor pods go into "NotReady" state instead of being deleted

5/24/2021

Installed airflow in kubernetes using the repo https://airflow-helm.github.io/charts and airflow-stable/airflow with version 8.1.3. So I have Airflow v2.0.1 installed. I have it setup using external postgres database and using the kubernetes executor.

What I have noticed is when airflow related pods are done they go into a "NotReady" status. This happens with the update-db pod at startup and also pods launched by the kubernetes executioner. When I go into airflow and look at the task some are successful and some can be failure, but either way the related pods are in "NotReady" status. In the values file I set the below thinking it would delete the pods when they are done. I've gone through the logs and made sure one of the dags ran as intended and was success in the related task was success and of course the related pod when it was done went into "NotReady" status.

The values below are located in Values.airflow.config.

AIRFLOWKUBERNETESDELETE_WORKER_PODS: "true" AIRFLOWKUBERNETESDELETE_WORKER_PODS_ON_FAILURE: "true"

So I'm not really sure what I'm missing and if anyone has seen this behavior? It's also really strange that the upgrade-db pod is doing this too.

Screenshot of kubectl get pods for the namespace airflow is deployed in with the "NotReady" pods

-- Kyle N
airflow
kubernetes

1 Answer

8/11/2021

Figured it out. The K8 namespace had auto injection of linkerd sidecar container for each pod. Would have to just use celery executioner or setup some sort of k8 job to cleanup completed pods and jobs that don’t get cleaned up due to the linkerd container running forever in those pods.

-- Kyle N
Source: StackOverflow