Azure中托管的minikube的外部访问

时间:2020-02-19 16:09:51

标签: azure ubuntu kubernetes minikube

我在ubuntu计算机18.04上的Azure云中安装了minikube。但是我不知道如何使用虚拟机的真实IP通过kubectl连接到它。在virtualbox驱动程序(https://192.168.99.100:8443)上使用i minikube。请告诉我如何进行端口转发?谢谢。

1 个答案:

答案 0 :(得分:0)

我对其进行了测试,并提出了一些解决方案。

  1. 使用ssh端口转发可以实现从本地计算机访问minikube的最简单方法(但是您需要记住始终打开ssh会话,但这并不是您真正想要的,因为它将只能从本地计算机访问)。

    您可以运行:

    ssh <user>@<azure_vm_ip> -L 8443:192.168.99.100:8443
    

    开始从本地主机到minikube虚拟机的端口转发。

    您还需要将这些证书文件从azure vm ~/.minikube/目录复制到 您的本地计算机:

    ca.crt
    client.crt
    client.key
    

    还将.kube/config从azure vm复制到本地计算机,并编辑前面提到的证书文件的路径,并将服务器IP地址更改为localhost。

  2. 使用ssh端口转发使其可访问(这一次允许外部访问)的第二种方法是可以做到的:

    在Azure虚拟机的文件/etc/ssh/sshd_config中,将GatewayPorts更改为yes,保存文件并运行

    systemctl restart sshd
    

    接下来,将ssh转到您的Azure虚拟机并运行:

    ssh -R 0.0.0.0:8443:192.168.99.100:8443 localhost
    

    记住有关证书文件的信息,并在您的Azure虚拟机的.kube/config文件公共IP中更改服务器IP。

    尝试连接到minikube表单时,本地计算机可能会看到:

    $ kubectl get pods
    Unable to connect to the server: x509: certificate is valid for 192.168.99.100, 10.96.0.1, 10.0.0.1, not <your_vm_ip>
    

    因此,您需要使用--insecure-skip-tls-verify标志或生成新的有效证书(或以--apiserver-ips=<public_ip>启动minikube,它将为您生成有效证书)。

    注意:请记住允许在端口8443上向您的Azure虚拟机提供入口流量。

    如果您不想使用ssh端口转发,则可以使用任何代理,例如nginx,它将在azure vm上运行并将请求转发到minkube vm

  3. 可能是最好的方法。在没有VM的情况下运行:

     sudo minikube start --vm-driver=none --apiserver-ips=<public_ip>
    
    需要

    --apiserver-ips来生成适当的证书。 --vm-driver=none将不会创建vbox虚拟机

    现在,您所需要做的就是将证书复制到本地计算机,并在.kube/confg文件中提供适当的服务器ip。

让我知道它是否有帮助。