在Kubernetes中进行端口转发时遇到连接超时问题?

5
我在Docker for Mac上运行了一个k8集群。为了让我的数据库客户端连接到我的mysql pod,我使用以下命令:kubectl port-forward mysql-0 3306:3306。它很好用,然而几个小时后我会遇到下面的错误:E0201 18:21:51.012823 51415 portforward.go:233] lost connection to pod
我检查了实际的mysql pod,它似乎仍在运行。每次运行port-forward命令时都会出现这种情况。
我看到了如下答案:kubectl port forwarding timeout issue,解决方法是使用以下标志:--streaming-connection-idle-timeout=0,但该标志现已弃用。
因此,在那里继续,似乎我必须通过kubelet配置文件(配置文件)设置该参数?由于Docker for Mac作为守护程序运行,并且我不手动启动集群,所以我不确定如何做到这一点。
任何人能否向我发送代码示例或说明,告诉我如何配置kubectl来设置该标志,以便我的端口转发不会超时?

你应该在集群内运行数据库客户端,如果无法这样做,可以使用类似NodePort服务的方式暴露数据库。kubectl port-forward不是为了成为集群的永久连接而设计的。 - David Maze
文档确实建议将该标志设置为0,这样可以建立永久连接,您知道我该如何实现吗? - thatguyjono
1个回答

8
端口转发通常用于短期调试,而不是“数小时”的使用。您可能需要的是NodePort类型的服务,然后可以直接连接到该服务。

端口转发需要多长时间才能生效?@coderanger - Utsav Dawn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接