EKS:kubectl exec 不尊重 streamingConnectionIdleTimeout

EKS:kubectl exec 不尊重 streamingConnectionIdleTimeout

使用带有 Kubernetes 1.21 的 EKS,在私有子网中管理节点组。我正在尝试设置集群,以便kubectl exec无论工作负载如何,在不活动后都会超时exec,并且无需任何客户端配置。

我知道https://github.com/containerd/containerd/issues/5563,但我们使用的是 Docker 运行时 1.21 版本,尚未使用 containerd。

streamingConnectionIdleTimeout: 3600s在启动模板中的kubelet上设置:

cat /etc/kubernetes/kubelet/kubelet-config.json | jq '.streamingConnectionIdleTimeout = "3600s"' > /etc/kubernetes/kubelet/kubelet-config.json

/etc/eks/bootstrap.sh {{CLUSTER_NAME}}

并与 确认curl -sSL "http://localhost:8001/api/v1/nodes/(node name)/proxy/configz"

但,kubectl exec仍然没有超时。

/proc/sys/net/ipv4/tcp_keepalive_time = 7200在客户端和节点上都进行了确认,因此在 Linux 开始发送保持活动探测之前,我们应该达到流连接空闲超时。

通读kubectl exec工作原理,看来 EKS 管理的控制平面正在保持连接处于活动状态。网上有人对面的问题 - 无论如何,他们的连接都会超时streamingConnectionIdleTimeout- 他们通过调整 k8s API 服务器前面的负载均衡器的超时来解决这个问题。但是,在 EKS 管理的控制平面上没有可以在这方面进行调整的旋钮(据我所知)。

我将非常感激有关这个话题的任何意见。

相关内容