Sobes.tech
Middle

Kā savstarpēji mijiedarbojas Kubernetes palaistās lietojumprogrammas?

sobes.tech AI

Atbilde no AI

Lietotņu savstarpējā mijiedarbība Kubernetes vidē galvenokārt notiek caur tīkla pakalpojumiem.

  1. Pakalpojumu atklāšana: Lietotnes tieši nesazinās ar podiem to IP adresēs, jo podu IP ir efemēriskas un var mainīties pārkonfigurēšanas laikā. Tā vietā tās izmanto Pakalpojumu atklāšanu, kas nodrošina stabilu DNS vārdu un IP adresi podu grupai, kas veic to pašu funkciju.

    • ClusterIP: Noklusējuma pakalpojuma tips, kas nodrošina iekšējo IP, pieejamu tikai klasterī.
    • NodePort: Atver statisku portu katrā klastera mezglā, novirzot trafiku uz ClusterIP pakalpojumu.
    • LoadBalancer: Izveido ārēju slodzes līdzsvarotāju (ja to atbalsta pakalpojuma sniedzējs).
    • ExternalName: Ļauj pakalpojumam atsaukties uz ārēju DNS vārdu.
  2. DNS: Kubernetes nodrošina iekšēju DNS serveri (piemēram, CoreDNS), kas automātiski izveido DNS vārdus pakalpojumiem. Lietotne var sazināties ar citu pakalpojumu pēc nosaukuma service-name.namespace.svc.cluster.local vai īsāk service-name.

  3. Tīkla politikas: Nosaka, kā grupas podi var mijiedarboties savā starpā un ar ārējām tīkla galapunktiem. Tās tiek izmantotas tīkla trafika izolācijai drošības nolūkos.

    apiVersion: networking.k8s.io/v1
    kind: NetworkPolicy
    metadata:
      name: deny-all-ingress
      namespace: default
    spec:
      podSelector: {} # Attiecas uz visiem podiem namespace default
      policyTypes:
      - Ingress
      ingress: [] # Aizliedz visu ienākošo trafiku
    
  4. Ingress: Pārvalda ārējo piekļuvi klastera pakalpojumiem, parasti caur HTTP/HTTPS. Ingress kontrolieris (piemēram, Nginx Ingress, Traefik) maršrutē trafiku no ārējās tīkla uz atbilstošajiem iekšējiem pakalpojumiem, balstoties uz noteikumiem, kas definēti Ingress resursā.

  5. Service Mesh: (piemēram, Istio, Linkerd) pievieno papildu līmeni un funkcionalitāti pakalpojumu savstarpējai mijiedarbībai. Tas nodrošina iespējas, piemēram, mutual TLS, pieprasījumu trasēšanu, metriku, trafika pārvaldību (A/B testēšana, kanāru izlaišana) proxy serveru līmenī (sidecar konteineros), kas pievienoti katram podam.

Tādējādi galvenie mijiedarbības mehānismi ir DNS pakalpojumu atklāšana un dažādi pakalpojumu tipi, papildināti ar tīkla politikām drošības nolūkos un Ingress/Service Mesh, lai nodrošinātu sarežģītāku trafika pārvaldību un novērojamību.