Sobes.tech
Middle

Kubernetes-də işləyən tətbiqlər bir-biri ilə necə qarşılıqlı əlaqə qurur?

sobes.tech Süni İntellekt

AI-dan cavab

Kubernetes-də tətbiqlər arasındakı qarşılıqlı əlaqə ilk növbədə şəbəkə xidmətləri vasitəsilə baş verir.

  1. Xidmətlərin kəşfi: Tətbiqlər podların IP ünvanlarına birbaşa müraciət etmir, çünki bu IP-lər müvəqqətidir və yenidən yaradıldıqda dəyişə bilər. Əvəzində, onlar Xidmətlərin kəşfini istifadə edir, bu isə sabit DNS adı və IP ünvanı təmin edir və eyni funksiyanı yerinə yetirən podlar qrupuna aiddir.

    • ClusterIP: Standart xidmət növü, yalnız klaster daxilində əlçatan olan daxili IP təmin edir.
    • NodePort: Hər bir nodda statik port açır və trafikləri ClusterIP xidmətinə yönləndirir.
    • LoadBalancer: Xarici yük balanslayıcı yaradır (bulud təminatçısı dəstəkləyirsə).
    • ExternalName: Xidmətin xarici DNS adına istinad etməsinə imkan verir.
  2. DNS: Kubernetes daxili DNS serveri təmin edir (məsələn, CoreDNS), avtomatik olaraq xidmətlər üçün DNS adları yaradır. Tətbiq digər xidmətə service-name.namespace.svc.cluster.local və ya qısaldılmış service-name adı ilə müraciət edə bilər.

  3. Şəbəkə siyasətləri: Pod qruplarının bir-biri ilə və xarici şəbəkə nöqtələri ilə necə qarşılıqlı əlaqədə olacağını müəyyən edir. Bu, təhlükəsizlik məqsədləri üçün şəbəkə trafikinə izolasiya tətbiq etmək üçün istifadə olunur.

    apiVersion: networking.k8s.io/v1
    kind: NetworkPolicy
    metadata:
      name: deny-all-ingress
      namespace: default
    spec:
      podSelector: {} # Bütün podlara tətbiq olunur
      policyTypes:
      - Ingress
      ingress: [] # Bütün daxil olan trafiki qadağan edir
    
  4. Ingress: Klasterdəki xidmətlərə xarici girişləri idarə edir, adətən HTTP/HTTPS vasitəsilə. Ingress controller (məsələn, Nginx Ingress, Traefik) xarici şəbəkədən daxili xidmətlərə trafiki Ingress resursunda müəyyən edilmiş qaydalara əsasən yönləndirir.

  5. Xidmət Mesh: (məsələn, Istio, Linkerd) xidmətlər arasında qarşılıqlı əlaqə üçün əlavə abstraksiya və funksionallıq qatını əlavə edir. Bu, qarşılıqlı TLS, sorğu izləmə, metriklər, trafik idarəetməsi (A/B testlər, kanar buraxılışlar) kimi imkanlar təqdim edir və hər poda əlavə olunan proxy (sidecar konteynerlər) səviyyəsində işləyir.

Beləliklə, əsas qarşılıqlı əlaqə mexanizmləri DNS vasitəsilə Xidmətlərin kəşfi və müxtəlif xidmət növləridir, təhlükəsizlik üçün Şəbəkə siyasətləri və daha mürəkkəb trafik idarəetməsi və müşahidə üçün Ingress/Xidmət Mesh ilə tamamlanır.