使用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

 

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐