Puncte:0

Poarta de intrare Istio nu se poate conecta la mai mult de o replică pentru un serviciu

drapel in

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
Puncte:0
drapel in

Mi-am dat seama că problema mea se datora unor reguli de grup de securitate configurate greșit pentru noduri. Nu permiteam traficul nod la nod, împiedicând gateway-ul de intrare istio să comunice cu pod-urile din alte noduri.

Folosind modulul AWS EKS Terraform, am adăugat următoarele:


  node_security_group_additional_rules = {

    ingress_self_all = {
      description = "Nod la nod toate porturile/protocoalele"
      protocol = "-1"
      din_port = 0
      spre_port = 0
      tip = "intrare"
      self = adevărat
    }
    egress_all = {
      description = „Nod all egress”
      protocol = "-1"
      din_port = 0
      spre_port = 0
      tip = "ieșire"
      cidr_blocks = ["0.0.0.0/0"]
    }
  }

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.