【问题标题】:Getting a connection timeout issue with port forwarding in Kubernetes?在 Kubernetes 中遇到端口转发的连接超时问题?
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-13
    • 2019-05-16
    • 1970-01-01
    • 1970-01-01
    • 2022-05-04
    相关资源
    最近更新 更多