如何配置minikube仪表板的外部IP地址?

Jos*_*ang 1 docker kubernetes minikube

我在 Windows 10 上使用 docker desktop 和 minikube。我使用minikube docker-env如下命令找到了本地 docker 存储库的 IP 地址,

> minikube docker-env
SET DOCKER_TLS_VERIFY=1
SET DOCKER_HOST=tcp://172.17.105.232:2376
SET DOCKER_CERT_PATH=C:\Users\joseph\.minikube\certs
SET MINIKUBE_ACTIVE_DOCKERD=minikube
REM To point your shell to minikube's docker-daemon, run:
REM @FOR /f "tokens=*" %i IN ('minikube -p minikube docker-env') DO @%i
Run Code Online (Sandbox Code Playgroud)

并且我将 docker daemon 的 ip 地址设置为上述DOCKER_HOST值,而不是localhost我可以使用本地构建的 docker 图像而不会出错。但是在 minikube 仪表板的情况下,当我输入minikube dashboard命令时,IP 地址总是 localhost(127.0.0.1) 。所以我无法生成 kubernetes 命名空间和持久卷。它抛出错误

服务器找不到请求的资源

我认为这个问题是不同IP地址的授权问题。如何在 minukube 仪表板上配置静态或特定 ip 地址和端口号,以便我可以在 minikube 仪表板上生成命名空间和持久卷而不会出现此类错误?

Mat*_*att 8

如果我理解正确,您正在尝试从远程主机访问 kubernetes 仪表板。运行时minikube dashboard,minikube binary 在后台运行kubectl proxy命令

默认情况下运行kubectl proxy绑定到本地机器的环回接口,因此它不能从外部访问。

您不能更改 minikube cli bahaviour(不更改源代码),但您可以做的是记下仪表板的路径:

/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
Run Code Online (Sandbox Code Playgroud)

kubectl proxy并由您自己添加--address0.0.0.0值的参数运行。

所以现在运行这个你会看到:

$ kubectl proxy --address 0.0.0.0
Starting to serve on [::]:8001
Run Code Online (Sandbox Code Playgroud)

现在打开远程主机上的浏览器并转到:

<your-host-external-ip>:8001/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
Run Code Online (Sandbox Code Playgroud)

就是这样。如果有帮助,请告诉我。

  • 哦,是的,抱歉,那是因为您还需要将 `--accept-hosts &lt;your-host-extenal-ip&gt;` 添加到 kubectl 代理命令中,请尝试此操作,让我知道它是否适合您 (3认同)