Hogyan kommunikálnak egymással a Kubernetes-ben futó alkalmazások?
sobes.tech MI
Válasz az MI-től
A Kubernetesben az alkalmazások közötti kölcsönhatás elsősorban hálózati szolgáltatásokon keresztül történik.
-
Szolgáltatás felfedezés: Az alkalmazások nem közvetlenül a podok IP-címeire hivatkoznak, mivel ezek múlandóak és újraalkotáskor változhatnak. Ehelyett a Szolgáltatás felfedezést használják, amely stabil DNS nevet és IP címet biztosít ugyanazon funkciót ellátó podok csoportjához.
- ClusterIP: Alapértelmezett szolgáltatástípus, amely csak a klaszteren belül elérhető belső IP-t biztosít.
- NodePort: Statikus portot nyit minden csomóponton, és a forgalmat a ClusterIP szolgáltatásra irányítja.
- LoadBalancer: Külső terheléselosztót hoz létre (ha a felhős szolgáltató támogatja).
- ExternalName: Lehetővé teszi a szolgáltatás számára, hogy külső DNS nevet hivatkozzon.
-
DNS: A Kubernetes belső DNS szervert biztosít (pl. CoreDNS), amely automatikusan létrehoz DNS neveket a szolgáltatásokhoz. Az alkalmazás másik szolgáltatáshoz a
service-name.namespace.svc.cluster.localnévvel vagy rövidített formábanservice-nameérheti el. -
Hálózati politikák: Meghatározzák, hogy a podok csoportjai hogyan léphetnek kölcsönhatásba egymással és külső hálózati végpontokkal. Ezeket a biztonság érdekében használják a hálózati forgalom izolálására.
apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: deny-all-ingress namespace: default spec: podSelector: {} # Minden podra alkalmazva a default namespace-ben policyTypes: - Ingress ingress: [] # Minden bejövő forgalmat tilt -
Ingress: Kezeli a külső hozzáférést a klaszterben lévő szolgáltatásokhoz, általában HTTP/HTTPS-en keresztül. Az Ingress vezérlő (pl. Nginx Ingress, Traefik) az Ingress erőforrásban meghatározott szabályok szerint irányítja a forgalmat a külső hálózatról a belső szolgáltatásokhoz.
-
Service Mesh: (pl. Istio, Linkerd) Egy további absztrakciós és funkcionalitási réteget ad hozzá a szolgáltatások közötti kommunikációhoz. Olyan képességeket kínál, mint a kölcsönös TLS, kéréskövetés, metrikák, forgalomkezelés (A/B tesztek, kanári kiadások) proxy-k (sidecar konténerek) szintjén, amelyeket minden podhoz hozzáadnak.
Így a fő kommunikációs mechanizmusok a DNS-en keresztüli Szolgáltatás felfedezés és különböző típusú szolgáltatások, kiegészítve Hálózati politikákkal a biztonság érdekében, valamint Ingress/Service Mesh a bonyolultabb forgalomkezelés és megfigyelhetőség érdekében.