Kubernetes:如何访问本地主机上的服务 - 不是节点而是服务

Chr*_* G. 6 kubernetes

更新:

\n\n

找到了这个,但这是正确的方法吗?

\n\n

我可以看到我可以对 e 节点进行 portforward,例如:

\n\n
kubectl port-forward hello-nginx 8080:80\n
Run Code Online (Sandbox Code Playgroud)\n\n

但我想玩并尝试扩展和访问服务。\n我已经启动了该服务:

\n\n
kubectl expose deployment hello-nginx --type=NodePort\n\nservice \xe2\x80\x9chello-nginx\xe2\x80\x9d exposed\n
Run Code Online (Sandbox Code Playgroud)\n\n

进而:

\n\n
kubectl get services\n\nrolling-sponge-hello-world   ClusterIP   10.104.12.39   <none>        80/TCP    3d\n
Run Code Online (Sandbox Code Playgroud)\n\n

那么如何代理到kubernetes服务呢?

\n\n

注意:运行 Docker for Mac(Edge)。

\n

Jos*_*sto 6

正如您提到的,最好的方法是使用 Ingress。这样,您可以向本地计算机 IP 发送请求,Ingress 控制器会将流量发送到右侧Pods

为此,您需要:

  • 创建入口规则来描述您希望入口控制器如何将流量路由到您的Pods. 这些规则可以Pods根据请求中的路径或主机将流量重定向到特定的地址。
  • 部署一个遵循这些规则的 Ingress 控制器,例如nginx Ingress 控制器您可以在这篇博文中了解如何部署它。

这篇博文专门讨论了 Mac 版 Docker 和 Ingress。