Sobes.tech
Middle

Kako međusobno komuniciraju pokrenute aplikacije u Kubernetes-u?

sobes.tech АИ

Одговор од АИ

Взаимодействие на апликације у Kubernetes-у се одвија пре свега преко мрежних сервиса.

  1. Откривање сервиса: Апликације не комуницирају директно са подовима преко њихових IP адреса, јер су IP адресе подова епхемерне и могу се мењати при преуређењу. Уместо тога користе Откривање сервиса, које пружа стабилно DNS име и IP адресу за групу подова који извршавају исту функцију.

    • ClusterIP: Тип сервиса по подразумевану, пружа унутрашњи IP који је доступан само унутар кластера.
    • NodePort: Отвара статички порт на сваком чвору кластера, преусмеравајући саобраћај на ClusterIP сервис.
    • LoadBalancer: Креира спољашњи балансер оптерећења (ако га пружа провајдер облака).
    • ExternalName: Омогућава сервису да се позива на спољашње DNS име.
  2. DNS: Kubernetes пружа унутрашњи DNS сервер (нпр. CoreDNS), који аутоматски креира DNS имена за сервисе. Апликација може да се повезује на други сервис по имену service-name.namespace.svc.cluster.local или по скраћеном service-name.

  3. Мрежне политике: Одређују како групе подова могу међусобно да комуницирају и са спољашњим мрежним тачкама. Користе се за изолацију саобраћаја из безбедносних разлога.

    apiVersion: networking.k8s.io/v1
    kind: NetworkPolicy
    metadata:
      name: deny-all-ingress
      namespace: default
    spec:
      podSelector: {} # Примењује се на све подове у namespace default
      policyTypes:
      - Ingress
      ingress: [] # Забрањује сав улазни саобраћај
    
  4. Ingress: Управља спољашњим приступом сервисима у кластере, обично преко HTTP/HTTPS. Ingress контролер (нпр. Nginx Ingress, Traefik) маршрутира саобраћај од спољашње мреже ка одговарајућим унутрашњим сервисима на основу правила, дефинисаних у ресурсу Ingress.

  5. Service Mesh: (нпр. Istio, Linkerd) додаје доделени ниво апстракције и функционалности за интеракцију сервиса. Пружа могућности као што су mutual TLS, трасирaње захтева, метрике, управљање саобраћајем (A/B тестирања, канарске верзије) на нивоу прокси-сервера (sidecar-контейнера), додајених сваком поду.

Дакле, главни механизми интеракције су Откривање сервиса преко DNS и различите типове сервиса, допуњени Мрежним политикама за безбедност и Ingress/Service Mesh-ом за сложеније управљање саобраћајем и надгледање.