【发布时间】:2020-06-03 20:58:18
【问题描述】:
我在 ubuntu 机器 18.04 上的 Azure 云中安装了 minikube。但我不知道如何使用虚拟机的真实 IP 通过 kubectl 连接到它。在 virtualbox 驱动程序上使用 i minikube (https://192.168.99.100:8443)。请告诉我如何进行端口转发?谢谢。
【问题讨论】:
标签: azure ubuntu kubernetes minikube
我在 ubuntu 机器 18.04 上的 Azure 云中安装了 minikube。但我不知道如何使用虚拟机的真实 IP 通过 kubectl 连接到它。在 virtualbox 驱动程序上使用 i minikube (https://192.168.99.100:8443)。请告诉我如何进行端口转发?谢谢。
【问题讨论】:
标签: azure ubuntu kubernetes minikube
我对其进行了测试并提出了一些解决方案。
使用 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。
通过执行以下操作可以使用 ssh 端口转发使其可访问(这次允许外部访问)的第二种方法:
在 azure vm 上的文件 /etc/ssh/sshd_config 中将 GatewayPorts 更改为 yes,保存文件并运行
systemctl restart sshd
接下来,SSH 到您的 azure vm 并运行:
ssh -R 0.0.0.0:8443:192.168.99.100:8443 localhost
记住证书文件并在您的 azure vm 的 .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 vm 的入口流量。
如果您不想使用 ssh 端口转发,您可以使用任何类型的代理,例如 nginx,它将在 azure vm 上运行并将请求转发到 minkube vm
可能是最好的方法。在没有虚拟机的情况下运行:
sudo minikube start --vm-driver=none --apiserver-ips=<public_ip>
需要--apiserver-ips 来生成适当的证书。
--vm-driver=none 不会创建 vbox 虚拟机
现在您只需将证书复制到本地计算机并在 .kube/confg 文件中提供适当的服务器 ip。
如果有帮助请告诉我。
【讨论】: