Minikube springboot 收到请求但没有正确响应

Minikube springboot receive request and doesn't respond correctly

我刚开始使用 kubernetes 和 docker,但遇到了一个问题。

在将其转换为 docker 图像(使用 minikube 的 docker)后,在 minikube 上部署了一个 springboot 应用程序...该应用程序已在线并尽可能好地接收请求在下面的屏幕截图中看到,但没有按预期回复。

例如,当我正常部署应用程序时(像往常一样在我的计算机上)一切正常,我可以继续所有 html 页面等,但是一旦部署在 minikube 中,它就无法正确回复。 (所有工作部分是 spring 的 favicon 的接收)

用于部署应用程序的 YAML:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: esse-deployment-1
  labels:
    app: esse
spec:
  replicas: 1
  selector:
    matchLabels:
      app: esse-1
  template:
    metadata:
      labels:
        app: esse-1
    spec:
      containers:
      - image: mysql:5.7
        name: esse-datasource
        ports:
        - containerPort: 3306
        env: 
          - name: MYSQL_ROOT_PASSWORD
            value: esse_password 
      - image: esse_application
        name: esse-app-1
        imagePullPolicy: Never
        ports:
        - containerPort: 8080
      volumes:
        - name: esse-1-mysql-persistent-storage
          persistentVolumeClaim:
            claimName: mysql-persistent-storage-claim
---

apiVersion: v1
kind: Service
metadata:
  name: esse-service-1
spec:
  selector:
    app: esse-1
  ports:
    - protocol: TCP
      port: 8080
  type: NodePort

----

kind: PersistentVolume
apiVersion: v1
metadata:
  name: mysql-persistent-storage
  labels:
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 1Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/home/docker/data"

---

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: mysql-persistent-storage-claim
spec:
  storageClassName: manual
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 200Mi

Docker 构建图像的文件:

FROM openjdk:8
ADD ESSE_Application.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]

我可以看到您有 .yml 文件来定义部署和服务,但我看不到 "Ingress"。需要 kind: Route 的 .yml 文件来告诉 kubernetes 应该有一个外部 url 指向您的服务;最小 Ingress 资源示例:

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: test-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - http:
      paths:
      - path: /testpath
        backend:
          serviceName: test
          servicePort: 80

**请不要按字面理解这段代码,我只是想在这里起草一些示例代码,可能与您的 naming/data :)

不完全匹配

终于解决了问题

一切正常,因为我从 Eclipse IDE 启动应用程序,并且在打包 .jar 文件时,jps[= /webapp/WEB-INF/jsps 文件夹中包含的 29=] 文件未包含在 .jar 文件中,甚至包含它们也会抛出 <resources> 文件中的标签没有解决问题,因为 jar 包装不适合 jsp 文件。

我通过在 pom.xml 文件中添加 <packaging>war</packaging> 来更改打包方法来解决问题,因为 .jsp 文件感觉很舒服在 .war 文件中。

感谢@Marc 的帮助。