Configurez Istio într-un nou cluster AWS EKS și am creat o implementare de bază nginx pentru a testa. Când implementarea are o singură replică, funcționează perfect, răspunzând în mai puțin de 100 ms.
Când adaug o replică, timpul de răspuns al noului pod crește ca nebun, cu o medie de aproximativ 10 secunde.
Pe baza sugestiilor din altă parte, am actualizat config mesh pentru a dezactiva reîncercările automate:
meshConfig:
defaultHttpRetryPolicy: {}
După ce s-a întâmplat acest lucru, am constatat că solicitările către al doilea pod eșuează întotdeauna:
"GET / HTTP/1.1" 503 UF upstream_reset_before_response_started{connection_failure} - "-" 0 91 10003 - "108.249.9.111,10.1.0.117" "curl/7.68.0" "6fa5491db4" "6fa5491dbd4" - "6fa549.0. example.com" "10.1.52.62:80" outbound|80||nginx.my-namespace.svc.cluster.local - 10.1.108.189:8080 10.1.0.117:21410 - -
Configurația mea este următoarea:
# AWS ALB Ingress -> istio-ingressgateway (ClusterIP) -> gateway -> virtualservice -> service -> nginx
apiVersion: networking.istio.io/v1beta1
fel: Gateway
metadate:
nume: implicit
specificație:
selector:
istio: ingressgateway
servere:
- port:
număr: 80
nume: http
protocol: HTTP
gazde:
- "*"
---
apiVersion: networking.istio.io/v1beta1
fel: VirtualService
metadate:
nume: nginx
specificație:
gazde:
- „example.com”
gateway-uri:
- Mod implicit
http:
- traseu:
- destinatie:
gazdă: nginx
---
apiVersion: v1
fel: Serviciu
metadate:
nume: nginx
etichete:
aplicație: nginx
specificație:
selector:
aplicație: nginx
porturi:
- port: 80
nume: http
---
apiVersion: apps/v1
fel: Desfăşurare
metadate:
nume: nginx
etichete:
aplicație: nginx
versiunea: v1
specificație:
replici: 2
revisionHistoryLimit: 1
selector:
matchLabels:
aplicație: nginx
versiunea: v1
șablon:
metadate:
etichete:
aplicație: nginx
versiunea: v1
specificație:
containere:
- nume: nginx
imagine: nginx:latest
porturi:
- containerPort: 80
resurse:
cereri:
memorie: 100 Mi
CPU: 100 m
limite:
memorie: 1500 Mi
CPU: 1000 m
Versiuni:
$ versiunea istioctl
versiunea client: 1.13.2
versiunea planului de control: 1.13.2
Versiunea planului de date: 1.13.2 (1 proxy)
$ kubectl versiune --short
Versiunea client: v1.21.11
Versiunea serverului: v1.21.5-eks-bc4871b