使用nginx的pod 代理到traefik 的服务进行访问,使用traefik自己调度进行负载等,但是调试开始成功没有问题,后续测试 service的更改后,发现使用nginx的pod 的代理无法访问后端的pod。
每个pod 重启后 pod 是可以互相访问没有任何问题, 但是使用nginx的pod 代理 proxy_pass 到后端 比如 daili-nginx/a1app 这个地址是 nginx pod 对 重新replace 的服务 或更新yaml的服务是无法访问。
1、 测试configMap 把nginx的config 文件进行热处理,configmap 挂载后可以实时更新, 这个只是对config 文件的更新。 测试后还是无法代理访问到后端的 pod , 每个代理pod 进行 nginx reload 后可以进行代理访问。
2、解决问题的方式是采用了 创建服务固定服务ip的方式进行解决这个问题,
apiVersion: v1
kind: Service
metadata:
name: my-nginx
labels:
app: my-nginx
spec:
# sessionAffinity: ClientIP
# sessionAffinityConfig:
# clientIP:
# timeoutSeconds: 60
clusterIP: 10.254.63.240
ports:
- port: 80
selector:
app: my-nginx
进行手动配置 集群ip 解决此问题。 以后代理的pod 互相访问集群也相应解决网络问题。
没有贴图,大概意思,就是集群ip固定后可以使用nginx的pod 代理到traefik, 这个比nodePort 要高明一点我觉得是。
北京kubernetes交流,k8s,Docker容器,群想进多多人,好交流,大家快来吧 :277473551