Kubernetes:如何访问本地主机上的服务-不是节点而是服务
更新: 找到了,但这是正确的方法吗 我可以看到我可以执行portforward到e节点,如:Kubernetes:如何访问本地主机上的服务-不是节点而是服务,kubernetes,Kubernetes,更新: 找到了,但这是正确的方法吗 我可以看到我可以执行portforward到e节点,如: kubectl port-forward hello-nginx 8080:80 但我想玩游戏,尝试扩展和访问服务。 我已启动服务: kubectl expose deployment hello-nginx --type=NodePort service “hello-nginx” exposed 然后: kubectl get services rolling-sponge-hello-wo
kubectl port-forward hello-nginx 8080:80
但我想玩游戏,尝试扩展和访问服务。
我已启动服务:
kubectl expose deployment hello-nginx --type=NodePort
service “hello-nginx” exposed
然后:
kubectl get services
rolling-sponge-hello-world ClusterIP 10.104.12.39 <none> 80/TCP 3d
kubectl获取服务
滚动海绵hello world ClusterIP 10.104.12.39 80/TCP 3d
那么如何代理kubernetes服务
注意:运行Docker for Mac(Edge)。如您所述,最好的方法是使用入口。这样,您就可以向本地机器IP发送请求,入口控制器就会将流量发送到右侧的
Pods
为此,您需要:
- 创建描述入口控制器如何将流量路由到
吊舱的文件。这些规则可以根据请求中的路径或主机将流量重定向到特定的
pod
- 部署将遵循这些规则的入口控制器,如。您可以学习如何在中部署它
专门讨论Docker for mac和Ingress。看起来kubectl get services的输出与您创建的服务不匹配。创建“节点端口”服务时,输出显示“ClusterIP”。NodePort类型允许通过其在每个节点的IP上打开的节点端口代理服务
您也可以使用
kubectl description service hello nginx
提取节点端口,但示例使用minikubeI,我们已经用一篇专门讨论Docker for Mac的新帖子更新了答案。