Sobes.tech
Middle+

Milliseid keerulisi ülesandeid pidite konteineritevahelise võrguside valdkonnas lahendama?

sobes.tech AI

Vastus AI-lt

Istio põhjal põhineva mesh-võrgu optimeerimine teenuste vahelises suhtluses. Vajadus oli tuvastada ja kõrvaldada kitsaskohad, mis olid seotud Service Proxy (Envoy) ülekoormuse, mTLS-i seadistuse ja poliitika mootoriga. See hõlmas Istio metrikate analüüsi (päringute kestus, vigade arv, viivitused), jaotatud päringute jälgimist ning Envoy konfiguratsiooni optimeerimist.

Dünaamiliselt skaleeritavate Kubernetes klastrite liiklusliikluse marsruutimise probleemide lahendamine. Teenuste mahu muutmisel tekkisid viivitused EndpointSlices levitamisel ja ebaõige koormuse jaotamine. See lahendati konfiguratsioonide muutmisega, kasutades agressiivsemaid cache'i aegumisi kube-proxy-s ning kasutades arenenumaid koormuse jaotamise algoritme ingress-kontrolleris (näiteks least_request).

Turvalise ja usaldusväärse vastastikuse suhtluse rakendamine konteinerite vahel erinevates alavõrkudes, rangete võrgupoliitikate (Network Policies) reeglite alusel. Poliitikate seadistamine nii, et lubataks ainult vajalik liiklus spetsiifiliste podide või namespace'ide vahel ning blokeeritakse kõik muu. See nõudis sügavat arusaamist Network Policies selektoritest ja nende rakendusmehhanismidest ning nende rakendamist kolmanda osapoole CNI plugin'ite (näiteks Calico) kaudu.

DNS-i probleemide tõrkeotsing konteinerites, eriti keskkondades, kus on mitu DNS-serverit või keerulised suunamisreeglid. Vajadus oli analüüsida liiklust podi tasandil tcpdump-i abil ning kontrollida /etc/resolv.conf konfiguratsiooni konteinerites ning CoreDNS konfiguratsiooni Kubernetes klastris.

# Näide DNS-liikluse analüüsist podis
kubectl exec <pod-name> -- tcpdump -i any udp port 53 -v
# Näide NetworkPolicy'st, mis lubab liiklust kahe namespace vahel
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-frontend-to-backend
  namespace: frontend-namespace
spec:
  podSelector:
    matchLabels:
      app: frontend
  policyTypes:
    - Egress
  egress:
    - to:
      - podSelector:
          matchLabels:
            app: backend
        namespaceSelector:
          matchLabels:
            name: backend-namespace

Võõrprotokollide kasutamise keerukuste lahendamine, mis ei ole "paki sees" toetatud Service Mesh või CNI tasemel ning nõuavad kohandatud konfiguratsioone, näiteks Envoy filtrite kirjutamist, kui protokoll erineb HTTP/1.1 või gRPC-st.