Sobes.tech
Middle

Ako medzi sebou komunikujú spustené aplikácie v Kubernetes?

sobes.tech AI

Odpoveď od AI

Interakcia medzi aplikáciami v Kubernetes prebieha predovšetkým prostredníctvom sieťových služieb.

  1. Objavovanie služieb: Aplikácie sa nepriamo pripájajú k podom cez ich IP adresy, pretože IP adresy podov sú efemérne a môžu sa meniť pri prekonfigurovaní. Namiesto toho používajú Objavovanie služieb, ktoré poskytuje stabilné DNS meno a IP adresu pre skupinu podov vykonávajúcich rovnakú funkciu.

    • ClusterIP: Predvolený typ služby, ktorý poskytuje vnútornú IP adresu dostupnú iba v rámci klastru.
    • NodePort: Otvára statický port na každom uzle klastru, ktorý presmerováva prenos na službu ClusterIP.
    • LoadBalancer: Vytvára vonkajší vyvažovač záťaže (ak ho poskytovateľ cloud podporuje).
    • ExternalName: Umožňuje službe odkazovať na externé DNS meno.
  2. DNS: Kubernetes poskytuje vnútorný DNS server (napríklad CoreDNS), ktorý automaticky vytvára DNS mená pre služby. Aplikácia sa môže pripájať k inej službe podľa mena service-name.namespace.svc.cluster.local alebo skráteného service-name.

  3. Sieťové politiky: Určujú, ako môžu skupiny podov navzájom komunikovať a s vonkajšími sieťovými bodmi. Používajú sa na izoláciu sieťového prenosu z bezpečnostných dôvodov.

    apiVersion: networking.k8s.io/v1
    kind: NetworkPolicy
    metadata:
      name: deny-all-ingress
      namespace: default
    spec:
      podSelector: {} # Platí pre všetky pody v namespace default
      policyTypes:
      - Ingress
      ingress: [] # Zakazuje všetok vstupný prenos
    
  4. Ingress: Riadi vonkajší prístup ku službám v klastre, zvyčajne cez HTTP/HTTPS. Ingress kontrolér (napríklad Nginx Ingress, Traefik) smeruje prenos z vonkajšej siete na príslušné vnútorné služby na základe pravidiel definovaných v zdroji Ingress.

  5. Service Mesh: (napríklad, Istio, Linkerd) pridáva ďalšiu úroveň abstrakcie a funkčnosti pre interakciu služieb. Poskytuje možnosti ako mutual TLS, trasovanie požiadaviek, metriky, riadenie prenosu (A/B testovanie, kanárske vydania) na úrovni proxy serverov (sidecar kontajnery), pridávaných ku každému podu.

Takže hlavnými mechanizmami interakcie sú Objavovanie služieb cez DNS a rôzne typy služieb, doplnené sieťovými politikami pre bezpečnosť a Ingress/Service Mesh pre zložitejšie riadenie prenosu a sledovateľnosť.