背景:最近我們在將服務遷移到k8s集群,原來的架構是客戶端-->cdn-->alb-->nginx-->后端服務,遷移到k8s集群后的架構是客戶端-->cdn-->alb-->nginx-->ingress-nginx-->后端服務。隨着遷移進度的增加,發現偶爾nginx會報“no live upstreams while connecting to upstream”
通過排查分析源碼發現當rc等於NGX_BUSY的時候,就會記錄“no live upstreams”的錯誤。
解決:
增大長連接,原來 keepalive 配置的是5000;將其增加一倍,改為10000;並增加了ingress的upstream節點數,原來只配了三台,所以增加兩台。