【问题标题】:accessing minikube loadbalancer service using VM host ip使用 VM 主机 ip 访问 minikube 负载均衡器服务
【发布时间】:2021-09-24 05:43:46
【问题描述】:

我有安装了 linux 7 的虚拟机(ip:10.157.156.176)。我可以通过虚拟机 IP 的 SSH 访问。

我已成功安装 Kubectl、Minikube 并创建了具有 2 个 Pod 的负载均衡器服务。

[10-157-156-176 ~]$ kubectl get nodes
NAME       STATUS   ROLES                  AGE   VERSION
minikube   Ready    control-plane,master   14h   v1.21.2
[10-157-156-176 ~]$ kubectl get svc
NAME                           TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
customers-engagement-service   LoadBalancer   10.106.146.66   <pending>     80:30654/TCP   14h
kubernetes                     ClusterIP      10.96.0.1       <none>        443/TCP        14h
[dc-user@ech-10-157-156-176 ~]$ 
[10-157-156-176 ~]$ kubectl get pods -o wide
NAME                                            READY   STATUS    RESTARTS   AGE     IP           NODE       NOMINATED NODE   READINESS GATES
customers-engagement-service-6f75f4df4b-vlpb8   1/1     Running   0          13h     172.17.0.6   minikube   <none>           <none>
customers-engagement-service-6f75f4df4b-zdjmd   1/1     Running   0          4h22m   172.17.0.5   minikube   <none>           <none>
[10-157-156-176 ~]$ minikube service customers-engagement-service --url
http://192.168.49.2:30654

我可以使用服务 URL 访问我的 VM (10-157-156-176) 中的服务

[10-157-156-176 ~]$ curl -v http://192.168.49.2:30654/customers
*   Trying 192.168.49.2:30654...
* TCP_NODELAY set
* Connected to 192.168.49.2 (192.168.49.2) port 30654 (#0)
> 
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 

我想使用主机 VM ip (10.157.156.176) 而不是 Minikube VM ip (192.168.49.2) 从不同的机器(与主机 VM 连接)访问服务。

我必须做哪些改变才能实现这一目标?

【问题讨论】:

    标签: docker kubernetes minikube


    【解决方案1】:

    对于 LoadBalancer 类型,您会看到外部 IP 处于挂起状态。您需要使用minikube tunnel 来公开它。要使用主机 IP,您需要使用 nodePort。 这是一个详细的文档:https://minikube.sigs.k8s.io/docs/handbook/accessing/

    【讨论】:

    • 我尝试过隧道,但没有按预期工作。 Minikube 正在另一个 VM (192.168.49.2) 上运行。通过隧道,我仍然无法使用主机 VM(10.157.156.176) 访问服务。
    • Minikube 为自己和虚拟机创建一个网络。如果您想在外部公开您的服务,您可以使用“端口转发服务”选项。尝试使用以下命令: service_name=web # 这是您需要用自己的服务替换的内容 service_port=$(minikube service $service_name --url | cut -d':' -f3) ssh -i ~/.minikube/ machine/minikube/id_rsa docker@$(minikube ip) -NL *:${service_port}:0.0.0.0:${service_port} (您也可以将通配符 * 替换为您的机器本地 IP 地址)。
    • 更多信息请参考链接[github.com/kubernetes/minikube/issues/877]
    猜你喜欢
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 2013-08-26
    • 1970-01-01
    • 2021-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多