【问题标题】:kubernetes, prompt freezes at port forward commandkubernetes,提示在端口转发命令处冻结
【发布时间】:2018-07-29 12:15:44
【问题描述】:

我想在kubernetes 的在线指南之后设置从我的本地端口(节点)到 pod redis-master 的端口转发。

目前我的提示在port-forward 命令处冻结了超过 5 分钟。

[root@k8s-master deployments]# kubectl create -f https://k8s.io/docs/tasks/access-application-cluster/redis-master.yaml
pod "redis-master" created
[root@k8s-master deployments]# kubectl get pods
NAME                                READY     STATUS    RESTARTS   AGE
redis-master                        2/2       Running   0          1m
[root@k8s-master deployments]# kubectl get pods redis-master --template='{{(index (index .spec.containers 0).ports 0).containerPort}}{{"\n"}}'
6379
[root@k8s-master deployments]# kubectl port-forward redis-master 6379:6379
Forwarding from 127.0.0.1:6379 -> 6379
^C 

我不知道为什么我的提示被冻结了。在我的日志中没有一些错误或警告条目。

journalctl -u kubelet.service -f --since "2018-02-19 10:30:00" --priority 0
-- Logs begin at Sa 2018-02-03 21:21:50 CET. --

kubectl 版本

[root@k8s-master deployments]# kubectl version
Client Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.2", GitCommit:"5fa2db2bd46ac79e5e00a4e6ed24191080aa463b", GitTreeState:"clean", BuildDate:"2018-01-18T10:09:24Z", GoVersion:"go1.9.2", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.2", GitCommit:"5fa2db2bd46ac79e5e00a4e6ed24191080aa463b", GitTreeState:"clean", BuildDate:"2018-01-18T09:42:01Z", GoVersion:"go1.9.2", Compiler:"gc", Platform:"linux/amd64"}

操作系统发布

[root@k8s-master deployments]# cat /etc/os-release 
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

端口

[root@k8s-master deployments]# ss -atun | grep 6379
[root@k8s-master deployments]#

【问题讨论】:

  • 嗨@Volker,我的情况与您所描述的情况相同,据我所知,当终端在几秒钟内是理想的时它冻结了。我的解释是,当客户端到服务器没有 data-flow 时,它会导致冻结。

标签: kubernetes


【解决方案1】:

您看到的行为是预期的。默认情况下,此命令不会被守护。它将转发端口,直到您使用 CTRL-C 或其他类似方法终止该命令。

如果您想继续使用该提示符,可以尝试在命令末尾使用&。我个人会使用终端多路复用器,例如 tmux 或 screen。

【讨论】:

  • 嗨@Javier,如果我错了,请纠正我,据我所知,问题的原因是死的tcp连接。一段时间后,连接变得理想
  • 让我看看我是否理解正确。执行命令时,端口转发不工作吗?
  • 我认为当我们使用端口转发时,它会在客户端和服务器之间创建一个 tcp 隧道。现在我们从客户端发送一个请求,然后真正的数据开始流动。
  • 所以,如果我理解正确,您启用端口转发,尽管命令被“阻止”(这是预期的),数据流仍然有效,对吧?
  • 是的。正如您所说,该命令将被“阻止”,这是预期的。 OP的问题是为什么终端或提示冻结。我有类似的情况,我知道这可能与 tcp 连接的理想状态有关。
猜你喜欢
  • 2021-08-21
  • 2015-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-14
  • 2021-08-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多