我想連接一個打開 TCP 連接的移動設備到我的一個 kubernetes 服務。問題是在10分鐘的心跳間隔之前連接被殺死。
下面是我的部署
apiVersion: apps/v1
kind: Deployment
metadata:
name: device-gateway
labels:
app: device-gateway
spec:
replicas: 1
strategy:
rollingUpdate:
maxUnavailable: 0
selector:
matchLabels:
app: device-gateway
template:
metadata:
labels:
app: device-gateway
spec:
containers:
- name: device-gateway
image: [IMAGE]
imagePullPolicy: Always
imagePullSecrets:
- name: myregistrykey
---
apiVersion: v1
kind: Service
metadata:
name: device-gateway
spec:
type: ClusterIP
ports:
- name: my-device-port
port: 8485
protocol: TCP
selector:
app: device-gateway
我嘗試在 Ingress 中設定以下注釋
nginx.ingress.kubernetes.io/proxy-socket-keepalive: "on"
nginx.ingress.kubernetes.io/proxy-send-timeout: "1800s"
nginx.ingress.kubernetes.io/proxy-stream-timeout: "1800s"
nginx.org/proxy-send-timeout: "1800s"
service.beta.kubernetes.io/azure-load-balancer-tcp-idle-timeout: "30"
此外,公共 IP 中的“空閑超時”設定為 30 分鐘。LoadBalancer 規則也是如此。
我像這樣安裝了入口控制器:
helm install nginx-ingress ingress-nginx/ingress-nginx \
--set tcp.8485="default/device-gateway:8485" \
--set [more irrelevant settings here]
我猜它與配置有關,那么如何將超時設定為 30 分鐘?
uj5u.com熱心網友回復:
我已經發布了社區 wiki 答案來總結該主題。
OP 找到了解決方法。他在評論中提到了這一點:
我沒有找到問題的解決方案,但我確實通過每隔 5 分鐘發送一次心跳以保持線路暢通來消除問題。
我找到了有關為 Azure 負載均衡器配置 TCP 重置和空閑超時的文章。它可以幫助從Azure 門戶設定 tcp 重置和空閑超時。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/360695.html
標籤:天蓝色 nginx Kubernetes 暂停 Kubernetes 入口
