当前位置: 首页 > 知识库问答 >
问题:

kubernetes Minikube:无法从外部访问节点端口服务

韩靖琪
2023-03-14

我正在尝试在minikube(Windows-10)上部署简单的spring boot REST服务。下面是我的配置

Docker文件

FROM openjdk:8-jdk-alpine
ENTRYPOINT ["/usr/bin/java", "-jar", "/usr/share/myservice/minikube-spring-boot-demo-0.0.1-SNAPSHOT.jar"]
ADD target/minikube-spring-boot-demo-0.0.1-SNAPSHOT.jar  /usr/share/myservice/lib
ARG JAR_FILE
ADD target/${JAR_FILE} /usr/share/myservice/minikube-spring-boot-demo-0.0.1-SNAPSHOT.jar
EXPOSE 8080

docker image运行良好,我能够运行该应用程序。

docker run -p 8080:8080 minikube-spring-boot-demo:0.0.1-SNAPSHO

部署

apiVersion: apps/v1
kind: Deployment
metadata:
  name: minikube-spring-boot-demo
spec:
  selector:
    matchLabels:
      app: minikube-spring-boot-demo
      tier: backend
  replicas: 3
  template:
    metadata:
      labels:
        app: minikube-spring-boot-demo
        tier: backend
    spec:
      containers:
        - name: demo-backend
          image: nirajsonawane/minikube-spring-boot-demo:0.0.1-SNAPSHOT
          imagePullPolicy: Always
          ports:
            - containerPort: 8080

服务

apiVersion: v1
kind: Service
metadata:
  name: minikube-spring-boot-demo-service
spec:
  selector:
    app: minikube-spring-boot-demo
    tier: backend
  ports:
    - port: 8080
      targetPort: 8080
      nodePort: 30008
  type: NodePort

我无法使用< code > service-IP:node port/Uri < br > http://127 . 0 . 0 . 1:30008/hello访问restendpoint

http://172 . 17 . 0 . 2:30008/您好

我在这里错过了什么?任何输入都将是有用的。

净统计 -a 的输出

共有2个答案

潘修文
2023-03-14

您可以使用以下命令获得集群ip

kubectl get nodes -o wide

然后在下面运行以获取节点端口

kubectl get svc -o wide -n <namespace>

获取NodePort Svc的端口

那么你的应用程序将在:p(svc 节点端口)上运行。

在您的情况下,它可能运行在http://127.0.0.1:30008/hello上

翟博雅
2023-03-14

minikube在虚拟机中运行。无法通过机器外的localhost127.0.0.1访问服务。

尝试运行< code > minikube service minikube-spring-boot-demo-service 。它将显示服务详情,并在浏览器中打开服务。

 类似资料:
  • 我无法从外部访问我的服务。首先,这里是我的conf yaml文件: nginx-pod.yaml nginx-service.yaml metallb-config.yaml 然后我创建了集群。命令 打印: 一切正常,而且< code > ku bectl describe service/nginx-service 打印: curl命令在主服务器打印。接下来我试图从另一个网络打开,它不起作用,但

  • 我正在尝试访问库伯内特斯集群部署的Spring Boot微服务并尝试测试REST API。我在部署脚本中配置了节点端口方法。但是当我尝试使用Postman工具访问时,我只得到“无法获得任何响应”的响应。 我配置了服务。yaml脚本类似于以下结构, 我的部署。yaml如下所示:, 当我使用时,输出如下所示, 我正在尝试通过以下方式访问我部署的API, 更新 当我为我的部署运行命令时,我得到如下响应:

  • 我对Kubernetes和Helm图表是新的,我想在这里找到我的问题的答案。 我一直认为是向外部公开集群的端口,而port是在内部服务上公开的端口,它路由到pods上的。我从这里得到了这个理解。 但是,我似乎可以打开或,但不能打开或。我希望能够通过访问104.198.205.71,而不是通过端口。我的理解不正确吗?

  • 工作节点1上的Curl对群集IP来说是最合适的(这是运行pod的节点) Curl在其他工作节点上也失败:

  • 这是一个一般的错误,但我无法找到问题和解决方案。我的本地主机()上的Minecraft服务器位于端口上。可以通过主机的内部IP(localhost和)访问它,但无法通过外部IP()访问它。 是的。我重新启动了主机。服务器上还说 上启动Minecraft服务器 所以这一定是真的。 我可以通过驻留在设备上的一个简单的node.js服务器来验证端口是否对HTTP开放。这可以通过在同一网络上的移动设备上访

  • 在云服务器上写一个linux上运行的Http服务器时,绑定了任意IP和8080端口, 云服务器上的telnet是能直接和这个服务器交互的, 但是在浏览器 或者 在我windows上的telnet不能连接这个Http服务器(云服务器的公网ip可以ping通) 浏览器向服务器发请求时,我是会把请求的报文全打印出来的,这里没打印是没有连接上 我的防火墙全部关了也连不了,怎么办? 求大佬指教 。。。