![](/img/trans.png)
[英]After the Pod is injected into the sidecar of istio, the websocket connection will be interrupted abnormally
[英]Istio Sidecar Connection Pooling?
我整天都在閱讀文檔,但我似乎無法讓它發揮作用。
我有一個不守規矩的應用程序,它為每個 HTTP 請求打開一個連接。 我想通過在長壽命的 TCP 連接上強制 HTTP 多路復用來提高性能。
我嘗試制作 ServiceEntry 和 DestinationRule,但我沒有看到有任何效果。 我仍然看到大量的 TCP 連接。
我認為 Istio 會通過來自DestinationRule的maxRequestsPerConnection
來匯集連接。 那是錯的嗎?
我想我需要:
總的來說,盡管我希望 Envoy 側車僅匯集和多路復用此服務的所有出口連接,無論目的地如何。
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: api
spec:
host: google.com
trafficPolicy:
connectionPool:
tcp:
maxConnections: 100
connectTimeout: 30ms
tcpKeepalive:
time: 7200s
interval: 75s
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
name: api
spec:
hosts:
- google.com
location: MESH_EXTERNAL
ports:
- number: 443
name: https
protocol: TLS
resolution: DNS
istioctl -i istio proxy-config cluster api.namespace
...
google.com 443 - outbound STRICT_DNS api.namespace
...
istioctl -i istio proxy-config cluster api.namespace --fqdn google.com -o json
"circuitBreakers": {
"thresholds": [
{
"maxConnections": 100,
"maxPendingRequests": 4294967295,
"maxRequests": 4294967295,
"maxRetries": 4294967295,
"trackRemaining": true
}
]
},
"upstreamConnectionOptions": {
"tcpKeepalive": {
"keepaliveTime": 7200,
"keepaliveInterval": 75
}
},
好的,所以我認為我在上面的問題中發現的是maxConnections
不會導致 Envoy 代理創建一個具有 100 個連接的池。 相反,這會設置一個斷路規則,阻止應用程序打開更多連接。
也許我需要使用 HTTP 連接池?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.