1

k8s~Ingress转发出现502的问题

 1 year ago
source link: https://www.cnblogs.com/lori/p/17262838.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

目前在对接keycloak过程中,通过云端LB到ingress,再由ingress到k8s-service,在配置完成之后,偶发出现502的情况。

ingress的配置,先是实现了客户端的会话保持

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  namespace: pkulaw-cas-final
  name: nginx-keycloak
  annotations:
    nginx.ingress.kubernetes.io/affinity: "cookie"
    nginx.ingress.kubernetes.io/session-cookie-name: "route"
    nginx.ingress.kubernetes.io/session-cookie-expires: "172800"
    nginx.ingress.kubernetes.io/session-cookie-max-age: "172800"

spec:
  rules:
    - host: xxx.product.com
      http:
        paths:
          - backend:
              serviceName: keycloak
              servicePort: 8080
            path: /

出现502

118538-20230327204829423-1332175493.png

需要添加proxy-buffer-number的注释解决问题

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  namespace: pkulaw-cas-final
  name: nginx-keycloak
  annotations:
    nginx.ingress.kubernetes.io/affinity: "cookie"
    nginx.ingress.kubernetes.io/session-cookie-name: "route"
    nginx.ingress.kubernetes.io/session-cookie-expires: "172800"
    nginx.ingress.kubernetes.io/session-cookie-max-age: "172800"
    nginx.ingress.kubernetes.io/proxy-buffer-size: "16k" #缓冲区大小
    nginx.ingress.kubernetes.io/proxy-buffers-number: "8" #缓冲区数据,不加它参数多时返回502

其它缓冲区配置

启用或禁用代理缓冲proxy_buffering。默认情况下,NGINX配置中禁用代理缓冲。

要为所有Ingress规则全局配置此设置,proxy-buffering可以在NGINX ConfigMap中设置该值。要在Ingress规则中使用自定义值,请定义以下注释:

nginx.ingress.kubernetes.io/proxy-buffering: "on"
代理缓冲区数

设置proxy_buffers用于读取从代理服务器接收到的响应的第一部分的缓冲区数。默认情况下,代理缓冲区数设置为4

要全局配置此设置,请proxy-buffers-number在NGINX ConfigMap中进行设置。要在Ingress规则中使用自定义值,请定义以下注释:

nginx.ingress.kubernetes.io/proxy-buffers-number: "4"
代理缓冲区大小

设置proxy_buffer_size用于读取从代理服务器接收到的响应的第一部分的缓冲区的大小。默认情况下,代理缓冲区大小设置为“ 4k”

要全局配置此设置,请proxy-buffer-size在NGINX ConfigMap中进行设置。要在Ingress规则中使用自定义值,请定义以下注释:

nginx.ingress.kubernetes.io/proxy-buffer-size: "8k"
代理最大临时文件大小

如果buffering启用了来自代理服务器的响应,并且整个响应不适合通过proxy_buffer_size和proxy_buffers指令设置的缓冲区,则可以将响应的一部分保存到临时文件中。此伪指令设置size临时文件的最大值,设置为proxy_max_temp_file_size。一次写入临时文件的数据大小由proxy_temp_file_write_size指令设置。

零值禁用对临时文件的响应的缓冲。

要在Ingress规则中使用自定义值,请定义以下注释:

nginx.ingress.kubernetes.io/proxy-max-temp-file-size: "1024m"


Recommend

  • 15

    记一次阿里云负载均衡502问题排查 作者: wencst 分类: linux,云计算...

  • 14
    • www.jianshu.com 3 years ago
    • Cache

    使用ingress-nginx访问k8s内服务

    使用ingress-nginx访问k8s内服务bin_x0.0772020.09.09 01:35:49字数 807阅读 2,009在撘完kubernetes后,外部流量无法访问内部的服务。...

  • 5
    • www.v2ex.com 3 years ago
    • Cache

    k8s 使用 ingress 接口卡住

    k8s 使用 ingress 接口卡住 V2EX  ›  Kubernetes k8s 使用 ingress 接口卡住  

  • 5
    • www.cnblogs.com 2 years ago
    • Cache

    k8s~云负载转发ingress解析

    k8s~云负载转发ingress解析 - 张占岭 - 博客园 敢于对过去告一个段落,才有信心掀开新的篇章! 关注:架构设计、领域驱动、统一认证、微服务、分布式、容器编排、持续集成、自动化测试、设计模...

  • 10
    • www.cnblogs.com 2 years ago
    • Cache

    k8s入门之Ingress(七) - 景少

    k8s入门之Ingress(七) Ingress 的功能其实很容易理解:所谓 Ingress,就是 Service 的“Ser...

  • 5
    • zhangrr.github.io 2 years ago
    • Cache

    k8s中nginx ingress的性能优化

    kubernetes 中 nginx ingress 的优化分两部分 一、系统sysctl部分优化 首先是对nginx启动前的系统性能进行优化,这部分调整网络的缓冲区,减小闲置 socket 关闭的时间 以阿里 ACK 为例,我们可以编辑 deployments 的 nginx-ingress-cont...

  • 3

    k8s部署-43-带你深入学习ingress-nginx(下)_12376780的技术博客_51CTO博客很多情况下,nginx会代理https协议,那么我们的ingress-nginx是如何实现这个功能呢,下面看看。我这里没有https证书,所以需要自己生成https证书;

  • 15
    • www.dosk.win 2 years ago
    • Cache

    适用于 k8s 的 frpc ingress 实现

    Usage 我建立了一个 helm repo 用来快速部署,步骤如下 helm repo add infinity-server https://infinity-s...

  • 13
    • www.cnblogs.com 1 year ago
    • Cache

    k8s~ingress限流机制

    Ingress限流 限速的注解定义了对连接和传输速率的限制。这些可以用来减轻DDoS攻击。它采用了 “漏斗” 算法实现限制。

  • 4

    问题的产生 对于我们的容器化部署项目keycloak来说,当它从云端负载均衡LB直接通过 NodePort转发到keycloak时,没有任务问题,一切正常;缺点就是,运维人员要维护一大批端口,哪个端口对应哪个服务,非常容易出乱子。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK