Ada Hakka's Blog

May the force be with you.

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

posted on 2019-11-25 15:48  Adahakka  阅读(1082)  评论(0编辑  收藏  举报

导航