背景
某些应用会根据HTTP Header中的X-Real-IP和X-Forwarded-Host这两个字段来对客户端做一些特殊处理,如限流、分流等。当这些应用通过容器方式部署在k8s中时,这两个Header字段的值受ingress的影响。听同事提到,ingress并未将client-ip写入这两个字段,这就可能引起后端应用不能触发原本的控制逻辑。
有一篇参考的文章:https://blog.csdn.net/weixin_34150224/article/details/89545499
本文是去测试验证ingress的行为,也操练一把容器相关的部署。
环境
rancher:v2.3.2
docker:18.9.3
image build
构建一个基于flask的python http server应用,提供http协议的服务。
deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: flask-app
spec:
replicas: 1
selector:
matchLabels:
app: flask-app
strategy:
rollingUpdate:
maxSurge: 0
maxUnavailable: 1
type: RollingUpdate
te