k8s待研究项

本文探讨了使用Nginx作为微服务网关时采用upstream配置方式可能带来的风险,并提供了一种不使用upstream的替代配置方案。通过具体的Nginx配置示例,展示了不同配置方式对服务请求路由的影响。
  • 如何测试一个服务在集群内的性能?
  • kube-proxy的获取不到iptables lock问题。
  • 使用nginx做微服务gateway,其配置使用upstream方式的风险,与另一种替代方案。
    1. 使用upstream的nginx配置文件
      kubectl describe cm pasp-nginx-conf -n shb-sf-stg-ce9ef3aa
      #user  nobody;
      worker_processes  1;
      
      error_log  logs/error.log;
      
      pid        logs/nginx.pid;
      
      events {
          worker_connections  1024;
      }
      
      http {
          include       /wls/apache/nginx/nginx-1.13.3/conf/mime.types;
          default_type  application/octet-stream;
      
          #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
          #                  '$status $body_bytes_sent "$http_referer" '
          #                  '"$http_user_agent" "$http_x_forwarded_for"';
      
          #access_log  logs/access.log  main;
      
          sendfile        on;
          #tcp_nopush     on;
      
          #keepalive_timeout  0;
          keepalive_timeout  65;
      
           client_max_body_size 50M;
          log_format access '$remote_addr - $remote_user [$time_local] "$request"' '$status $body_bytes_sent "$http_referer"' '"$http_user_agent" $http_x_forwarded_for';
      
          #gzip  on;
      
          upstream pasp_core_web_upstream {
              server pasp-core-web-ui:7910;
          }
      
          upstream pasp_ws_web_upstream {
              server pasp-ws-web-ui:7910;
          }
      
          upstream aiknow_benifit_web_upstream{
              server icmp-aiknow-web-benefit-ui:7910;
          }
      
          upstream aiknow_verify_web_upstream {
              server icmp-aiknow-web-verify-ui:7910;
          }
      
          upstream pasp_aiknow_amlbl_web_upstream {
              server icmp-aiknow-web-amlbl-ui:7910;
          }
      
      
          upstream pasp_nmpr_web_upstream {
              server pasp-nmpr-web-ui:7910;
          }
      
          upstream pasp_pprk_web_upstream {
              server pasp-pprk-web-ui:7910;
          }
      
          upstream pasp_aiknow_web_rcbl_upstream {
              server pasp-aiknow-web-rcbl-ui:7910;
          }
      
          upstream pasp_eeportal_web_upstream {
              server pasp-eeportal-web-ui:7910;
          }
      
          upstream pasp_ira_web_upstream {
              server pasp-ira-web-ui:7910;
          }
      
          upstream fp_api_gateway_upstream {
              server fp-core-api-gateway.shb-sf-fp-core-stg-8af201ff:8086;
          }
      
      
          server {
              listen       7910;
              server_name  localhost;
      
          access_log  logs/host.access.log access;
      
              #charset koi8-r;
      
              #access_log  logs/host.access.log  main;
          location = / {
              proxy_set_header Host $http_host;
              proxy_set_header X-Forwarded-Host $host;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header X-Forwarded-Server $host;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              add_header Cache-Control no-store;
              proxy_pass http://pasp_core_web_upstream/pasp-web/index.html;
              }
      
              location  ~* ^/pasp-web\/(.*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$) {
              proxy_set_header Host $http_host;
                  proxy_set_header X-Forwarded-Host $host;
                  proxy_set_header X-Real-IP $remote_addr;
                  proxy_set_header X-Forwarded-Server $host;
                  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                  add_header Cache-Control no-store;
                  proxy_pass  http://pasp_core_web_upstream;
              }
      
              location ^~ /ws-web/ {
                  proxy_set_header Host $http_host;
                  proxy_set_header X-Forwarded-Host $host;
                  proxy_set_header X-Real-IP $remote_addr;
                  proxy_set_header X-Forwarded-Server $host;
                  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                  add_header Cache-Control no-store;
                  proxy_pass  http://pasp_ws_web_upstream;
              }
      
              location ^~ /aiknow-benefit-web/ {
                  proxy_set_header Host $http_host;
                  proxy_set_header X-Forwarded-Host $host;
                  proxy_set_header X-Real-IP $remote_addr;
                  proxy_set_header X-Forwarded-Server $host;
                  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                  add_header Cache-Control no-store;
                  proxy_pass  http://aiknow_benifit_web_upstream;
              }
      
              location ^~ /aiknow-verify-web/ {
                  proxy_set_header Host $http_host;
                  proxy_set_header X-Forwarded-Host $host;
                  proxy_set_header X-Real-IP $remote_addr;
                  proxy_set_header X-Forwarded-Server $host;
                  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                  add_header Cache-Control no-store;
                  proxy_pass  http://aiknow_verify_web_upstream;
              }
      
              location ^~ /aiknow-amlbl-web/ {
                  proxy_set_header Host $http_host;
                  proxy_set_header X-Forwarded-Host $host;
                  proxy_set_header X-Real-IP $remote_addr;
                  proxy_set_header X-Forwarded-Server $host;
                  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                  add_header Cache-Control no-store;
                  proxy_pass  http://pasp_aiknow_amlbl_web_upstream;
              }
      
      
              location ^~ /nmpr-web/ {
                  proxy_set_header Host $http_host;
                  proxy_set_header X-Forwarded-Host $host;
                  proxy_set_header X-Real-IP $remote_addr;
                  proxy_set_header X-Forwarded-Server $host;
                  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                  add_header Cache-Control no-store;
                  proxy_pass  http://pasp_nmpr_web_upstream;
              }
      
              location ^~ /pprk-web/ {
                  proxy_set_header Host $http_host;
                  proxy_set_header X-Forwarded-Host $host;
                  proxy_set_header X-Real-IP $remote_addr;
                  proxy_set_header X-Forwarded-Server $host;
                  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                  add_header Cache-Control no-store;
                  proxy_pass  http://pasp_pprk_web_upstream;
              }
      
              location ^~ /aiknow-rcbl-web/ {
                  proxy_set_header Host $http_host;
                  proxy_set_header X-Forwarded-Host $host;
                  proxy_set_header X-Real-IP $remote_addr;
                  proxy_set_header X-Forwarded-Server $host;
                  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                  add_header Cache-Control no-store;
                  proxy_pass  http://pasp_aiknow_web_rcbl_upstream;
              }
      
              location ^~ /eeportal-web/ {
                  proxy_set_header Host $http_host;
                  proxy_set_header X-Forwarded-Host $host;
                  proxy_set_header X-Real-IP $remote_addr;
                  proxy_set_header X-Forwarded-Server $host;
                  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                  add_header Cache-Control no-store;
                  proxy_pass  http://pasp_eeportal_web_upstream;
              }
      
              location ^~ /ira-web/ {
                  proxy_set_header Host $http_host;
                  proxy_set_header X-Forwarded-Host $host;
                  proxy_set_header X-Real-IP $remote_addr;
                  proxy_set_header X-Forwarded-Server $host;
                  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                  add_header Cache-Control no-store;
                  proxy_pass  http://pasp_ira_web_upstream;
              }
      
              location / {
                  proxy_connect_timeout 3s;
                  proxy_read_timeout 300s;
                  proxy_send_timeout 3s;
                  proxy_set_header Host $http_host;
                  proxy_set_header X-Forwarded-Host $host;
                  proxy_set_header X-Real-IP $remote_addr;
                  proxy_set_header X-Forwarded-Server $host;
                  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                  add_header Cache-Control no-store;
                  proxy_pass  http://fp_api_gateway_upstream;
              }
      
              error_page   500 502 503 504  /50x.html;
              location = /50x.html {
                  root   html;
              }
          }
      }
      
      复制代码
    2. 不使用upstream的替代方案
    kubectl describe cm pasp-nginx-conf -n shb-sf-stg-949093af
    #user  nobody;
    worker_processes  1;
    
    error_log  logs/error.log;
    
    pid        logs/nginx.pid;
    
    events {
        worker_connections  1024;
    }
    
    http {
        include       /wls/apache/nginx/nginx-1.13.3/conf/mime.types;
        default_type  application/octet-stream;
    
        #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
        #                  '$status $body_bytes_sent "$http_referer" '
        #                  '"$http_user_agent" "$http_x_forwarded_for"';
    
        #access_log  logs/access.log  main;
    
        sendfile        on;
        #tcp_nopush     on;
    
        #keepalive_timeout  0;
        keepalive_timeout  65;
    
         client_max_body_size 50M;
        log_format access '$remote_addr - $remote_user [$time_local] "$request"' '$status $body_bytes_sent "$http_referer"' '"$http_user_agent" $http_x_forwarded_for';
    
        #gzip  on;
    
        server {
            listen       7910;
            server_name  localhost;
    
        access_log  logs/host.access.log access;
    
            #charset koi8-r;
        resolver 172.254.0.2 valid=2s;
    
            #access_log  logs/host.access.log  main;
        location = / {
            proxy_set_header Host $http_host;
            proxy_set_header X-Forwarded-Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-Server $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            add_header Cache-Control no-store;
            #proxy_pass http://pasp_core_web_upstream/pasp-web/index.html;
            set $backend_servers pasp-core-web-ui.shb-sf-stg-949093af.svc.cluster.local.;
            proxy_pass http://$backend_servers:7910/pasp-web/index.html;
            }
    
            location  ~* ^/pasp-web\/(.*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$) {
                #resolver 127.0.0.11;
                proxy_set_header Host $http_host;
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-Server $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                add_header Cache-Control no-store;
                #proxy_pass  http://pasp_core_web_upstream;
                set $backend_servers pasp-core-web-ui.shb-sf-stg-949093af.svc.cluster.local.;
                proxy_pass http://$backend_servers:7910;
    
            }
    
            location ^~ /ws-web/ {
                #resolver 127.0.0.11;
                proxy_set_header Host $http_host;
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-Server $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                add_header Cache-Control no-store;
                #proxy_pass  http://pasp_ws_web_upstream;
                set $backend_servers pasp-ws-web-ui.shb-sf-stg-949093af.svc.cluster.local.;
                proxy_pass http://$backend_servers:7910;
    
            }
    
            location ^~ /aiknow-benefit-web/ {
                #resolver 127.0.0.11;
                proxy_set_header Host $http_host;
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-Server $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                add_header Cache-Control no-store;
                #proxy_pass  http://pasp_aiknow_benefit_web_upstream;
                set $backend_servers pasp-aiknow-web-benefit-ui.shb-sf-stg-949093af.svc.cluster.local.;
                proxy_pass http://$backend_servers:7910;
            }
    
            location ^~ /aiknow-amlbl-web/ {
                #resolver 127.0.0.11;
                proxy_set_header Host $http_host;
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-Server $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                add_header Cache-Control no-store;
                #proxy_pass  http://pasp_aiknow_amlbl_web_upstream;
                set $backend_servers icmp-aiknow-web-amlbl-ui.shb-sf-stg-949093af.svc.cluster.local.;
                proxy_pass http://$backend_servers:7910;
            }
    
            location ^~ /aiknow-rcbl-web/ {
                #resolver 127.0.0.11;
                proxy_set_header Host $http_host;
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-Server $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                add_header Cache-Control no-store;
                #proxy_pass  http://pasp_aiknow_amlbl_web_upstream;
                set $backend_servers pasp-aiknow-web-rcbl-ui.shb-sf-stg-949093af.svc.cluster.local.;
                proxy_pass http://$backend_servers:7910;
            }
    
             location ^~ /eeportal-web/ {
                #resolver 127.0.0.11;
                proxy_set_header Host $http_host;
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-Server $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                add_header Cache-Control no-store;
                #proxy_pass  http://pasp_aiknow_amlbl_web_upstream;
                set $backend_servers pasp-eeportal-web-ui.shb-sf-stg-949093af.svc.cluster.local.;
                proxy_pass http://$backend_servers:7910;
            }
    
    
            #location ^~ /nmpr-web/ {
            #    resolver 127.0.0.11;
            #    proxy_set_header Host $http_host;
            #    proxy_set_header X-Forwarded-Host $host;
            #    proxy_set_header X-Real-IP $remote_addr;
            #    proxy_set_header X-Forwarded-Server $host;
            #    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            #    add_header Cache-Control no-store;
            #    proxy_pass  http://pasp_nmpr_web_upstream;
            #}
    
            location / {
                #resolver 127.0.0.11;
                proxy_set_header Host $http_host;
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-Server $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                add_header Cache-Control no-store;
                #proxy_pass  http://fp_api_gateway_upstream;
                set $backend_servers fp-core-api-gateway.shb-sf-fp-core-stg-5066f14b.svc.cluster.local.;
                proxy_pass http://$backend_servers:8086;
            }
    
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
    }
    复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值