首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Kubernetes NodePort url被改为"minikube service <service>“

Kubernetes NodePort url被改为"minikube service <service>“
EN

Stack Overflow用户
提问于 2021-10-04 15:52:46
回答 2查看 382关注 0票数 1

我创建了一个NodePort来转发来自30101->80->8089端口的请求

代码语言:javascript
运行
复制
apiVersion: v1
kind: Service
metadata:
  name: gorest-service
spec:
  type: NodePort
  selector:
    app: gorest
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8089
      nodePort: 30101

当我尝试获取服务URL http://192.168.49.2:30101时,我无法访问它,但是使用使用minikube service <service>检索的url http://127.0.0.1:64741,我可以访问它。

查询:无法理解http://192.168.49.2:30101如何更改为由minikube service <service>检索的http://127.0.0.1:64741

代码语言:javascript
运行
复制
 % minikube service gorest-service
|-----------|----------------|-------------|---------------------------|
| NAMESPACE |      NAME      | TARGET PORT |            URL            |
|-----------|----------------|-------------|---------------------------|
| default   | gorest-service |        8089 | http://192.168.49.2:30101 |
|-----------|----------------|-------------|---------------------------|
  Starting tunnel for service gorest-service.
|-----------|----------------|-------------|------------------------|
| NAMESPACE |      NAME      | TARGET PORT |          URL           |
|-----------|----------------|-------------|------------------------|
| default   | gorest-service |             | http://127.0.0.1:64741 |
|-----------|----------------|-------------|------------------------|
  Opening service default/gorest-service in default browser...
❗  Because you are using a Docker driver on darwin, the terminal needs to be open to run it.
EN

回答 2

Stack Overflow用户

发布于 2021-10-04 16:21:23

在您的清单文件中,您将容器内的服务端口从端口80重新映射到端口8089。

如果您想访问kubernetes内部的服务,您必须使用8089端口。

但是您不能从外部世界访问K8s内部的服务:您需要公开它们(您应该使用负载均衡器或出口服务)。

Minikube是用来发展的。您看到的64741端口是一个隧道服务,它启动minikube,允许您在不使用出口的情况下测试和调试k8s之外的服务(这可能不仅仅是将服务连接到外部世界,例如验证或授权请求)。

票数 0
EN

Stack Overflow用户

发布于 2021-10-05 07:38:23

您的理解是正确的,使用NodePort公开的服务应该可以在minikube_IP:NodePort上访问。首先,我在安装了minikube的Linux上检查了它,它成功了。

然后我注意到你在用MacOS

因为你用的是达尔文的码头司机

这就给我们带来了一些限制,在MacOS上,迷你库与码头司机一起运行。请看这个GitHub问题

至少有两个选项(更多,但这些选项很简单):

  • 使用minikube tunnel你所做的,它对你有用。

隧道用于从VM内部公开服务,其中minikube正在运行到主机的网络。请参考minikube的access应用程序。这就是minikube_IP:NodePort如何转换为localhost:different_port的方式。

  • 使用VirtualBox驱动程序启动minikube以获得适当的IP (如果您确实需要在NodePort上访问您的服务),下面的命令是如何使用VirtualBox驱动程序启动它(这应该安装在您的计算机上):

minikube start --driver=VirtualBox

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69438912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档