【发布时间】:2020-02-01 18:09:41
【问题描述】:
我在 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 配置文件 (config file) 设置该参数?我不确定如何实现这一点,因为 Docker for Mac 作为守护程序运行并且我不手动启动集群。
谁能给我一个代码示例或说明,告诉我如何配置kubectl 来设置该标志,这样我的端口转发就不会超时?
【问题讨论】:
-
您应该在集群中运行您的数据库客户端,或者如果您不能这样做,请使用类似 NodePort 服务的方式公开数据库。
kubectl port-forward并非设计为与集群的永久连接。 -
文档确实建议将该标志设置为
0会建立永久连接吗?你知道我是怎么做到的吗?
标签: docker kubernetes docker-for-mac