提问者:小点点

windows主机流浪者kubectl端口转发:卡在流浪者内部


我正在使用安装了流浪箱的Windows笔记本电脑,其中我有一个管理一些外部kubernetes集群的kubectl客户端。

出于调试的目的,我想通过kubectl进行端口转发,并从主机访问该端口。这可以从游民内部完美地工作到kubernetes集群,但显然有些东西不能与游民端口从主机转发到游民一起工作。

这是我的设置:

>

  • 流浪中的端口转发:

    config.vm.network"forwarded_port",嘉宾: 8080,主持人:8080,auto_correct:false

    在kubernetes中启动nginx容器:

    kubectl run-i-t--image nginx test

    转发端口到localhost(游民内部):

    kubectl端口转发测试-64585bfbd4-zxpsd 8080:80

    测试nginx在vagant-box内运行:

    vagrant@csbox:~$ curl http://localhost:8080
    <!DOCTYPE html>
    <html>
    <head>
    <title>Welcome to nginx!</title>
    <style>
        body {
            width: 35em;
            margin: 0 auto;
            font-family: Tahoma, Verdana, Arial, sans-serif;
        }
    </style>
    </head>
    <body>
    <h1>Welcome to nginx!</h1>
    <p>If you see this page, the nginx web server is successfully installed and working. Further configuration is required.</p>
    
    <p>For online documentation and support please refer to
    <a href="http://nginx.org/">nginx.org</a>.<br/>
    Commercial support is available at
    <a href="http://nginx.com/">nginx.com</a>.</p>
    
    <p><em>Thank you for using nginx.</em></p>
    </body>
    </html>
    

    作品。

    现在升级-在windows主机上:

    PS U:\> Invoke-WebRequest http://localhost:8080
    
    Invoke-WebRequest : The underlying connection was closed: An unexpected error occurred on a receive.
    At line:1 char:1
    + Invoke-WebRequest http://localhost:8080
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidOperation:     (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
    + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
    

    作品不。

    据我所知,只要看看端口转发,一切都应该没问题。你知道为什么这不像预期的那样工作吗?


  • 共2个答案

    匿名用户

    默认情况下,kubectl端口转发绑定到地址127.0.0.1。这就是为什么您无法在流浪者之外访问它。解决方案是使用参数--address0.0.0.0使kubectl端口转发绑定到0.0.0.0

    运行命令:

    kubectl port-forward test-64585bfbd4-zxpsd --address 0.0.0.0 8080:80
    

    将解决您的问题。

    匿名用户

    kubectl port-转发绑定到127.0.0.1,并且不允许您定义绑定地址。来自Windows主机的流量会访问VagantVM的主网络接口,因此这不起作用。您可以使用iptables将流量从VagrentVM的主网络接口路由到环回接口来解决此问题:'

      null