You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by as...@apache.org on 2021/04/15 11:28:47 UTC
[airflow] 06/08: Change default of `[kubernetes]
enable_tcp_keepalive` to `True` (#15338)
This is an automated email from the ASF dual-hosted git repository.
ash pushed a commit to branch v2-0-test
in repository https://gitbox.apache.org/repos/asf/airflow.git
commit 7e28c975b66a942a7253092f2dff6619d7882f63
Author: Jed Cunningham <66...@users.noreply.github.com>
AuthorDate: Tue Apr 13 08:24:09 2021 -0600
Change default of `[kubernetes] enable_tcp_keepalive` to `True` (#15338)
We've seen instances of connection resets happening, particularly in
Azure, that are remedied by enabling tcp_keepalive. Enabling it by
default should be safe and sane regardless of where we are running.
(cherry picked from commit 6e31465a30dfd17e2e1409a81600b2e83c910036)
---
airflow/config_templates/config.yml | 2 +-
airflow/config_templates/default_airflow.cfg | 2 +-
airflow/kubernetes/kube_client.py | 8 ++++----
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/airflow/config_templates/config.yml b/airflow/config_templates/config.yml
index 32694e4..c92acf8 100644
--- a/airflow/config_templates/config.yml
+++ b/airflow/config_templates/config.yml
@@ -2065,7 +2065,7 @@
version_added: ~
type: boolean
example: ~
- default: "False"
+ default: "True"
- name: tcp_keep_idle
description: |
When the `enable_tcp_keepalive` option is enabled, TCP probes a connection that has
diff --git a/airflow/config_templates/default_airflow.cfg b/airflow/config_templates/default_airflow.cfg
index 7685457..bc4d54a 100644
--- a/airflow/config_templates/default_airflow.cfg
+++ b/airflow/config_templates/default_airflow.cfg
@@ -1014,7 +1014,7 @@ delete_option_kwargs =
# Enables TCP keepalive mechanism. This prevents Kubernetes API requests to hang indefinitely
# when idle connection is time-outed on services like cloud load balancers or firewalls.
-enable_tcp_keepalive = False
+enable_tcp_keepalive = True
# When the `enable_tcp_keepalive` option is enabled, TCP probes a connection that has
# been idle for `tcp_keep_idle` seconds.
diff --git a/airflow/kubernetes/kube_client.py b/airflow/kubernetes/kube_client.py
index 7e8c5e8..1e65ae5 100644
--- a/airflow/kubernetes/kube_client.py
+++ b/airflow/kubernetes/kube_client.py
@@ -80,9 +80,9 @@ def _enable_tcp_keepalive() -> None:
from urllib3.connection import HTTPConnection, HTTPSConnection
- tcp_keep_idle = conf.getint('kubernetes', 'tcp_keep_idle', fallback=120)
- tcp_keep_intvl = conf.getint('kubernetes', 'tcp_keep_intvl', fallback=30)
- tcp_keep_cnt = conf.getint('kubernetes', 'tcp_keep_cnt', fallback=6)
+ tcp_keep_idle = conf.getint('kubernetes', 'tcp_keep_idle')
+ tcp_keep_intvl = conf.getint('kubernetes', 'tcp_keep_intvl')
+ tcp_keep_cnt = conf.getint('kubernetes', 'tcp_keep_cnt')
socket_options = [
(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1),
@@ -120,7 +120,7 @@ def get_kube_client(
if config_file is None:
config_file = conf.get('kubernetes', 'config_file', fallback=None)
- if conf.getboolean('kubernetes', 'enable_tcp_keepalive', fallback=False):
+ if conf.getboolean('kubernetes', 'enable_tcp_keepalive'):
_enable_tcp_keepalive()
client_conf = _get_kube_config(in_cluster, cluster_context, config_file)