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

