Azure 中托管的 minikube 的外部访问
External access for minikube hosted in Azure
我在 ubuntu 机器 18.04 的 Azure 云中安装了 minikube。但是我不知道如何使用虚拟机的真实 IP 通过 kubectl 连接到它。在 virtualbox 驱动程序上使用 i minikube (https://192.168.99.100:8443)。请告诉我如何进行端口转发?谢谢。
我测试了它并提出了一些解决方案。
使用 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 虚拟机复制到您的本地计算机并编辑前面提到的证书文件的路径并将服务器 IP 地址更改为本地主机。
通过执行以下操作可以使用 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
记住证书文件并在 .kube/config
文件中更改服务器 IP public 你的 Azure 虚拟机的 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
可能是最好的方法。 运行 没有虚拟机:
sudo minikube start --vm-driver=none --apiserver-ips=<public_ip>
需要 --apiserver-ips
才能生成适当的证书。
--vm-driver=none
不会创建 vbox 虚拟机
现在您只需将证书复制到您的本地计算机并在 .kube/confg
文件中提供适当的服务器 ip。
如果有帮助,请告诉我。
我在 ubuntu 机器 18.04 的 Azure 云中安装了 minikube。但是我不知道如何使用虚拟机的真实 IP 通过 kubectl 连接到它。在 virtualbox 驱动程序上使用 i minikube (https://192.168.99.100:8443)。请告诉我如何进行端口转发?谢谢。
我测试了它并提出了一些解决方案。
使用 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 虚拟机复制到您的本地计算机并编辑前面提到的证书文件的路径并将服务器 IP 地址更改为本地主机。通过执行以下操作可以使用 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
记住证书文件并在
.kube/config
文件中更改服务器 IP public 你的 Azure 虚拟机的 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
可能是最好的方法。 运行 没有虚拟机:
需要sudo minikube start --vm-driver=none --apiserver-ips=<public_ip>
--apiserver-ips
才能生成适当的证书。--vm-driver=none
不会创建 vbox 虚拟机现在您只需将证书复制到您的本地计算机并在
.kube/confg
文件中提供适当的服务器 ip。
如果有帮助,请告诉我。