如何解决如何从外部浏览器访问minikube仪表板,部署在gcloud计算引擎上 更新
我在gcloud上创建了一个ubuntu实例,并安装了minikube及其中所有必需的依赖项。 现在,我可以从gnode终端“ curl http://127.0.0.1:8080/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/"进行卷曲了,我得到了HTML响应。
但是我想从我的笔记本电脑浏览器访问此URL。 我尝试在打开这些端口 实例节点TCP的防火墙:8080,8085,443,80,8005,8006,8007,8009,8010,7990,7992,7993,7946,4789,2376,2377
但是在用我的外部(39.103.89.09)IP 替换该URL时仍然无法访问上述URL 即http://39.103.89.09:8080/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
我认为我需要进行一些与网络相关的更改,但是不知道要做什么。
我是云计算和网络领域的新手,请帮助我。
解决方法
我怀疑minikube绑定到VM的localhost接口,导致无法从远程计算机访问它。
可能有一种方法可以运行minikube,使其绑定到0.0.0.0
,然后您就可以远程使用它了。
或者,您可以将防火墙限制为例如22
并使用SSH将VM的端口8080
端口转发到您的本地主机。 “ gcloud”也为此提供了一个帮助器:
- 确保minikube在VM上运行
-
gcloud compute ssh ${INSTANCE} --project=${PROJECT} --zone=${ZONE} --ssh-flag="-L 8080:localhost:8080"
- 尝试使用
localhost:8080/api/v1/...
从您的本地计算机访问Kubernetes端点
更新
好的,我创建了Debian VM(n1-instance-2
),分别安装了docker
和minikube
。
SSH进入实例:
gcloud compute ssh ${INSTANCE} \
--zone=${ZONE} \
--project=${PROJECT}
然后minikube start
然后:
minikube kubectl -- get namespaces
NAME STATUS AGE
default Active 14s
kube-node-lease Active 16s
kube-public Active 16s
kube-system Active 16s
minikube出现(我不熟悉)作为名为minikube
的Docker容器运行,并且向VM的(!)本地主机公开了4个端口:22
,2376
,{ {1}},5000
。后者是关键。
要确定端口映射,请关注一下:
8443
返回类似的内容
docker container ls \
--filter=name=minikube \
--format="{{.Ports}}" \
| tr,\\n
在这种情况下,我们感兴趣的端口是127.0.0.1:32771->22/tcp
127.0.0.1:32770->2376/tcp
127.0.0.1:32769->5000/tcp
127.0.0.1:32768->8443/tcp
或者:
32768
然后,退出外壳并使用docker container inspect minikube \
--format="{{ (index (index .NetworkSettings.Ports \"8443/tcp\") 0).HostPort }}"
32768
返回:
--ssh-flag
注意
gcloud compute ssh ${INSTANCE} \ --zone=${ZONE} \ --project=${PROJECT} \ --ssh-flag="-L 8443:localhost:32768"
将是本地主机上的端口;8443
是远程minikube端口
然后,从本地计算机上的另一个外壳程序中(并且端口转发32768
在另一个外壳程序中继续),拉动ssh
,ca.crt
和client.key
:
client.crt
现在,创建一个配置文件,将其命名为gcloud compute scp \
$(whoami)@${INSTANCE}:./.minikube/profiles/minikube/client.* \
${PWD} \
--zone=${ZONE} \
--project=${PROJECT}
gcloud compute scp \
$(whoami)@${INSTANCE}:./.minikube/ca.crt \
${PWD} \
--zone=${ZONE} \
--project=${PROJECT}
:
kubeconfig
最后,
apiVersion: v1
clusters:
- cluster:
certificate-authority: ./ca.crt
server: https://localhost:8443
name: minikube
contexts:
- context:
cluster: minikube
user: minikube
name: minikube
current-context: minikube
kind: Config
preferences: {}
users:
- name: minikube
user:
client-certificate: ./client.crt
client-key: ./client.key
应该产生:
KUBECONFIG=./kubeconfig kubectl get namespaces
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。