使用 VirtualBox 6.1 在 Windows 10 主机上访问 minikube 仪表板-(Ubuntu20.04 服务器)VM 运行
Accessing minikube dashboard - (Ubuntu20.04 server)VM running on Windows 10 host with VirtualBox 6.1
我正在尝试从主机 OS (Windows 10) 访问 minikube 仪表板。
Minikube 运行正在我的虚拟机 Ubuntu 20.04 服务器上运行。
主机是 Windows 10,我使用 VirtualBox 运行 我的虚拟机。
这些是我 运行 在 Ubuntu:
上的命令
tomas@ubuntu20:~$ minikube start
* minikube v1.22.0 on Ubuntu 20.04 (vbox/amd64)
* Using the docker driver based on existing profile
* Starting control plane node minikube in cluster minikube
* Pulling base image ...
* Updating the running docker "minikube" container ...
* Preparing Kubernetes v1.21.2 on Docker 20.10.7 ...
* Verifying Kubernetes components...
- Using image gcr.io/k8s-minikube/storage-provisioner:v5
- Using image kubernetesui/dashboard:v2.1.0
- Using image kubernetesui/metrics-scraper:v1.0.4
* Enabled addons: storage-provisioner, default-storageclass, dashboard
* kubectl not found. If you need it, try: 'minikube kubectl -- get pods -A'
* Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
tomas@ubuntu20:~$ kubectl get po -A
Command 'kubectl' not found, but can be installed with:
sudo snap install kubectl
tomas@ubuntu20:~$ minikube kubectl -- get po -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-558bd4d5db-9p9ck 1/1 Running 2 72m
kube-system etcd-minikube 1/1 Running 2 72m
kube-system kube-apiserver-minikube 1/1 Running 2 72m
kube-system kube-controller-manager-minikube 1/1 Running 2 72m
kube-system kube-proxy-xw766 1/1 Running 2 72m
kube-system kube-scheduler-minikube 1/1 Running 2 72m
kube-system storage-provisioner 1/1 Running 4 72m
kubernetes-dashboard dashboard-metrics-scraper-7976b667d4-r9k7t 1/1 Running 2 54m
kubernetes-dashboard kubernetes-dashboard-6fcdf4f6d-c7kwf 1/1 Running 2 54m
然后我打开另一个终端 window 然后我 运行:
tomas@ubuntu20:~$ minikube dashboard
* Verifying dashboard health ...
* Launching proxy ...
* Verifying proxy health ...
* Opening http://127.0.0.1:36337/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ in your default browser...
http://127.0.0.1:36337/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
现在在我的 Windows 10 主机上,我转到网络浏览器输入:
http://127.0.0.1:36337/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
但是我得到错误:
This site can’t be reached 127.0.0.1 refused to connect.
如何从主机 OS 网络浏览器访问 minikube 仪表板?
复制
我在 Windows 10 和 ubuntu 18.04 LTS 虚拟机 运行ning 上使用 VirtualBox
.
重现了此行为
我已经尝试了 minikube drivers
: docker 和 none(最后一个意味着所有 kubernetes 组件都将在本地主机上 运行)并且行为是相同的。
会发生什么
Minikube 被设计为在本地主机上使用。当 minikube dashboard
命令为 运行 时,minikube 下载图像(指标抓取器和仪表板本身),启动它们,测试它们是否健康,然后在 localhost
上创建 运行 的代理.它不能接受虚拟机外部的连接(在这种情况下它是 Windows 主机到 ubuntu 虚拟机)。
这可以通过运行ning netstat
命令检查(截掉一些无用的输出):
$ minikube dashboard
Enabling dashboard ...
Launching proxy ...
Verifying proxy health ...
http://127.0.0.1:36317/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
$ sudo netstat -tlpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:36317 0.0.0.0:* LISTEN 461195/kubectl
如何解决
一旦 minikube dashboard
命令已 运行,kubernetes 仪表板将保留 运行ning 在 kubernetes-dashboard
命名空间中。
应该使用以下命令手动打开它的代理:
kubectl proxy --address='0.0.0.0' &
或者如果您的机器上没有安装 kubectl
:
minikube kubectl proxy -- --address='0.0.0.0' &
它将在端口 8001
上启动到 kubernetes api 服务器的代理,并将在所有地址上提供服务(它可以更改为默认虚拟框 NAT 地址 10.2.0.15
)。
下一步是在VirtualBox中添加port-forwarding
。
转到您的虚拟机 -> 设置 -> 网络 -> NAT -> 高级 -> 端口转发
添加新规则:
- 主机IP=127.0.0.1
- host port = 任何空闲端口,例如我用了8000
- 访客IP=可以留空
- guest port = 8001(代理监听的地方)
现在您可以在 Windows 主机上访问您的浏览器,粘贴 URL,更正在 host port
中分配的端口,它将起作用:
http://127.0.0.1:8000/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
有用的链接:
我正在尝试从主机 OS (Windows 10) 访问 minikube 仪表板。
Minikube 运行正在我的虚拟机 Ubuntu 20.04 服务器上运行。
主机是 Windows 10,我使用 VirtualBox 运行 我的虚拟机。
这些是我 运行 在 Ubuntu:
上的命令tomas@ubuntu20:~$ minikube start
* minikube v1.22.0 on Ubuntu 20.04 (vbox/amd64)
* Using the docker driver based on existing profile
* Starting control plane node minikube in cluster minikube
* Pulling base image ...
* Updating the running docker "minikube" container ...
* Preparing Kubernetes v1.21.2 on Docker 20.10.7 ...
* Verifying Kubernetes components...
- Using image gcr.io/k8s-minikube/storage-provisioner:v5
- Using image kubernetesui/dashboard:v2.1.0
- Using image kubernetesui/metrics-scraper:v1.0.4
* Enabled addons: storage-provisioner, default-storageclass, dashboard
* kubectl not found. If you need it, try: 'minikube kubectl -- get pods -A'
* Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
tomas@ubuntu20:~$ kubectl get po -A
Command 'kubectl' not found, but can be installed with:
sudo snap install kubectl
tomas@ubuntu20:~$ minikube kubectl -- get po -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-558bd4d5db-9p9ck 1/1 Running 2 72m
kube-system etcd-minikube 1/1 Running 2 72m
kube-system kube-apiserver-minikube 1/1 Running 2 72m
kube-system kube-controller-manager-minikube 1/1 Running 2 72m
kube-system kube-proxy-xw766 1/1 Running 2 72m
kube-system kube-scheduler-minikube 1/1 Running 2 72m
kube-system storage-provisioner 1/1 Running 4 72m
kubernetes-dashboard dashboard-metrics-scraper-7976b667d4-r9k7t 1/1 Running 2 54m
kubernetes-dashboard kubernetes-dashboard-6fcdf4f6d-c7kwf 1/1 Running 2 54m
然后我打开另一个终端 window 然后我 运行:
tomas@ubuntu20:~$ minikube dashboard
* Verifying dashboard health ...
* Launching proxy ...
* Verifying proxy health ...
* Opening http://127.0.0.1:36337/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ in your default browser...
http://127.0.0.1:36337/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
现在在我的 Windows 10 主机上,我转到网络浏览器输入:
http://127.0.0.1:36337/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
但是我得到错误:
This site can’t be reached 127.0.0.1 refused to connect.
如何从主机 OS 网络浏览器访问 minikube 仪表板?
复制
我在 Windows 10 和 ubuntu 18.04 LTS 虚拟机 运行ning 上使用 VirtualBox
.
我已经尝试了 minikube drivers
: docker 和 none(最后一个意味着所有 kubernetes 组件都将在本地主机上 运行)并且行为是相同的。
会发生什么
Minikube 被设计为在本地主机上使用。当 minikube dashboard
命令为 运行 时,minikube 下载图像(指标抓取器和仪表板本身),启动它们,测试它们是否健康,然后在 localhost
上创建 运行 的代理.它不能接受虚拟机外部的连接(在这种情况下它是 Windows 主机到 ubuntu 虚拟机)。
这可以通过运行ning netstat
命令检查(截掉一些无用的输出):
$ minikube dashboard
Enabling dashboard ...
Launching proxy ...
Verifying proxy health ...
http://127.0.0.1:36317/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
$ sudo netstat -tlpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:36317 0.0.0.0:* LISTEN 461195/kubectl
如何解决
一旦 minikube dashboard
命令已 运行,kubernetes 仪表板将保留 运行ning 在 kubernetes-dashboard
命名空间中。
应该使用以下命令手动打开它的代理:
kubectl proxy --address='0.0.0.0' &
或者如果您的机器上没有安装 kubectl
:
minikube kubectl proxy -- --address='0.0.0.0' &
它将在端口 8001
上启动到 kubernetes api 服务器的代理,并将在所有地址上提供服务(它可以更改为默认虚拟框 NAT 地址 10.2.0.15
)。
下一步是在VirtualBox中添加port-forwarding
。
转到您的虚拟机 -> 设置 -> 网络 -> NAT -> 高级 -> 端口转发
添加新规则:
- 主机IP=127.0.0.1
- host port = 任何空闲端口,例如我用了8000
- 访客IP=可以留空
- guest port = 8001(代理监听的地方)
现在您可以在 Windows 主机上访问您的浏览器,粘贴 URL,更正在 host port
中分配的端口,它将起作用:
http://127.0.0.1:8000/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/