使用牧场主桌面:如何从本地笔记本电脑访问在container中运行的Kubernetes服务(节点端口)

0tdrvxhp  于 2022-11-02  发布在  Kubernetes
关注(0)|答案(1)|浏览(168)

我在我的ubuntu笔记本电脑上运行Rancher Desktop。我有一个在kubernetes容器中运行mongodb的容器:

$ kubectl get all
NAME                                                 READY   STATUS              RESTARTS       AGE
pod/mongo-deployment-7fb46bd85-vz9th                 1/1     Running             0              37m

NAME                                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)           AGE
service/kubernetes                   ClusterIP   10.43.0.1       <none>        443/TCP           3d17h
service/mongo-service                NodePort    10.43.132.185   <none>        27017:32040/TCP   37m

NAME                                            READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/mongo-deployment                1/1     1            1           37m

NAME                                                       DESIRED   CURRENT   READY   AGE
replicaset.apps/mongo-deployment-7fb46bd85                 1         1         1       37m

因此mongo服务的节点端口为:32040。

我找到了kubernetes节点的本地ip:

$ kubectl get node -o wide
NAME                   STATUS   ROLES                  AGE     VERSION        INTERNAL-IP    EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION   CONTAINER-RUNTIME
lima-rancher-desktop   Ready    control-plane,master   3d17h   v1.23.6+k3s1   192.168.5.15   <none>        Alpine Linux v3.15   5.15.32-0-virt   containerd://1.5.11

因此内部IP为:192.168.5.15

但是当我尝试192.168.5.15在端口32040上连接到www.example.com时,我得到的是connection timed out
我可以有一个提示,如何做到这一点与牧场主桌面?
谢谢你,安德烈

dsekswqp

dsekswqp1#

我找到了一个解决办法:kubectl get node -o wide返回的ip似乎无法用于访问Rancher Desktop中的kubernetes节点的服务(它在名为“kind”(https://kind.sigs.k8s.io/)的其他kubernetes集群中工作)。
Rancher Desktop的工作方式是直接在localhost上访问NodePort服务,因此在上面的示例中:本地主机:32040

相关问题