kubernetes,提示符在端口转发命令时冻结

Vol*_*hek 3 kubernetes

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

目前,我的提示在命令中冻结了5分钟以上port-forward

[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 
Run Code Online (Sandbox Code Playgroud)

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

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. --
Run Code Online (Sandbox Code Playgroud)

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"}
Run Code Online (Sandbox Code Playgroud)

操作系统发行

[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"
Run Code Online (Sandbox Code Playgroud)

港口

[root@k8s-master deployments]# ss -atun | grep 6379
[root@k8s-master deployments]#
Run Code Online (Sandbox Code Playgroud)

Jav*_*ron 5

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

&如果要继续使用该提示,可以尝试在命令末尾使用。我个人将使用tmux或screen这样的终端多路复用器。

  • 这是技术上正确但不是很有帮助的答案的示例。这个问题可能没有明确询问它,但隐含地询问“如何在关闭终端后让此端口转发内容保留下来”。我刚刚开始使用 k8s,这是我遇到的第一件事,现在我需要弄清楚这一点。这个答案给我的唯一信息是可能寻找与守护进程有关的东西。似乎没有一个开关可以实现这一点,所以现在我需要从我的搜索中排除 SO。 (4认同)