k8s ingress 轉發服務,內容顯示不全問題


0x00 事件

部署了 ingress ,並聲明了兩個路由 /eureka/tomcat/eureka 轉發到了 eureka server 的服務端口,/tomcat 轉發到了 tomcat 的端口。

yaml 文件是這樣的:

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: nginx-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - host: xxx.xxx.xxx
    http:
      paths:
      - path: /tomcat
        backend:
          serviceName: webapp
          servicePort: 8080
      - path: /eureka
        backend:
          serviceName: eureka-server
          servicePort: 2000

但是通過 ingress 定義的域名加路由訪問服務時候,卻發現服務的頁面加載不全:
訪問 xxx.xxx.xxx/eureka

訪問 xxx.xxx.xxx/tomcat

0x01 排查方案

在做了一些排查之后,發現只有把對應的域名的 / 轉發到相應服務,才能把頁面加載完全。

修改之后的 yaml 文件:

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: nginx-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - host: xx.xx.xx
    http:
      paths:
      - path: /
        backend:
          serviceName: eureka-server
          servicePort: 2000
  - host: nn.nn.nn
    http:
      paths:
      - path: /
        backend:
          serviceName: webapp
          servicePort: 8080

重新部署之后,直接訪問 xx.xx.xx

訪問 nn.nn.nn


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM