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.
-
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.
-
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.localalebo skrátenéhoservice-name. -
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 -
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.
-
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ť.