使用 rancher Desktop:如何从本地笔记本电脑访问容器中运行的 Kubernetes 服务(节点端口)

And*_*scu 2 kubernetes rancher-desktop

我在我的 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
Run Code Online (Sandbox Code Playgroud)

所以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
Run Code Online (Sandbox Code Playgroud)

所以内部IP是:192.168.5.15

但是当我尝试连接到端口 32040 上的 192.168.5.15 时,我得到了connection timed out

我可以提示一下如何使用 Rancher Desktop 执行此操作吗?

谢谢你,安德烈

And*_*scu 5

我找到了一个解决方案:似乎返回的 IP kubectl get node -o wide 无法用于访问 Rancher Desktop 中 kubernetes 节点的服务(它正在名为“kind”的其他 kubernetes 集群中工作(https://kind.sigs.k8s.io / ))。

Rancher Desktop 的工作方式是直接在 localhost 上访问 NodePort 服务,因此在上面的示例中: localhost:32040