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

时间:2020-04-03 16:31:47

标签: spring-boot kubernetes minikube

我正在尝试在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镜像运行良好,我能够运行该应用程序。

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

kubectl获得所有状态 enter image description here

kubectl集群信息 enter image description here

迷你库日志 enter image description here

服务详细信息 enter image description here

我无法使用service-ip:Nodeport/Uri访问其余端点
http://127.0.0.1:30008/hello

http://172.17.0.2:30008/hello

我在这里想念什么吗?任何输入都会有用。

netstat -a

的输出

enter image description here

2 个答案:

答案 0 :(得分:2)

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

尝试运行minikube service minikube-spring-boot-demo-service。它将显示服务详细信息并在浏览器中打开服务。

答案 1 :(得分:0)

您可以使用下面的命令

kubectl get nodes -o wide

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

kubectl get svc -o wide -n <namespace>

获取NodePort Svc的端口

然后您的应用程序将在http://:port(svc Nodeport)上运行

就您而言,它可能正在运行 http://127.0.0.1:30008/hello